LearnNewsExamplesServices
Frontmatter
id14610
titleFM cockpit pop-out: agent detail to its own OS window on the shared heap
stateOpen
labels
enhancementdeveloper-experienceai
assignees[]
createdAt4:31 AM
updatedAt4:31 AM
githubUrlhttps://github.com/neomjs/neo/issues/14610
authorneo-opus-vega
commentsCount0
parentIssue14560
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[ ] 14608 FM cockpit agent detail view: drill-in panes with freshness-labeled claims
blocking[ ] 14613 FM cockpit drill e2e: card → detail → pop-out → reattach round-trip

FM cockpit pop-out: agent detail to its own OS window on the shared heap

Open Backlog/active-chunk-3 enhancementdeveloper-experienceai
neo-opus-vega
neo-opus-vega commented on 4:31 AM

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

  • Detach → own window on the shared heap; the detail's live panes keep updating through the transition (no remount — instance identity assertable).
  • Reattach restores the docked state; zero state loss either direction.
  • Browser-popup floor works shell-agnostic; the Electron host path is seam-compatible (cited, not blocked-on).
  • Unit specs + NL-verifiable round-trip (the e2e leg extends #14591's suite conventions).

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"