Context
Flagged by @neo-opus-ada (A2A 4968699a, 2026-06-12) the moment #12933/#12935 (devindex locked-column removal) went live, and confirmed by sweep: the lock-removal doesn't just raise the stakes for locked-column test coverage — it relocates them. Assigned to Ada per her explicit offer ("I'm glad to own standing up that fixture"); filed by the #12933 lane owner.
Policy note (operator review on PR #12935, supersedes this body's first revision): the affected specs are NOT skipped — they stay failing-honest post-merge. E2e runs outside CI, so red costs no pipeline and is the loud tracker pressing this ticket; hardcoded describe.skip would be the silent state and would usurp NEO_TEST_SKIP_CI (the env-layer CI-exclusion mechanism, if these specs ever enter CI).
Release classification: ON the board — #12935 ships with three e2e specs known-failing against this ticket; the fixture migration turns them green.
The Problem
Three whitebox-e2e specs assert locked-column truth against the live devindex app, whose locked config is removed by #12933 / PR #12935:
| Spec |
Dependency |
State post-#12935 |
test/playwright/e2e/GridColumnCrossBodyDnD.spec.mjs (#12807 oracle) |
devindex multi-region header DOM; lockedStartColumns worker truth |
failing-honest, one-line ticket-ref-ok pointer here |
test/playwright/e2e/GridColumnOverdragScroll.spec.mjs (#12906/#12907 era) |
lockedStartWidth geometry; "locked region frozen" assertions |
failing-honest, one-line ticket-ref-ok pointer here |
test/playwright/e2e/GridThumbDragDevIndex.spec.mjs |
queries .neo-locked-start/.neo-locked-end cell boundaries |
failing-honest, untouched (its 28 lines of pre-hook trailing whitespace gate any edit — the cleanup rides this ticket's migration commit, hook-enforced) |
The locked-column defect class (#12883 / #12929 / #12930 / #12932) needs a live testbed the day after devindex stops being one.
The Architectural Reality
- The dynamic-locking pattern is proven:
GridBigDataMultiBodyNL.spec.mjs builds locked topology at runtime via the NL fixture (app.setProperties(colId, {locked})) — removal-proof by construction.
- But the three failing specs carry devindex-specific geometry (column widths, region compositions, scroll math) — retargeting them is real per-spec work, not a find-replace.
test/playwright/unit/grid/BodyCellMapping.spec.mjs is the counter-example to imitate where possible: it mirrors the devindex shape with in-test column literals — self-contained, unaffected.
The Fix (shape — owner's call on specifics)
- A minimal, purpose-built locked-grid fixture target (small example app or test-owned mount) with stable locked regions (e.g. the canonical 3-start/1-end shape the defect family was found on) — geometry chosen for test math, never for demo aesthetics, so it has no reason to churn.
- Migrate the three failing specs onto it — each goes green in its migration commit (the
ticket-ref-ok pointer lines come out in the same commits; ThumbDrag's migration commit includes its whitespace cleanup).
- Becomes the designated home for: #12930 AC #3 (cell-generation regression — coordinate with @neo-fable-clio at fix-shape time), #12883's locked-end re-home repro (@neo-fable), and future locked-column whitebox coverage. Sequencing input from @neo-fable (A2A):
GridColumnOverdragScroll migrates first — its two legs are the regression net for three of the family's fixes.
Acceptance Criteria
Out of Scope
- The defect fixes themselves (#12929/#12930/#12932/#12883).
- devindex changes (done via #12933/PR
#12935).
- Responsive lock states (#12934).
Related
#12933 / PR #12935 (the forcing event) · #12807 (the oracle this re-homes) · #12930, #12883 (consumers) · GridBigDataMultiBodyNL.spec.mjs (the dynamic-locking pattern).
Live latest-open sweep: checked latest 10 open issues at 2026-06-12T00:39Z; no equivalent found. A2A in-flight sweep: clean — assignment per the owner's explicit A2A offer.
Origin Session ID: e6b095bb-4d88-4aeb-a0ec-7d47e0f8f7ce
Retrieval Hint: "locked column grid fixture whitebox e2e devindex decoupling failing specs"
Body revised 2026-06-12 ~01:10Z by the author (per Euclid's #12935 review caveat): skip/un-skip wording replaced with the final failing-honest policy throughout — comments below from before that revision reference the earlier wording.
Context
Flagged by @neo-opus-ada (A2A
4968699a, 2026-06-12) the moment #12933/#12935 (devindex locked-column removal) went live, and confirmed by sweep: the lock-removal doesn't just raise the stakes for locked-column test coverage — it relocates them. Assigned to Ada per her explicit offer ("I'm glad to own standing up that fixture"); filed by the #12933 lane owner.Policy note (operator review on PR
#12935, supersedes this body's first revision): the affected specs are NOT skipped — they stay failing-honest post-merge. E2e runs outside CI, so red costs no pipeline and is the loud tracker pressing this ticket; hardcodeddescribe.skipwould be the silent state and would usurpNEO_TEST_SKIP_CI(the env-layer CI-exclusion mechanism, if these specs ever enter CI).Release classification:ON the board — #12935 ships with three e2e specs known-failing against this ticket; the fixture migration turns them green.The Problem
Three whitebox-e2e specs assert locked-column truth against the live devindex app, whose locked config is removed by #12933 / PR
#12935:test/playwright/e2e/GridColumnCrossBodyDnD.spec.mjs(#12807oracle)lockedStartColumnsworker truthticket-ref-okpointer heretest/playwright/e2e/GridColumnOverdragScroll.spec.mjs(#12906/#12907era)lockedStartWidthgeometry; "locked region frozen" assertionsticket-ref-okpointer heretest/playwright/e2e/GridThumbDragDevIndex.spec.mjs.neo-locked-start/.neo-locked-endcell boundariesThe locked-column defect class (#12883 / #12929 / #12930 / #12932) needs a live testbed the day after devindex stops being one.
The Architectural Reality
GridBigDataMultiBodyNL.spec.mjsbuilds locked topology at runtime via the NL fixture (app.setProperties(colId, {locked})) — removal-proof by construction.test/playwright/unit/grid/BodyCellMapping.spec.mjsis the counter-example to imitate where possible: it mirrors the devindex shape with in-test column literals — self-contained, unaffected.The Fix (shape — owner's call on specifics)
ticket-ref-okpointer lines come out in the same commits; ThumbDrag's migration commit includes its whitespace cleanup).GridColumnOverdragScrollmigrates first — its two legs are the regression net for three of the family's fixes.Acceptance Criteria
Out of Scope
#12935).Related
#12933 / PR
#12935(the forcing event) ·#12807(the oracle this re-homes) · #12930, #12883 (consumers) ·GridBigDataMultiBodyNL.spec.mjs(the dynamic-locking pattern).Live latest-open sweep: checked latest 10 open issues at 2026-06-12T00:39Z; no equivalent found. A2A in-flight sweep: clean — assignment per the owner's explicit A2A offer.
Origin Session ID: e6b095bb-4d88-4aeb-a0ec-7d47e0f8f7ce
Retrieval Hint: "locked column grid fixture whitebox e2e devindex decoupling failing specs"
Body revised 2026-06-12 ~01:10Z by the author (per Euclid's
#12935review caveat): skip/un-skip wording replaced with the final failing-honest policy throughout — comments below from before that revision reference the earlier wording.