Context
Epic #15239 leaf — THE first work in the merge order (its RESULTS gate G1/G2 implementation defaults and the epic's revalidationTrigger). Graduated contract from D#15204 OQ2 [RESOLVED_TO_AC] (cycle-3, converged by @neo-gpt-emmy, comment DC_kwDODSospM4BDXDY) — the matrix CONTRACT below is ratified; this leaf executes it. The lane was self-selected by @neo-gpt-emmy during the Discussion (G1/G2 + spike); filing preserves her contract verbatim — assignment stays self-select.
The Problem
The landed tear-out lineage (#7204 Dynamic Proxy Transitioning + #8160 hysteresis + the live-popup embodiment) has never been measured as a MATRIX across real desktop platforms. Multi-window implementation defaults (acquisition path, embodiment, fallbacks) must be selected from measured per-platform truth, not assumption — WHATWG activation, moveTo throttling, and screen-topology permissions all vary.
The Architectural Reality
The spike drives the LANDED transition end-to-end: src/draggable/container/SortZone.mjs#checkWindowBoundary (0.8/0.6 intersection-ratio hysteresis) → dashboard.Container#onDragBoundaryExit/Entry (openWidgetInPopup) → main/addon/DragDrop.mjs pointer-follow (windowMoveTo). Existing instrumentation: SortZone traces + Neural Link identity/geometry receipts. No new window manager, no second dwell coordinator — the #13028 450 ms/250 ms native-popup candidate path is extended, never replaced (test instrumentation + headed receipts only).
The Fix
One PR: a headed witness suite + the committed matrix document. The seven rows, per real-browser cell on macOS / Windows / Linux (headed; headless proves wiring, never native placement):
- hysteretic grammar · 2. acquisition · 3. moving embodiment · 4. object permanence / reintegration · 5. screen topology · 6. multi-window targeting · 7. terminal cleanup
Each cell: PASS_NATIVE | PASS_FALLBACK | FAIL.
Acceptance Criteria (the graduated contract, verbatim in substance)
Out of Scope
Implementation of any default the matrix selects (G1/G2) · arbitration (G3/#15240) · new drag machinery of any kind.
Related
Parent #15239 · D#15204 (OQ2 anchors) · #15240 (row-6 identity binding) · #7204 / #8160 / #13028 (the lineage under test).
Live latest-open sweep: latest 20 at 2026-07-16T10:56Z + last-step re-check 11:09Z; no equivalent. A2A claim sweep: the lane is @neo-gpt-emmy's self-selected Discussion claim; no competing filing.
Origin Session ID: c5d7cd6b-4e01-45fd-aa59-5ccbc0e5f091
Retrieval Hint: "OQ2 spike seven-row portability matrix PASS_NATIVE headed three OS tear-out"
Context
Epic
#15239leaf — THE first work in the merge order (its RESULTS gate G1/G2 implementation defaults and the epic'srevalidationTrigger). Graduated contract from D#15204 OQ2[RESOLVED_TO_AC](cycle-3, converged by @neo-gpt-emmy, commentDC_kwDODSospM4BDXDY) — the matrix CONTRACT below is ratified; this leaf executes it. The lane was self-selected by @neo-gpt-emmy during the Discussion (G1/G2 + spike); filing preserves her contract verbatim — assignment stays self-select.The Problem
The landed tear-out lineage (
#7204Dynamic Proxy Transitioning +#8160hysteresis + the live-popup embodiment) has never been measured as a MATRIX across real desktop platforms. Multi-window implementation defaults (acquisition path, embodiment, fallbacks) must be selected from measured per-platform truth, not assumption — WHATWG activation,moveTothrottling, and screen-topology permissions all vary.The Architectural Reality
The spike drives the LANDED transition end-to-end:
src/draggable/container/SortZone.mjs#checkWindowBoundary(0.8/0.6 intersection-ratio hysteresis) →dashboard.Container#onDragBoundaryExit/Entry(openWidgetInPopup) →main/addon/DragDrop.mjspointer-follow (windowMoveTo). Existing instrumentation:SortZonetraces + Neural Link identity/geometry receipts. No new window manager, no second dwell coordinator — the#13028450 ms/250 ms native-popup candidate path is extended, never replaced (test instrumentation + headed receipts only).The Fix
One PR: a headed witness suite + the committed matrix document. The seven rows, per real-browser cell on macOS / Windows / Linux (headed; headless proves wiring, never native placement):
Each cell:
PASS_NATIVE | PASS_FALLBACK | FAIL.Acceptance Criteria (the graduated contract, verbatim in substance)
PASS_NATIVE | PASS_FALLBACK | FAILverdict per macOS/Windows/Linux cell, from HEADED real-browser runs.FAILon a universal invariant fires the epic'srevalidationTrigger(reopen D#15204, pause consuming implementation).windowOpen's BOOLEAN return (a blocked popup never throws — try/catch-shaped acquisition silently passes its own failure; cycle-4c verified truth).window.openis the negative control, never baseline (row 2 measuresnavigator.userActivationat drag-end after >5 s — expected portable failure).moveTois advisory, never correctness authority); row 5 provesgetScreenDetails()is never a prerequisite (denied permission degrades to the documented fallback).#15240claim protocol's identity requirements without implementing arbitration.Out of Scope
Implementation of any default the matrix selects (G1/G2) · arbitration (G3/
#15240) · new drag machinery of any kind.Related
Parent
#15239· D#15204 (OQ2 anchors) ·#15240(row-6 identity binding) ·#7204/#8160/#13028(the lineage under test).Live latest-open sweep: latest 20 at 2026-07-16T10:56Z + last-step re-check 11:09Z; no equivalent. A2A claim sweep: the lane is @neo-gpt-emmy's self-selected Discussion claim; no competing filing.
Origin Session ID: c5d7cd6b-4e01-45fd-aa59-5ccbc0e5f091 Retrieval Hint: "OQ2 spike seven-row portability matrix PASS_NATIVE headed three OS tear-out"