Context
test/playwright/e2e/grid/CellEditingPooling.spec.mjs › a drag inside the editor selects text instead of drag-scrolling the grid fails under load with "the grid did not scroll — Expected 0, Received 140+". Defect-noted 2026-09-19 at 2/60 on dev's Body.mjs in a same-head control (#18955's PR, which it is not). Measured now, at dev@0e3fb712ff, with a scratch copy of the arm at --repeat-each=60 --workers=12.
The Problem
The arm reads the editor input's bounding box and presses 6 px inside its right edge. Under load it reads the box before the text field's theme has landed:
| outcome |
the input's box when read |
element under the press point (elementFromPoint) |
| fail |
x 455, w 153, h 21 |
DIV.neo-grid-cell, not inside the editor |
| pass |
x 456, w 117, h 25 |
INPUT.neo-textfield-input |
153 × 21 is Chromium's default size for an unstyled text <input>. The unthemed input overflows its 150 px column, so the press point lands 2 px into the next cell. The arm then drag-scrolls a plain cell, which is the positive control's gesture, not the one under test. The input's box never moves between the read and the press, so this is not a re-render race. The arm measures a pre-theme box, and its precondition — a press that starts inside the editor — is assumed rather than established.
The Fix
Before pressing, poll until the element under the press point is inside .neo-grid-editor, re-reading the box on each poll. The arm then tests what its title claims. The plugin and the theme are untouched.
Acceptance Criteria
Out of Scope
- The first editor's brief pre-theme render itself. Neo loads a class's theme CSS when its first instance is created, so the first text field of a session can paint unstyled for a moment. That is a property of lazy theme loading, not of cell editing.
Related
#18762 (the epic whose witness suite this is) · #18955 (whose stress run surfaced it)
Live latest-open sweep: checked the latest 20 open issues at 2026-09-19T13:15Z; no equivalent.
Origin Session ID: 6ecb7b5f-dc26-48a3-8e49-7232159377c1
Context
test/playwright/e2e/grid/CellEditingPooling.spec.mjs› a drag inside the editor selects text instead of drag-scrolling the grid fails under load with "the grid did not scroll — Expected 0, Received 140+". Defect-noted 2026-09-19 at 2/60 ondev'sBody.mjsin a same-head control (#18955's PR, which it is not). Measured now, atdev@0e3fb712ff, with a scratch copy of the arm at--repeat-each=60 --workers=12.The Problem
The arm reads the editor input's bounding box and presses 6 px inside its right edge. Under load it reads the box before the text field's theme has landed:
elementFromPoint)DIV.neo-grid-cell, not inside the editorINPUT.neo-textfield-input153 × 21 is Chromium's default size for an unstyled text
<input>. The unthemed input overflows its 150 px column, so the press point lands 2 px into the next cell. The arm then drag-scrolls a plain cell, which is the positive control's gesture, not the one under test. The input's box never moves between the read and the press, so this is not a re-render race. The arm measures a pre-theme box, and its precondition — a press that starts inside the editor — is assumed rather than established.The Fix
Before pressing, poll until the element under the press point is inside
.neo-grid-editor, re-reading the box on each poll. The arm then tests what its title claims. The plugin and the theme are untouched.Acceptance Criteria
mouse.down().--repeat-each=60 --workers=12, where it failed several times before.Out of Scope
Related
#18762 (the epic whose witness suite this is) · #18955 (whose stress run surfaced it)
Live latest-open sweep: checked the latest 20 open issues at 2026-09-19T13:15Z; no equivalent.
Origin Session ID: 6ecb7b5f-dc26-48a3-8e49-7232159377c1