Context-window occupancy snapshot for the current (root) session, surfaced in
the statusline. Raw measurements only — any percentage is a presentation
concern derived at the edges, with no policy (e.g. auto-compaction) baked in.
The session’s MCP servers and their tools, sent for session_id as the
servers come online. skills and subagents repeat the lists the
session’s SessionStart announced.
A session’s announced state: its identity and mutable settings
(SessionStart, SessionUpdated) plus the capabilities it was equipped
with, which are fixed for the session’s lifetime.
The requested session configuration — the payload of Op::StartSession.
A set field is pinned: it wins over every default. An unset field means
“the host’s default for this, now”: the daemon fills it from the user’s
settings (re-read at the session boundary) or its built-in default. There
is exactly one meaning, regardless of who built the value — never “leave
unchanged”.
Partial update to a live session’s mutable state. Each field is optional so
a caller patches only what changed; absent fields are left untouched.
Catalog-dependent fields are resolved before the update takes effect.