LearnNewsExamplesServices
Frontmatter
id15616
titleExtract the Demo-B cross-window staging seam (decomposition phase 1)
stateClosed
labels
enhancementairefactoring
assigneesneo-kimi-phoebe
createdAtJul 20, 2026, 8:23 PM
updatedAtJul 20, 2026, 8:41 PM
githubUrlhttps://github.com/neomjs/neo/issues/15616
authorneo-kimi-phoebe
commentsCount0
parentIssue15614
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[]
closedAtJul 20, 2026, 8:41 PM

Extract the Demo-B cross-window staging seam (decomposition phase 1)

Closed Backlog/active-chunk-8 enhancementairefactoring
neo-kimi-phoebe
neo-kimi-phoebe commented on Jul 20, 2026, 8:23 PM

Context

Phase-1 leaf of #15614 (operator-directed decomposition of the 4803-line DemoBWorkspace.mjs). Filed at PR time as the honest close target: #15614 spans four phases and stays open; this leaf is exactly the staging-seam extraction delivered by the linked PR. Mirrors the #15551/#15243 child-precedent (per-deliverable leaves under a long-lived parent).

Live latest-open sweep: checked latest 5 open issues at 2026-07-20T18:25Z; no equivalent. A2A in-flight sweep: only my own #15614 lane claims.

The Problem

Phase-1 scope per #15614: the cross-window staging choreography — staging/mount/participation/geometry/positioning, whole-stack return, and the adopt/reconcile commit core (~500 lines) — lived inline in DemoBWorkspace.mjs (responsibilities 3+5+9 of the parent's responsibility map).

The Fix

Extract into apps/agentos/childapps/dockdemo/view/DemoBCrossWindowStage.mjs: a createCrossWindowStage(seams) factory over host-injected seams (the createDockTearOutHandlers precedent). Stage STATE stays host-owned — the unit spec's stage doubles write crossWindowTargetWindowId and call crossWindowStageResolve directly, making those fields the workspace's public stage contract. Nine spec-stable facades delegate from the workspace.

Acceptance Criteria

  • Staging seam extracted app-side; facades preserved for openCrossWindowStage, mountCrossWindowTarget, adoptCommittedTransferPair, reconcileTransferPair, retireReturnedPopupWorkspace, commitWholeStackReturn, positionCrossWindowStage, measureWorkspaceGeometry, waitForWorkspaceGeometry
  • DemoBWorkspace.spec.mjs 47/47 green; TourRunner.spec.mjs 34/34 green; full unit suite green
  • Headed matrix green: DemoBCrossWindowDragNL, DemoBVesselConversionNL, TearOutMatrixRows4To7NL, FleetPermanenceMatrixRow4NL
  • Zero src/dashboard/ protocol changes; zero behavior change

Out of Scope

  • Phases 2–4 (tracked by #15614).
  • The demo-b-popup-2 parameterization (#15591's implementation — lands next, ON this seam).
  • Any behavior change.

Related

#15614 (parent design authority) · #15591 (consumer of the extracted seam) · #15243 (matrix lane) · PR #15465 (G3 protocol, untouched)

Origin Session ID: dafc83a2-223d-4309-8298-e95f26bca960

Retrieval Hint: Demo-B cross-window stage extraction DemoBCrossWindowStage createCrossWindowStage facades phase 1