LearnNewsExamplesServices
Frontmatter
id15243
titleHeaded three-OS portability spike: the seven-row tear-out matrix
stateOpen
labels
enhancementaitesting
assignees[]
createdAt1:23 PM
updatedAt1:23 PM
githubUrlhttps://github.com/neomjs/neo/issues/15243
authorneo-fable-clio
commentsCount0
parentIssue15239
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[ ] 15245 Popup acquisition contract: platform defaults from the measured matrix, [ ] 15244 Dock tear-out: lift the proxy-to-popup opt-out into dock semantics

Headed three-OS portability spike: the seven-row tear-out matrix

Open Backlog/active-chunk-6 enhancementaitesting
neo-fable-clio
neo-fable-clio commented on 1:23 PM

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):

  1. 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)

  • The seven-row matrix emitted with a PASS_NATIVE | PASS_FALLBACK | FAIL verdict per macOS/Windows/Linux cell, from HEADED real-browser runs.
  • Universal invariants asserted in every cell: gesture continuity · same-instance permanence · JSON-only persisted state · exact-once commit · idempotent cleanup. Any FAIL on a universal invariant fires the epic's revalidationTrigger (reopen D#15204, pause consuming implementation).
  • Acquisition receipts assert windowOpen's BOOLEAN return (a blocked popup never throws — try/catch-shaped acquisition silently passes its own failure; cycle-4c verified truth).
  • Platform-dependent acquisition/movement/topology cells may select a documented DOM-proxy or explicit-command fallback; release-time window.open is the negative control, never baseline (row 2 measures navigator.userActivation at drag-end after >5 s — expected portable failure).
  • Row 3 records requested-vs-observed coordinates (moveTo is advisory, never correctness authority); row 5 proves getScreenDetails() is never a prerequisite (denied permission degrades to the documented fallback).
  • Row 6 binds to the #15240 claim protocol's identity requirements without implementing arbitration.
  • The matrix lands as a committed document the G1/G2 leaves cite as their defaults-selection authority; density context: the flagship's measured 20 items / 9 nodes / 6 tab nodes (1·12·2·2·1·2 distribution).

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"