Skip to content

Type Alias: AgentPaneView

agentmux


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.