Context
WorkstationPopOutPaneIdentityNL › component, provider, store and descendant identities survive pop-out AND return reaches its return leg once #19272 stops its identity leg from counting the grid's row pool. The return leg then fails:
vessel death reintegrates the Feed pane into a tab flow (30 s poll)
Measured:
- Headless at dev
a87a89e293, and headed (one display run, 12:18Z): same failure.
- With #19272's identity fix applied over
d9ea7a5b44 (the arm's authoring commit, 09-06), 03219a75b7 and e66b6f8142: same failure at every one. The arm's return leg has not passed on this host at any commit tested; the identity leg masked it.
- The close path does not matter:
closeTearOutVessel({itemId: 'feed', windowName: 'tearout-feed'}) (stage acknowledged) and a physical close (page.close({runBeforeUnload: true})) both leave the same state.
- Probed 3 s after the close: no main-document node holds
feed, dockModel.items.feed is null, and lastVesselRestoreReceipt is null. The pane left the main document at pop-out and nothing brings it back.
The Problem
A pane popped out through the header action does not reintegrate when its window closes. TearOut#onBindingReleased holds the reintegration path (committed → releasePane → reintegrateItem), but nothing reaches it here. Unmeasured: whether the Group's retirement clears the binding before the vessel dies, whether the pop-out path registers a binding that release would find, or whether the item leaves the catalog at adoption.
The Architectural Reality
VesselWorkspace#closeTearOutVessel documents itself as the gesture's retirement seam ("a vessel the gesture no longer needs: re-entry, cancel, or a refused model commit"). The spec's comment treats it as the user's close. Either way, the physical close fails the same.
- The spec's poll encodes the contract: "vessel death reintegrates the Feed pane into a tab flow".
The Fix
Open for the owner. First, decide the product behaviour: does closing a popped-out pane's window return it? If it does, trace which link breaks: binding registration at pop-out, release on death, or the catalog entry kept for return. If it does not, the arm's return leg is wrong and goes.
Acceptance Criteria
Out of Scope
- The identity leg's row pool (#19272).
Related
#17844 (census) · #19272 (the identity leg) · #18395 / #18396 (the arm) · src/dashboard/dock/window/TearOut.mjs (onBindingReleased)
Origin Session ID: 81d1894c-d8fd-4192-8350-42e32eb0101e
Retrieval Hint: "popped-out pane window close never reintegrates feed item null dockModel onBindingReleased closeTearOutVessel"
Context
WorkstationPopOutPaneIdentityNL › component, provider, store and descendant identities survive pop-out AND returnreaches its return leg once #19272 stops its identity leg from counting the grid's row pool. The return leg then fails:Measured:
a87a89e293, and headed (one display run, 12:18Z): same failure.d9ea7a5b44(the arm's authoring commit, 09-06),03219a75b7ande66b6f8142: same failure at every one. The arm's return leg has not passed on this host at any commit tested; the identity leg masked it.closeTearOutVessel({itemId: 'feed', windowName: 'tearout-feed'})(stageacknowledged) and a physical close (page.close({runBeforeUnload: true})) both leave the same state.feed,dockModel.items.feedisnull, andlastVesselRestoreReceiptisnull. The pane left the main document at pop-out and nothing brings it back.The Problem
A pane popped out through the header action does not reintegrate when its window closes.
TearOut#onBindingReleasedholds the reintegration path (committed→releasePane→reintegrateItem), but nothing reaches it here. Unmeasured: whether the Group's retirement clears the binding before the vessel dies, whether the pop-out path registers a binding that release would find, or whether the item leaves the catalog at adoption.The Architectural Reality
VesselWorkspace#closeTearOutVesseldocuments itself as the gesture's retirement seam ("a vessel the gesture no longer needs: re-entry, cancel, or a refused model commit"). The spec's comment treats it as the user's close. Either way, the physical close fails the same.The Fix
Open for the owner. First, decide the product behaviour: does closing a popped-out pane's window return it? If it does, trace which link breaks: binding registration at pop-out, release on death, or the catalog entry kept for return. If it does not, the arm's return leg is wrong and goes.
Acceptance Criteria
WorkstationPopOutPaneIdentityNLpasses, whole file, headless and headed, with its return leg matching AC-1.Out of Scope
Related
#17844 (census) · #19272 (the identity leg) · #18395 / #18396 (the arm) ·
src/dashboard/dock/window/TearOut.mjs(onBindingReleased)Origin Session ID: 81d1894c-d8fd-4192-8350-42e32eb0101e Retrieval Hint: "popped-out pane window close never reintegrates feed item null dockModel onBindingReleased closeTearOutVessel"