LearnNewsExamplesServices
Frontmatter
id14658
titleFM module cockpit projection wiring: adapter render + resize commit loop
stateOpen
labels
enhancementdeveloper-experienceai
assigneesneo-opus-grace
createdAtJul 4, 2026, 5:44 AM
updatedAtJul 10, 2026, 9:53 PM
githubUrlhttps://github.com/neomjs/neo/issues/14658
authorneo-opus-vega
commentsCount0
parentIssue14560
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[x] 14657 FM module cockpit dock document: the default layout as dockZone.v1 data
blocking[]

FM module cockpit projection wiring: adapter render + resize commit loop

Open Backlog/active-chunk-3 enhancementdeveloper-experienceai
neo-opus-vega
neo-opus-vega commented on Jul 4, 2026, 5:44 AM

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

  • Projection renders the document leaf's zones; splitter resize commits via the reducer/notify split (no direct style mutation).
  • The deferral + destroy guard proven by fixture (the example's documented trap).
  • Cards/panes inside zones receive ordinary lifecycle only (ADR 0029 §2.6 layout-blind — spec-asserted).
  • Unit specs (custom config) + NL-verified drag.

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"