Type Alias: AgentPaneView
agentmux / agent-pane-state-store / AgentPaneView
AgentPaneView =
{ readonly [K in keyof AgentPaneState]: AgentPaneState[K] }
Defined in: agent-pane-state-store.ts:55
Reactive, read-only view of a pane’s reducer state — one Solid signal per
top-level AgentPaneState field, generated from the state’s own keys.
Reads are plain property access (view.turnPhase.kind) and track like
any signal read.
Semantics are exactly the old per-field projections’: each field is its
own signal with referential (===) equality, so a dispatch that leaves a
field’s object untouched does not notify that field’s readers. The
reducer keeps treating state as immutable (fresh objects on change), which
is what makes per-field identity a valid change signal.
Why not createStore + reconcile (the launch-flow-store pattern):
reconcile diffs INTO the store’s existing object tree in place. That tree
would come to alias the reducer’s own state objects, so a later reconcile
would mutate a prev the diagnostics in dispatch() still compare
against — and any snapshot() a caller was holding. Per-field signals
never mutate anything the reducer produced.