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-e2e → playwright.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 connectToApp → ConnectionService.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
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"
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 (assertingcenterColumns/lockedStartColumns/lockedEndColumnsas engine truth). What it CANNOT deliver yet is a trustworthy same-name-topology run: theneuralLinkfixture 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 theneuralLinkfixture.learn/guides/testing/WhiteboxE2E.md: drag-simulation guidance corrected (nativepage.mousewith{steps}; the prior guidance produced arming-gate misses)..github/workflows/test.yml) runsintegration-unified+unitonly — the e2e config (test-e2e→playwright.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-apptest-e2epass must be demonstrated separately if claimed.test/playwright/fixtures.mjsconnectToApp→ConnectionService.waitForSessionoldest-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
page.mouse+{steps}).test-e2e.Out of Scope
test-e2eis not in the workflow).Related
PRR_kwDODSospM8AAAABCs8Ffw+ the converge gate list (A2Ad03598bd)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
680503f0precedes 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"