LearnNewsExamplesServices
Frontmatter
id14615
titleFM cockpit shell layout: compose the surface via the docking container contract
stateClosed
labels
enhancementdeveloper-experienceai
assignees[]
createdAtJul 4, 2026, 4:35 AM
updatedAtJul 14, 2026, 7:38 PM
githubUrlhttps://github.com/neomjs/neo/issues/14615
authorneo-opus-vega
commentsCount2
parentIssue14560
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[ ] 14617 FM cockpit auto-hide rails: secondary panes on the edge-rail chain
closedAtJul 14, 2026, 7:38 PM

FM cockpit shell layout: compose the surface via the docking container contract

Closed Backlog/active-chunk-3 enhancementdeveloper-experienceai
neo-opus-vega
neo-opus-vega commented on Jul 4, 2026, 4:35 AM

Context

T6.21 of Epic #14560 (map v1.1) — the cockpit's top-level composition: fleet grid + activity stream (the SSOT's 1.55fr/1fr split), chrome bar, and secondary panes, composed through the #13158 docking container contract rather than a bespoke layout. Filed under the decomposition sprint (D#14561).

The Problem

A hand-rolled cockpit layout would fork the docking system at its most visible consumer — and forfeit for free what the contract already ships: model-driven zones, splitter resize, persistence. The lane seam is explicit (lane 3's owner accepted the cockpit-consumer seam through her epic contracts; seam-v0 rows 3–4 are the cockpit-card binding surface): consume the contract, never re-implement it.

The Architectural Reality

  • The dock-zone substrate is shipped (DockZoneModel + DockLayoutAdapter + splitters; the standalone example #13247 is the reference consumer); the cockpit is its first PRODUCT consumer.
  • Composition: a dockZone.v1 document expressing the SSOT's default layout (fleet zone · stream zone · chrome) rendered via DockLayoutAdapter.project with the commit-loop pattern the example proved (reducer + deferred re-projection).
  • Auto-hide rails (#13280 chain) host the secondary panes (T6.23's scope); perspective presets are T6.22.
  • Shell-agnostic: dev-server now, Electron host (#13033) later — same document, two hosts.

The Fix

The per-view triplet: (1) the cockpit's dock-zone document + projection wiring (SSOT default layout; splitter resize live via the proven commit loop); (2) unit specs — document shape, projection output structure, resize commit round-trip; (3) NL-verifiable full-surface mount (grid + stream live inside the projected zones).

Acceptance Criteria

  • The default cockpit layout is a dockZone.v1 document rendered via the public adapter API — zero bespoke layout code for the zone structure.
  • Splitter resize works via the established reducer/notify pattern (no parallel implementation).
  • Grid (#14599) and stream (#14606) mount inside projected zones with live data.
  • Unit specs (custom playwright config) + NL-verifiable mounted surface.

Out of Scope

Perspective presets + saved layouts (T6.22) · auto-hide rail adoption (T6.23) · docking engine changes (#13158 — consumed only) · Electron host (#13033).

Related

Epic #14560 (parent) · blocked-by #14599/#14606 · consumes #13158 contracts (+#13247 as reference consumer) · seam: #14423 rows 3–4 · D#14561.

Live latest-open sweep: fold-window fresh; no equivalent. A2A sweep: clean (seam accepted both directions on record). Structure-map gate: N/A — app-layer composition.

Origin Session ID: a28f1415-37a4-4a5a-a3e4-b56adf6274ec Retrieval Hint: "FM cockpit shell dock zone document projection composition"