Context
Leaf of #18762, from the Fable evaluation round its Unresolved Liveness names. The epic's delivered coverage — test/playwright/component/grid/CellEditing.spec.mjs and test/playwright/e2e/grid/CellEditingPooling.spec.mjs — drives one synthetic fixture, test/playwright/component/apps/grid-cell-editing, whose only editor is the default text field. examples/grid/cellEditing, the app a reader opens to try cell editing, is booted by one spec (component/grid/ColumnRendererScope.spec.mjs) that proves it renders rows; nothing edits a cell in it.
The Problem
Driving the example by real pointer and keyboard at dev@3f859a4803 found the text and number editors completing the whole loop and both picker editors broken (filed beside this leaf: the picker trigger ending the edit, and ComboBox on a bound store). None of it could have reddened CI: no arm opens a non-text editor, and no arm touches the public example. D#17832's evidence bar assigns exactly this to public proof: "Exercise real pointer and keyboard input, then assert both DOM focus and App-Worker truth" on the existing example.
The Architectural Reality
examples/grid/cellEditing/MainContainer.mjs — four editable columns: text (firstname, lastname), NumberField (randomNumber, step 5, 0–100), DateField (randomDate), CountryField with bind: {store: 'stores.countries'}; githubId is editable: false; the toolbar swaps the selection model and disables the plugin.
buildScripts/util/e2eCiSelection.mjs — test/playwright/e2e/grid is in RUN_PATHS as a directory, and the e2e config deselects any spec whose source contains neuralLink, so a Brain-free spec in that folder executes in CI.
- App-Worker truth without the Brain:
Neo.worker.App.getConfigs, the read CellEditingPooling.spec.mjs already uses.
The Fix
One Brain-free spec, test/playwright/e2e/grid/CellEditingExample.spec.mjs, on the public example, real pointer and keys only, asserting DOM focus and the record:
- text: double-click, type, Enter → the record and the cell carry the value, focus is on
grid.View; Enter and F2 on the selected cell activate too;
- number: the spin trigger and ArrowUp step by 5 inside one session, Enter commits (the value's type is not asserted: the DOM cannot tell
100 from '100' without the Brain);
- Escape discards the draft and the record is unchanged;
- a click on another cell commits the draft and selects that cell;
githubId refuses every activation gesture before any editor exists;
- the plugin's
disabled checkbox stops activation and re-enables it.
The date-picker and combo arms land with their defect leaves, in this spec.
Acceptance Criteria
Out of Scope
Picker and combo editor arms (their own leaves) · Tab traversal and select-on-activation (interaction-contract scope, unfiled) · high-cardinality sort/filter/locked arms · the Grids guide · the Table control.
Avoided Traps
- A Neural Link whitebox spec: green on a Brain seat, deselected in CI — the trap the epic already names.
- Arms asserting today's picker behaviour: that would ossify two defects as contract.
Related
Parent #18762 · D#17832 (evidence bar, "Whitebox E2E") · #18764 · #18771.
Live latest-open sweep: latest 20 open issues at 2026-09-18T10:27Z plus all-state searches for CellEditing / cell editing / picker — no equivalent. A2A sweep (latest 12, all read-states): no claim on this scope. Memory sweep: one hit, my own measurement checkpoint. Own open assignments: #15252 only.
Origin Session ID: 323cb989-06a2-4b3f-8d70-912d67796c11
Retrieval Hint: "examples/grid/cellEditing e2e witness real pointer keyboard number date country editor"
Context
Leaf of #18762, from the Fable evaluation round its Unresolved Liveness names. The epic's delivered coverage —
test/playwright/component/grid/CellEditing.spec.mjsandtest/playwright/e2e/grid/CellEditingPooling.spec.mjs— drives one synthetic fixture,test/playwright/component/apps/grid-cell-editing, whose only editor is the default text field.examples/grid/cellEditing, the app a reader opens to try cell editing, is booted by one spec (component/grid/ColumnRendererScope.spec.mjs) that proves it renders rows; nothing edits a cell in it.The Problem
Driving the example by real pointer and keyboard at
dev@3f859a4803found the text and number editors completing the whole loop and both picker editors broken (filed beside this leaf: the picker trigger ending the edit, and ComboBox on a bound store). None of it could have reddened CI: no arm opens a non-text editor, and no arm touches the public example. D#17832's evidence bar assigns exactly this to public proof: "Exercise real pointer and keyboard input, then assert both DOM focus and App-Worker truth" on the existing example.The Architectural Reality
examples/grid/cellEditing/MainContainer.mjs— four editable columns: text (firstname,lastname),NumberField(randomNumber, step 5, 0–100),DateField(randomDate),CountryFieldwithbind: {store: 'stores.countries'};githubIdiseditable: false; the toolbar swaps the selection model and disables the plugin.buildScripts/util/e2eCiSelection.mjs—test/playwright/e2e/gridis inRUN_PATHSas a directory, and the e2e config deselects any spec whose source containsneuralLink, so a Brain-free spec in that folder executes in CI.Neo.worker.App.getConfigs, the readCellEditingPooling.spec.mjsalready uses.The Fix
One Brain-free spec,
test/playwright/e2e/grid/CellEditingExample.spec.mjs, on the public example, real pointer and keys only, asserting DOM focus and the record:grid.View; Enter and F2 on the selected cell activate too;100from'100'without the Brain);githubIdrefuses every activation gesture before any editor exists;disabledcheckbox stops activation and re-enables it.The date-picker and combo arms land with their defect leaves, in this spec.
Acceptance Criteria
dev.src/grid/plugin/CellEditing.mjs— or, for focus return, ofcomponent.Base#destroy, which owns it — recorded in the PR: no arm passes against an engine that cannot commit, cancel, refuse or hand focus back.Out of Scope
Picker and combo editor arms (their own leaves) · Tab traversal and select-on-activation (interaction-contract scope, unfiled) · high-cardinality sort/filter/locked arms · the Grids guide · the Table control.
Avoided Traps
Related
Parent #18762 · D#17832 (evidence bar, "Whitebox E2E") · #18764 · #18771.
Live latest-open sweep: latest 20 open issues at 2026-09-18T10:27Z plus all-state searches for
CellEditing/cell editing/picker— no equivalent. A2A sweep (latest 12, all read-states): no claim on this scope. Memory sweep: one hit, my own measurement checkpoint. Own open assignments: #15252 only.Origin Session ID: 323cb989-06a2-4b3f-8d70-912d67796c11
Retrieval Hint: "examples/grid/cellEditing e2e witness real pointer keyboard number date country editor"