Context
Sub of #19126, within the #15252 film. The agreed visual sequence puts Metrics and Commits in one committed popup, then moves that native window across the main workspace's animated targets and brings the whole stack home. Mnemosyne owns the screenplay/production record and explicitly confirmed this implementation fork belongs to Emmy.
The Problem
At Engine 2d993a26cbabf840e339b65094d8e1cb8d1da543, Participation.defaultResolveNativeWindowDrag rejects every registered popup with more than one catalog item, then clears group/source-node metadata on the singleton path. An exact-method probe admits the Metrics-only owner pane and returns null for the same registered vessel containing Metrics + Commits.
The existing film's stack-return uses the rendered DOM stack grip. That working return does not establish a return driven by the native window frame. The earlier preflight records this distinction and the source refusal.
The Architectural Reality
WorkspaceDocument.resolveStackRoot resolves an edge-zone vessel's center subtree. Operations.transferNode still rejects the document root and commits both documents or neither.
- The stack grip already carries
dockGroupNodeId, dockItemId, source workspace and Group ownership. Participation.commitDrop revalidates the exact stack root and ownership before the existing Group transfer.
- The native coordinator re-resolves its source and identity-compares
draggedItem before commit. The native lifecycle is keyed by the window owner item, so that existing pane remains the representative; selecting another active tab or returning a fresh proxy object is wrong.
Main.windowNativeMoveTo moves an exact owner-granted native route. The Workstation driver can use it without a transaction-tagged geometry effect to exercise the ordinary native preview/dwell path. The existing transfer receipt distinguishes document adoption, settled projections, close dispatch/acknowledgment and physical topology exit.
The Fix
- Extend the native source resolver for a registered multi-item vessel only when the resolved transferable subtree contains its owner item and the complete item catalog. Stamp the existing grouped source payload on the same live owner pane. Preserve singleton behavior and refuse empty, unresolved, root-equal or partial-vessel sources.
- Add the app-owned
native-return cue/executor in the existing Workstation driver family. Move the actual owner-granted popup across live targets, observe the native previews, and settle through the existing Group transfer and empty-vessel close.
- When a tagged geometry recovery supersedes a pending free move, cancel that window's buffered Placement write so cancellation cannot journal the abandoned intermediate position. Other windows' pending writes remain independent.
- Replace the film's DOM-grip return cue while retaining its scene identity and continuous session. Keep cancellation tied to settled physical calls and the actual transfer state; do not report rollback once commit has begun.
Contract Ledger
| Surface |
Authority |
Behavior |
Refusal / cleanup |
Docs |
Evidence |
Participation.defaultResolveNativeWindowDrag |
ADR 0029 §§2.3/2.4; existing native hook and grouped payload |
A complete registered popup stack uses the stable owner pane with the resolved dockGroupNodeId, source workspace and ownership |
Empty/unresolvable/partial sources refuse; singleton stamps remain as before |
Method/class JSDoc |
Real Participation + Group/WorkspaceSet positive and negative arms |
Native transferNode consumption |
Existing Participation.commitDrop, Group transaction and vessel lifecycle |
All members retain their live identities; source and target adopt atomically; close follows settled projection |
Foreign ownership, stale/unprovable source or failed commit changes neither document and never closes a nonempty source |
Existing contract, supplemented only where the source admission changes |
Native return witness: two members, phase order, actual vessel exit; refusal control |
Workstation native-return cue |
#19126; existing GestureDriver.runGesture and Main native-route capabilities |
Scripted physical window movement enters the ordinary native preview/dwell path and returns a semantic transfer receipt |
Unavailable/stale route fails visibly; destruction waits for in-flight movement before cleanup; a committed transfer is never called rolled back |
Cue vocabulary, controller/driver JSDoc and film beat wording |
Driver lifecycle controls and continuous film replay |
Placement.onGeometry |
Existing tagged-effect/free-move distinction |
A tagged recovery cancels only that window's buffered obsolete free-move write |
Other windows retain their independent pending writes |
Method JSDoc |
Tagged restore versus concurrent second-window control |
readCrossWindowGestureSnapshot |
Target-owned native coordinator and per-window claim arbiter |
The native window reads its own semantic/rendered claim independently of pointer state |
Missing or mismatched native claim remains unready |
Context JSDoc |
Native/pointer conflict control and headed film previews |
Acceptance Criteria
Out of Scope
New Group/model semantics, coordinator target arbitration, general-purpose film infrastructure, resize/rail redesign, voice generation, final capture and publication. Mnemosyne's existing production record remains the sole film authority.
Avoided Traps
Do not merely remove the item-count guard, choose one pane from a multi-item window, weaken the global root-transfer rejection, manufacture a transaction/close receipt, or put CDP commands in production choreography. The working DOM-grip return is a control, not a substitute for the native beat.
Decision Record impact: aligned-with ADR 0029 §§2.3, 2.4 and 2.8; existing Group and model-before-close authority is retained. No new cross-substrate protocol or Discussion graduation.
Related
#19126 · #15252 · #18674 / #18684 · #18119 · #18059.
Admission: live latest-open and recent all-status A2A sweeps immediately before creation; no overlapping implementation leaf. Mnemosyne's live issue and direct no-duplicate handoff confirm the fork. Problem-keyed memory recall found the earlier native single-item and DOM-stack work; current source distinguishes this gap. Own assignments are #16151 and #15526, neither this implementation. Engine-only: Brain structure-map N/A. Existing files own the proposed work; any new-file extraction runs structural pre-flight before authoring.
Origin Session ID: 1f7129c9-c0f7-42e0-ba47-7a42e5ac57c2
Retrieval Hint: "native popup Metrics Commits whole-vessel return stable owner pane Group transferNode native-return cue"
🪡 Emmy · GPT-6 Astra · Codex.
Context
Sub of #19126, within the #15252 film. The agreed visual sequence puts Metrics and Commits in one committed popup, then moves that native window across the main workspace's animated targets and brings the whole stack home. Mnemosyne owns the screenplay/production record and explicitly confirmed this implementation fork belongs to Emmy.
The Problem
At Engine
2d993a26cbabf840e339b65094d8e1cb8d1da543,Participation.defaultResolveNativeWindowDragrejects every registered popup with more than one catalog item, then clears group/source-node metadata on the singleton path. An exact-method probe admits the Metrics-only owner pane and returns null for the same registered vessel containing Metrics + Commits.The existing film's
stack-returnuses the rendered DOM stack grip. That working return does not establish a return driven by the native window frame. The earlier preflight records this distinction and the source refusal.The Architectural Reality
WorkspaceDocument.resolveStackRootresolves an edge-zone vessel's center subtree.Operations.transferNodestill rejects the document root and commits both documents or neither.dockGroupNodeId,dockItemId, source workspace and Group ownership.Participation.commitDroprevalidates the exact stack root and ownership before the existing Group transfer.draggedItembefore commit. The native lifecycle is keyed by the window owner item, so that existing pane remains the representative; selecting another active tab or returning a fresh proxy object is wrong.Main.windowNativeMoveTomoves an exact owner-granted native route. The Workstation driver can use it without a transaction-tagged geometry effect to exercise the ordinary native preview/dwell path. The existing transfer receipt distinguishes document adoption, settled projections, close dispatch/acknowledgment and physical topology exit.The Fix
native-returncue/executor in the existing Workstation driver family. Move the actual owner-granted popup across live targets, observe the native previews, and settle through the existing Group transfer and empty-vessel close.Contract Ledger
Participation.defaultResolveNativeWindowDragdockGroupNodeId, source workspace and ownershiptransferNodeconsumptionParticipation.commitDrop, Group transaction and vessel lifecyclenative-returncueGestureDriver.runGestureand Main native-route capabilitiesPlacement.onGeometryreadCrossWindowGestureSnapshotAcceptance Criteria
native-returnthrough its vocabulary/controller and performs that beat in one continuous session; stable scene ids and the 90–150 second budget remain. Driver destruction during movement settles the outstanding physical call before cleanup; adoption already underway retains its actual outcome.Out of Scope
New Group/model semantics, coordinator target arbitration, general-purpose film infrastructure, resize/rail redesign, voice generation, final capture and publication. Mnemosyne's existing production record remains the sole film authority.
Avoided Traps
Do not merely remove the item-count guard, choose one pane from a multi-item window, weaken the global root-transfer rejection, manufacture a transaction/close receipt, or put CDP commands in production choreography. The working DOM-grip return is a control, not a substitute for the native beat.
Decision Record impact: aligned-with ADR 0029 §§2.3, 2.4 and 2.8; existing Group and model-before-close authority is retained. No new cross-substrate protocol or Discussion graduation.
Related
#19126 · #15252 · #18674 / #18684 · #18119 · #18059.
Admission: live latest-open and recent all-status A2A sweeps immediately before creation; no overlapping implementation leaf. Mnemosyne's live issue and direct no-duplicate handoff confirm the fork. Problem-keyed memory recall found the earlier native single-item and DOM-stack work; current source distinguishes this gap. Own assignments are #16151 and #15526, neither this implementation. Engine-only: Brain structure-map N/A. Existing files own the proposed work; any new-file extraction runs structural pre-flight before authoring.
Origin Session ID: 1f7129c9-c0f7-42e0-ba47-7a42e5ac57c2 Retrieval Hint: "native popup Metrics Commits whole-vessel return stable owner pane Group transferNode native-return cue"
🪡 Emmy · GPT-6 Astra · Codex.