Skip to main content

Module daemon

Module daemon 

Source
Expand description

Daemon → Client messages.

Everything the daemon can push over an attached WebSocket. Includes solicited responses (correlated by request_id) and unsolicited events (session messages, deltas, scrollback replay).

§Wire format

Per-variant rename_all = "camelCase" keeps field names in sync with the TS protocol/types.ts shape without relying on per-field #[serde(rename = "…")] hints. If you add a new variant, copy the attribute — the wire_no_snake_case test will fail CI otherwise.

§Forward compatibility

The trailing Unknown variant is a sink for any type field the daemon introduces that this crate doesn’t know about. The TUI logs + ignores it, matching the daemon’s “frontends ignore unknown kinds” design.

Structs§

AuthOkMsg
Sent after a successful auth handshake, before any other traffic.
ClaudeConfigAgent
ClaudeConfigHook
ClaudeConfigMcpServer
ClaudeConfigSkill
ModelInfo
One selectable model as reported by the Claude Code backend. Mirrors ModelInfo in codeoid/src/protocol/types.ts.
ProviderCommand
One provider-defined slash command (see SessionCommandsResult).
SessionExportCounts
SessionExportManifest
SessionExportMetaSlim
SessionExportWorkdir
SessionSearchHit
Per-session hit returned by session.search.
SessionSearchSnippet
SessionUiRequestMsg
Payload of DaemonMessage::SessionUiRequest.

Enums§

ClaudeConfigScope
Where the config entry was loaded from.
DaemonMessage
Tagged union of every message the daemon can push to a client.
ErrorCode
SearchSnippetKind
SessionExportPayload
UiRequestMethod
Dialog flavor on a SessionUiRequestMsg.
UiResolvedReason
Why a session.ui_resolved fired. Other sinks future reasons — every reason means “dismiss the local copy”.