Context
The #17844 battery classified 7 deterministic whitebox reds as the "pre-existing committed-drag family". Re-baselined twice at the post-#17858 merge head 5f3cf84ebf (identical batch, one-to-one identity match with the battery ledger — no new reds, no accidental fixes), then diagnosed from the captured failure log plus source reads. Four evidenced mechanisms; none of them indicts the engine — the green unit/component tiers plus the six passing siblings in the same files pin the engine behavior these journeys mean to witness.
Live latest-open sweep: checked latest 20 open issues at 2026-08-29T21:05Z; no equivalent found. A2A claim sweep over the herd window: no competing claim.
The Problem
Seven tests across six specs. (Amended 2026-08-29 after implementation-phase diagnosis: the mechanism map below is the corrected record; the original A-bucket framing under-attributed the wrong-splitter genus and stated an incomplete arming model.)
THE DOMINANT MECHANISM — the wrong-splitter genus (4 tests): since edge zones became resizable, the workstation boots three .neo-dashboard-dock-splitter-horizontal elements (left edge + main split + right edge share the orientation class per LayoutAdapter.createEdgeSplitterAffordance). Every first-match consumer — querySelector, queryVdom(...)[0], a strict-mode locator — silently binds the LEFT EDGE splitter, whose drag commits resizeEdgeZone, never the resizeSplit the specs settle on:
WorkstationGridRepaintNL.spec.mjs (both tests): first-match queryVdom + page reader → the drive arms and resizes the edge band while the poll awaits split-main.sizes to change. (Its simulateEvent drive with 60ms inter-event delays arms correctly — this file never had an arm problem.)
WorkstationSplitterGridGeometryNL.spec.mjs:330: the strict-mode locator throws outright at 3 matches.
WorkstationDockFlipResizeNL.spec.mjs:39: first-match queryVdom → drags the edge band; no split FLIP can ever play.
ARMING (2 of the above additionally): the Mouse sensor arms once delay AND minDistance are both satisfied — evaluated at move events and once more when the delay timer re-enters onDistanceChange with the latest tracked coords (Mouse.mjs:166). Consequences: move-then-HOLD drives arm at t=delay via the timer; move-then-RELEASE drives die because mouseup clears the timer. FlipResize (release ~30ms after down) needed the arm wait; SplitterGridGeometry's drive timer-armed mid-hold but all its travel was pre-arm — zero drag:move, terminal at start size — so it needed the arm wait before the travel too.
C — premise mechanics shifted (1 test):
WorkstationStarvedGeometryNL.spec.mjs:64 — the trigger mutation (flex: 0 0 60px on the bottom band) frees far less height than its +100px literal expects: the band's theme floor (min-block-size) clamps the shrink, and the literal itself was calibrated to the pre-rewrite band chrome. The rig must release the floor it fights, and the bound must derive from the height actually freed.
D — composite reds, both diagnosed to SIBLINGS (2 tests):
WorkstationDragAffordancesNL.spec.mjs:271 — engine defect, escalated to #17864: DragAffordances#ensureGeometry passes the raw descriptor object (zones.center = {nodeId}) where produceCandidates requires a node-id string → the root edge chips are never offered → the spec's topChip read is undefined. The spec is correct and needs no change; it greens when #17864 merges.
WorkstationNL.spec.mjs:484 (dense tour) — three mechanical layers repaired in this lane (splitter census 2→5; the band-geometry model rewritten from the retired preferred-width clamp to committed extents with floors + the 50% per-edge cap; one stale 0.28 fraction). The remaining layers are film-stage density literals (260/320/200 band px, heavyWidth ≥ 700) that encode the capped-band look — a product-design decision escalated to #17865 (re-tune boot extents vs accept the proportional look).
- Discriminator receipts: both persisted solo with this seat's preview tab closed — the shared-bridge multi-worker environment excluded as this seat's contribution.
The Architectural Reality
- The Mouse sensor's arm gate (delay + minDistance before
drag:start) is engine-correct and deliberate; journeys must speak it. The component tier already documents the idiom.
- Edge splitters sharing the dock splitter classes is by design (#17845 made edges resizable; they ride the generic single-target path).
- These journeys are the film's material (#15252 arc) and the epic's journey-tier witness debt — the engine contract they witness is already pinned green at unit/component tier.
The Fix
One PR, spec-tier only:
- Wrong-splitter genus: the structural child-combinator
'.neo-dashboard-dock-split-horizontal > .neo-dashboard-dock-splitter-horizontal' (page-side) at every first-match site — a queryVdom cn-walk was tried and rejected (the vdom shape gamble failed; the page-side selector is the proven route).
- Arming: the arm wait (
waitForTimeout(130) after down(), before the travel) where drives release early or travel pre-arm, with the timer-re-entry model documented at each site.
- Premise: the StarvedGeometry rig releases the band floor it mutates against and derives its bound from the height actually freed (proportional, era-proof, still failing-capable).
- FlipResize's instrument additionally rewritten mode-aware: when a FLIP plays, the ≤34ms exposure bound applies; under the live boundary preview (nothing to invert — terminal parity), assert no untransformed frame leaves the landed width (the double-take's actual signature). Bounded scope: a jump-cut-without-flip is motion-absence, owned by the DockMotion specs.
- Escalations per the clause: engine fix → #17864 (root chips vs descriptor-shaped center zones); film-stage density decision → #17865.
Acceptance Criteria
Out of Scope
- Engine changes of any kind (escalation clause routes those to siblings).
- The 3 battery mega-run-only flakes (the #17796 order/aliasing genus at the e2e tier) and the known-bug witnesses (#16498, FiveBeat scene-5, DemoA §06) — separately owned.
PreviewLanguageDragPairNL golden regeneration — rides the polish wave as a deliberate act.
Related
- Parent: #13158 (QT-parity docking polish epic — journey-tier witness debt)
- #17844 (the battery that classified this family; receipts + correction comments there)
- #17564 (closed sibling precedent: the earlier pre-existing headed-witness set)
- #17836 / #17858 (the rewrite these journeys must speak; re-baseline head)
- #15252 (the film these journeys feed)
Origin Session ID: c98e1ede-1a32-46f3-90ef-aaf37def487d
Retrieval Hint: "committed-drag journey repair arm window locator premise buckets"
Context
The #17844 battery classified 7 deterministic whitebox reds as the "pre-existing committed-drag family". Re-baselined twice at the post-#17858 merge head
5f3cf84ebf(identical batch, one-to-one identity match with the battery ledger — no new reds, no accidental fixes), then diagnosed from the captured failure log plus source reads. Four evidenced mechanisms; none of them indicts the engine — the green unit/component tiers plus the six passing siblings in the same files pin the engine behavior these journeys mean to witness.Live latest-open sweep: checked latest 20 open issues at 2026-08-29T21:05Z; no equivalent found. A2A claim sweep over the herd window: no competing claim.
The Problem
Seven tests across six specs. (Amended 2026-08-29 after implementation-phase diagnosis: the mechanism map below is the corrected record; the original A-bucket framing under-attributed the wrong-splitter genus and stated an incomplete arming model.)
THE DOMINANT MECHANISM — the wrong-splitter genus (4 tests): since edge zones became resizable, the workstation boots three
.neo-dashboard-dock-splitter-horizontalelements (left edge + main split + right edge share the orientation class perLayoutAdapter.createEdgeSplitterAffordance). Every first-match consumer —querySelector,queryVdom(...)[0], a strict-mode locator — silently binds the LEFT EDGE splitter, whose drag commitsresizeEdgeZone, never theresizeSplitthe specs settle on:WorkstationGridRepaintNL.spec.mjs(both tests): first-matchqueryVdom+ page reader → the drive arms and resizes the edge band while the poll awaitssplit-main.sizesto change. (ItssimulateEventdrive with 60ms inter-event delays arms correctly — this file never had an arm problem.)WorkstationSplitterGridGeometryNL.spec.mjs:330: the strict-mode locator throws outright at 3 matches.WorkstationDockFlipResizeNL.spec.mjs:39: first-matchqueryVdom→ drags the edge band; no split FLIP can ever play.ARMING (2 of the above additionally): the Mouse sensor arms once delay AND minDistance are both satisfied — evaluated at move events and once more when the delay timer re-enters
onDistanceChangewith the latest tracked coords (Mouse.mjs:166). Consequences: move-then-HOLD drives arm att=delayvia the timer; move-then-RELEASE drives die because mouseup clears the timer. FlipResize (release ~30ms after down) needed the arm wait; SplitterGridGeometry's drive timer-armed mid-hold but all its travel was pre-arm — zerodrag:move, terminal at start size — so it needed the arm wait before the travel too.C — premise mechanics shifted (1 test):
WorkstationStarvedGeometryNL.spec.mjs:64— the trigger mutation (flex: 0 0 60pxon the bottom band) frees far less height than its+100pxliteral expects: the band's theme floor (min-block-size) clamps the shrink, and the literal itself was calibrated to the pre-rewrite band chrome. The rig must release the floor it fights, and the bound must derive from the height actually freed.D — composite reds, both diagnosed to SIBLINGS (2 tests):
WorkstationDragAffordancesNL.spec.mjs:271— engine defect, escalated to #17864:DragAffordances#ensureGeometrypasses the raw descriptor object (zones.center = {nodeId}) whereproduceCandidatesrequires a node-id string → the root edge chips are never offered → the spec'stopChipread isundefined. The spec is correct and needs no change; it greens when #17864 merges.WorkstationNL.spec.mjs:484(dense tour) — three mechanical layers repaired in this lane (splitter census 2→5; the band-geometry model rewritten from the retired preferred-width clamp to committed extents with floors + the 50% per-edge cap; one stale 0.28 fraction). The remaining layers are film-stage density literals (260/320/200 band px,heavyWidth ≥ 700) that encode the capped-band look — a product-design decision escalated to #17865 (re-tune boot extents vs accept the proportional look).The Architectural Reality
drag:start) is engine-correct and deliberate; journeys must speak it. The component tier already documents the idiom.The Fix
One PR, spec-tier only:
'.neo-dashboard-dock-split-horizontal > .neo-dashboard-dock-splitter-horizontal'(page-side) at every first-match site — aqueryVdomcn-walk was tried and rejected (the vdom shape gamble failed; the page-side selector is the proven route).waitForTimeout(130)afterdown(), before the travel) where drives release early or travel pre-arm, with the timer-re-entry model documented at each site.Acceptance Criteria
WorkstationDockFlipResizeNL:39,WorkstationGridRepaintNL(both) green solo and in the family batch — the drives target the split-node splitter, arm, and the documents commit.WorkstationSplitterGridGeometryNL:330green — locator resolves exactly one element; the deterministic reproducer stays green.WorkstationStarvedGeometryNL:64green — premise derived from the freed height, still failing-capable (the derivation must not tautologize the trigger).WorkstationDragAffordancesNL:271: [deferred-evidence — engine sibling #17864]; the spec ships unchanged and greens at that merge.WorkstationNL:484dense tour: mechanical layers (census, committed-extent band model) repaired here; remaining density layers [deferred-evidence — design sibling #17865].Out of Scope
PreviewLanguageDragPairNLgolden regeneration — rides the polish wave as a deliberate act.Related
Origin Session ID: c98e1ede-1a32-46f3-90ef-aaf37def487d Retrieval Hint: "committed-drag journey repair arm window locator premise buckets"