Context
T4.15 of Epic #14560 (map v1.1) — drag an agent's detail out → it becomes its own OS window while staying on the ONE SharedWorker App-Worker heap: state continuous, never remounted. The SSOT caption names it ("drag it out → its own OS window on the same heap"); it is the cockpit-side twin of Demo B's pop-out moment (#14590).
The Problem
Pop-out is the capability that separates the cockpit from every dashboard: a live thought-stream that keeps ticking through the detach. It must be built once against the multi-window primitive and consumed by both the cockpit (this leaf) and the public demo (#14590) — two implementations would fork the state-continuity guarantees.
The Architectural Reality
- Consumes the multi-window/shared-heap primitive + the #13158/#14423 seam contracts (reparent-never-recreate is seam-v0's promise; rows 3–4 are the cockpit-card binding surface per its owner).
- Shell dependency honest: full OS-window UX needs Lane A's Electron shell (#13033, in flight per its owner); the browser-popup path (Chromium popups on one heap, ADR 0020 vessel) is the shell-agnostic floor this leaf delivers first.
- ADR 0032 continuity fixture applies: the popped-out resident is the SAME resident — identity header, freshness ledger, and live panes carry over without re-key.
The Fix
The per-view triplet: (1) pop-out action on #14608's detail view (browser-popup floor; Electron path activates when #13033 lands — one seam, two hosts); (2) unit specs — reparent-never-recreate assertion (instance id stable across detach/reattach), state-continuity fixture (ticking pane survives); (3) NL-verifiable detach/reattach round-trip.
Acceptance Criteria
Out of Scope
Demo B's showcase framing (#14590) · perspective persistence (#14423 §2) · the Electron shell itself (#13033).
Related
Epic #14560 (parent) · blocked-by #14608 · seam: #14423 rows 3–4 (+#13158) · twin: #14590 · host: #13033 · ADR 0020/0032 · D#14561.
Live latest-open sweep: fold-window fresh; no equivalent (the #14590 twin is showcase-scoped, boundary stated both sides). A2A sweep: clean. Structure-map gate: N/A — app-layer.
Origin Session ID: a28f1415-37a4-4a5a-a3e4-b56adf6274ec
Retrieval Hint: "FM cockpit pop-out shared heap reparent never recreate state continuity"
Context
T4.15 of Epic #14560 (map v1.1) — drag an agent's detail out → it becomes its own OS window while staying on the ONE SharedWorker App-Worker heap: state continuous, never remounted. The SSOT caption names it ("drag it out → its own OS window on the same heap"); it is the cockpit-side twin of Demo B's pop-out moment (#14590).
The Problem
Pop-out is the capability that separates the cockpit from every dashboard: a live thought-stream that keeps ticking through the detach. It must be built once against the multi-window primitive and consumed by both the cockpit (this leaf) and the public demo (#14590) — two implementations would fork the state-continuity guarantees.
The Architectural Reality
The Fix
The per-view triplet: (1) pop-out action on #14608's detail view (browser-popup floor; Electron path activates when #13033 lands — one seam, two hosts); (2) unit specs — reparent-never-recreate assertion (instance id stable across detach/reattach), state-continuity fixture (ticking pane survives); (3) NL-verifiable detach/reattach round-trip.
Acceptance Criteria
Out of Scope
Demo B's showcase framing (#14590) · perspective persistence (#14423 §2) · the Electron shell itself (#13033).
Related
Epic #14560 (parent) · blocked-by #14608 · seam: #14423 rows 3–4 (+#13158) · twin: #14590 · host: #13033 · ADR 0020/0032 · D#14561.
Live latest-open sweep: fold-window fresh; no equivalent (the #14590 twin is showcase-scoped, boundary stated both sides). A2A sweep: clean. Structure-map gate: N/A — app-layer.
Origin Session ID: a28f1415-37a4-4a5a-a3e4-b56adf6274ec Retrieval Hint: "FM cockpit pop-out shared heap reparent never recreate state continuity"