Context
B-split of #14615 (horizon map v2): the live half — projecting the cockpit document via DockLayoutAdapter.project and wiring the splitter-resize commit loop, per the proven examples/dashboard/dock pattern (reducer + deferred re-projection; its use-after-destroy guard is the sibling-lift).
The Fix
Placement apps/agentos/view/fleet/ (the #14642 convention): (1) the projection host — owns the committed document as SSOT, threads applyDockZoneOperation (pure reducer) + onDockZoneDocumentChange (store + deferred re-project; the me.timeout(0) + isDestroyed guard from the example — load-bearing, not optional); (2) unit specs — resize commits round-trip the document, the notify path defers past onDragEnd (the destroy-guard fixture), re-projection carries instance-bound callbacks; (3) NL-verified splitter drag on the mounted cockpit.
Acceptance Criteria
Out of Scope
The document data (sibling split) · perspectives (#14616) · rails (#14617) · grid/stream internals (their leaves).
Related
Epic #14560 (parent) · split-of #14615 · blocked-by the document leaf + #14632 (the mount it fills) · examples/dashboard/dock (pattern source) · ADR 0029.
Sweeps: current window; no equivalent; A2A clean. Structure-map: N/A.
Origin Session ID: a28f1415-37a4-4a5a-a3e4-b56adf6274ec
Retrieval Hint: "cockpit projection wiring resize commit loop destroy guard"
Context
B-split of #14615 (horizon map v2): the live half — projecting the cockpit document via
DockLayoutAdapter.projectand wiring the splitter-resize commit loop, per the provenexamples/dashboard/dockpattern (reducer + deferred re-projection; its use-after-destroy guard is the sibling-lift).The Fix
Placement
apps/agentos/view/fleet/(the #14642 convention): (1) the projection host — owns the committed document as SSOT, threadsapplyDockZoneOperation(pure reducer) +onDockZoneDocumentChange(store + deferred re-project; theme.timeout(0)+isDestroyedguard from the example — load-bearing, not optional); (2) unit specs — resize commits round-trip the document, the notify path defers pastonDragEnd(the destroy-guard fixture), re-projection carries instance-bound callbacks; (3) NL-verified splitter drag on the mounted cockpit.Acceptance Criteria
Out of Scope
The document data (sibling split) · perspectives (#14616) · rails (#14617) · grid/stream internals (their leaves).
Related
Epic #14560 (parent) · split-of #14615 · blocked-by the document leaf + #14632 (the mount it fills) ·
examples/dashboard/dock(pattern source) · ADR 0029.Sweeps: current window; no equivalent; A2A clean. Structure-map: N/A.
Origin Session ID: a28f1415-37a4-4a5a-a3e4-b56adf6274ec Retrieval Hint: "cockpit projection wiring resize commit loop destroy guard"