#15955 enumerated a remaining Workstation flicker class instead of treating appearance as mechanism. Its exact native Take-17 corpus at source head e981b57d0ba102c2a914aa72b559666c901cadf3 records the main Workstation chrome and header staying painted while the dock host drains to a black canvas during cross-window composition. The retained event raster is bound in that ticket by SHA-256 09b821de2412690dafe25e8df245c1dba2298d8f3cd14188a9fdcfeee9bb35fb.
This is a successor to resolved #15136 / PR #15170, not a reopening. That predecessor introduced tab-chrome identity preservation and required silent ownership changes followed by one common-parent reconciliation. The new presented-frame evidence proves that the current native reparent sequence still exposes an intermediate empty shell.
The Problem
Neo.dashboard.DockProjectionReconciler.reconcileProjection() stages the next shell as visibility-hidden, then moveRetainedTabChrome() physically removes every surviving tab.Container from the visible source shell and inserts it into the hidden target shell. Only afterward does the reconciler hide the old shell, reveal the next shell, and commit the host update.
The exact ordering is current at origin/dev head 1b9f080c53:
src/dashboard/DockProjectionReconciler.mjs:329-339 inserts and commits the hidden staged shell;
src/dashboard/DockProjectionReconciler.mjs:448-464 performs the physical remove/insert;
src/dashboard/DockProjectionReconciler.mjs:385-392 swaps shell visibility and commits only afterward.
The reconciler file is byte-identical between the measured Take-17 head and current origin/dev. The visual events map to the logged first tear-out settlement and second cross-window transfer/retirement phases. This confirms #15955 candidate 2 as a projection-transaction continuity defect, not CSS timing, popup bootstrap, capture composition, or destroyed pane identity.
The Architectural Reality
DockProjectionReconciler owns cross-consumer live projection continuity; Workstation, Fleet, and dock demos consume it.
The dock document commits before render effects. The repair must not weaken model-first transfer or the phase order now asserted by the five-beat journey.
Surviving panes and tab chrome must keep component and DOM identity. Re-rendering clones to cover the gap would violate the permanence contract introduced by #15136.
test/playwright/e2e/workstation/WorkstationFiveBeatNL.spec.mjs#captureWorkspaceContinuity already owns the consecutive CDP presented-frame entropy witness. It currently guards only scene 1 and is the correct evidence owner for this defect.
The Fix
Add a focused expected-red presented-frame continuity witness around the cross-window composition path (stageMergedVessel() and whole-stack return), cropping the real .workstation-dock-host.
Change the reconciler transaction so physical reparenting can never drain the only visible shell. Retained descendant/ancestor ownership and the old→new visibility handoff must become one compositor-safe main-thread boundary, while retaining exact component identities.
Turn the witness green without adding a timing delay, animation mask, duplicate pane tree, or Workstation-local visual cover.
A pre-fix control captures at least one presented main-dock frame below the established continuity floor during first tear-out / cross-window dock / return.
At the repaired head, every captured main-dock frame remains at or above the justified baseline-relative entropy floor.
Retained tab.Container, toolbar, strip, button, pane, store, and DOM identities remain stable.
No frame contains both duplicate source and target pane DOM, and no pane is recreated to cover the transition.
Live latest-open sweep: checked the latest 20 open issues at 2026-07-29T23:30:09.487Z; no equivalent found. The latest 30 A2A messages contained no competing claim.
Context
#15955enumerated a remaining Workstation flicker class instead of treating appearance as mechanism. Its exact native Take-17 corpus at source heade981b57d0ba102c2a914aa72b559666c901cadf3records the main Workstation chrome and header staying painted while the dock host drains to a black canvas during cross-window composition. The retained event raster is bound in that ticket by SHA-25609b821de2412690dafe25e8df245c1dba2298d8f3cd14188a9fdcfeee9bb35fb.This is a successor to resolved
#15136/ PR#15170, not a reopening. That predecessor introduced tab-chrome identity preservation and required silent ownership changes followed by one common-parent reconciliation. The new presented-frame evidence proves that the current native reparent sequence still exposes an intermediate empty shell.The Problem
Neo.dashboard.DockProjectionReconciler.reconcileProjection()stages the next shell as visibility-hidden, thenmoveRetainedTabChrome()physically removes every survivingtab.Containerfrom the visible source shell and inserts it into the hidden target shell. Only afterward does the reconciler hide the old shell, reveal the next shell, and commit the host update.The exact ordering is current at
origin/devhead1b9f080c53:src/dashboard/DockProjectionReconciler.mjs:329-339inserts and commits the hidden staged shell;src/dashboard/DockProjectionReconciler.mjs:377moves retained tab chrome;src/dashboard/DockProjectionReconciler.mjs:448-464performs the physical remove/insert;src/dashboard/DockProjectionReconciler.mjs:385-392swaps shell visibility and commits only afterward.The reconciler file is byte-identical between the measured Take-17 head and current
origin/dev. The visual events map to the logged first tear-out settlement and second cross-window transfer/retirement phases. This confirms#15955candidate 2 as a projection-transaction continuity defect, not CSS timing, popup bootstrap, capture composition, or destroyed pane identity.The Architectural Reality
DockProjectionReconcilerowns cross-consumer live projection continuity; Workstation, Fleet, and dock demos consume it.#15136.test/playwright/e2e/workstation/WorkstationFiveBeatNL.spec.mjs#captureWorkspaceContinuityalready owns the consecutive CDP presented-frame entropy witness. It currently guards only scene 1 and is the correct evidence owner for this defect.The Fix
stageMergedVessel()and whole-stack return), cropping the real.workstation-dock-host.DockMotionSignal, pane identities, model-first transfer, and exact topology-exit ordering.Acceptance Criteria
tab.Container, toolbar, strip, button, pane, store, and DOM identities remain stable.documents-adopted → main-projected → close-dispatched → topology-exitedordering.DockProjectionReconciler, Workstation unit, and five-beat whitebox suites pass.Out of Scope
Popup bootstrap/theme continuity (
#16113) · native-titlebar drag admission (#16123) · cursor cleanup (#16145) · film editing · changing dock-document semantics · replacing identity preservation with cloned content.Avoided Traps
neo-no-animation, opacity, or a loading mask.#15136; this successor records the newly measured continuity gap.Decision Record impact
none — this repairs the existing identity-preserving projection contract.
Related
Related: #15955 · #15136 · #15951
Live latest-open sweep: checked the latest 20 open issues at 2026-07-29T23:30:09.487Z; no equivalent found. The latest 30 A2A messages contained no competing claim.
Origin Session ID: 019fac4d-7844-7422-9486-7f73ccf308f5
Retrieval Hint:
Take-17 main dock blackout retained tab chrome hidden staged shell presented-frame entropy