LearnNewsExamplesServices
Frontmatter
id12898
titleLocked-column DnD whitebox substrate: spec scaffold, DOM-layer proof, worker-oracle design
stateClosed
labels
enhancementaitestinggrid
assignees[]
createdAtJun 11, 2026, 1:56 PM
updatedAtJun 11, 2026, 2:42 PM
githubUrlhttps://github.com/neomjs/neo/issues/12898
authorneo-fable
commentsCount0
parentIssue12807
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[]
blocking[]
closedAtJun 11, 2026, 2:42 PM

Locked-column DnD whitebox substrate: spec scaffold, DOM-layer proof, worker-oracle design

Closed v13.0.0/archive-v13-0-0-chunk-17 enhancementaitestinggrid
neo-fable
neo-fable commented on Jun 11, 2026, 1:56 PM

Context

Sub-issue of #12807, splitting the artifacts PR #12893 delivers from the parent's full runnable-whitebox contract — per the reviewer convergence on the PR (gpt's close-target review + converge gates): the parent's remaining AC (a correct-binding green e2e run under same-name worker topology) depends on #12897 and stays on #12807; THIS ticket captures what is deliverable and delivered now.

Release classification: boardless — parent #12807 feeds the v13 ledger via #12696; this sub is the PR-deliverable leaf (close-target of PR #12893).

The Problem

#12807's goal is whitebox-e2e coverage for locked-column DnD. PR #12893 delivers the substrate: the corrected WhiteboxE2E drag-path guidance, a native page.mouse + {steps} locked-column DnD spec (landing + cross-region re-home legs), DOM-layer behavior proof, and the worker-region-array oracle (asserting centerColumns / lockedStartColumns / lockedEndColumns as engine truth). What it CANNOT deliver yet is a trustworthy same-name-topology run: the neuralLink fixture binds to the oldest same-named App Worker session (#12897), so with any persistent DevIndex connected, the worker assertions read the wrong app instance. That binding fix is #12897 (assigned, in implementation) and its green run stays on the parent.

The Architectural Reality

  • test/playwright/e2e/GridColumnCrossBodyDnD.spec.mjs (new in PR #12893): two specs, DOM assertions + worker-region-array oracle via the neuralLink fixture.
  • learn/guides/testing/WhiteboxE2E.md: drag-simulation guidance corrected (native page.mouse with {steps}; the prior guidance produced arming-gate misses).
  • Evidence boundary (exact, per reviewer gate): repo CI (.github/workflows/test.yml) runs integration-unified + unit only — the e2e config (test-e2eplaywright.config.e2e.mjs) is NOT CI-gated. PR-level CI green therefore does not exercise these specs. The current same-name local run is red because the NL fixture binds the wrong worker (#12897). Any clean-single-app test-e2e pass must be demonstrated separately if claimed.
  • Fixture binding: test/playwright/fixtures.mjs connectToAppConnectionService.waitForSession oldest-appName match (#12897 carries the identity-bind fix).

The Fix (delivered by PR #12893)

The four artifacts above, with branch history clean (no-ticket merge commit collapsed) and the guide updated. No fixture changes — the binding fix is #12897's scope.

Acceptance Criteria

  • WhiteboxE2E guide drag-path guidance corrected (native page.mouse + {steps}).
  • Locked-column DnD spec scaffold: landing leg + cross-region re-home leg, runnable via test-e2e.
  • DOM-layer assertions prove the rendered behavior (header order, landing indexes).
  • Worker-region-array oracle implemented (engine-truth assertions on the region column arrays).
  • Post-merge: parent #12807 retains the same-name-topology green-run AC (blocked by #12897) — explicitly NOT this ticket's scope.

Out of Scope

  • The #12897-dependent correct-binding green run under same-name worker topology (parent #12807's remaining AC).
  • The fixture identity-bind fix itself (#12897, assigned).
  • CI-gating the e2e suite (separate decision; today test-e2e is not in the workflow).

Related

  • Parent: #12807 (same-name-topology trust AC lives there)
  • Delivered by: PR #12893
  • Dependency of the parent's remaining AC: #12897
  • Reviewer convergence: PR #12893 review PRR_kwDODSospM8AAAABCs8Ffw + the converge gate list (A2A d03598bd)

Live latest-open sweep: checked latest 20 open issues at 2026-06-11T11:55Z; no equivalent found. A2A in-flight claim sweep: lane-claim broadcast 680503f0 precedes this create; no competing claims.

Origin Session ID: e605ce21-3668-445c-bc00-45896aa9a092

Retrieval Hint: "whitebox locked-column DnD spec scaffold worker oracle close-target split"

tobiu closed this issue on Jun 11, 2026, 2:42 PM