Context
This is leaf L6 of epic #19658, the acceptance journey. It is blocked by #19662 and #19663 (measurement), #19664 (scroll stability) and #19665 (AnimateRows), and by #19692 and #19697, two defects this journey found. The epic's predicate is a user outcome: a buffered grid opts into content-sized rows, the visible record stays stable, bodies stay aligned, and keyboard navigation and the final row work. Only a real example plus a whitebox e2e proves it. D#19645's probe 6 estimated the measurement load from a fixed-height grid; this leaf measures the integrated implementation.
The Fix
- The example: an example app (placement settled at intake, next to
examples/grid/bigData) with 10k flat records whose text columns wrap one to four lines, at least one declared wrapping column in each of the start, center and end bodies (locked columns), content-sized mode on, and a fixed-height toggle as the control.
- The e2e: a whitebox e2e over D#19645's ten required examples:
- an initially unmounted tallest column;
- a width change and a font change;
- edit, sort and filter;
- delayed recycled responses;
- reverse wheel scrolling;
- thumb drag and release;
- jump-to-row;
- the final row, reachable and fully visible;
- two views at different widths;
- the unchanged fixed-height control.
- Why 10k, not 100k: the operator's guidance for testing dynamic row heights (2026-10-12). Browsers cap element heights, each at its own limit. 100k of these rows reach about 8.7M px, past 2^23 px, beyond which Chrome rounds scroll offsets to 2px (#19658 comment 6134339160). 10k rows reach about 0.9M px.
- The throughput measurement: under real wheel input at ordinary and fast speeds, record the rows entering per second, the shares of rows first mounted and first visible at the estimate, the main-thread time spent measuring per second, and frames over 20 ms. Compare them against probe 6's fixed-height baseline (41–71 rows/s, 50–80 ms to fresh rows, 0 long frames).
Contract Ledger
| Target surface |
Source of authority |
Proposed behavior |
Fallback / edge case |
Docs |
Evidence |
| Content-sized rows example |
#19658 |
Demonstrates the opt-in mode on 10k wrapped rows with locked columns |
Fixed-height toggle as the control |
Example README or JSDoc |
The e2e |
| Whitebox e2e for the ten examples |
D#19645 graduation criteria |
Each example asserted on the real grid |
— |
Spec titles |
CI |
Acceptance Criteria
Out of Scope
TreeStore, images and components, remote data, scaled scrolling past 100k rows, and uniform or capped N-line modes, all deferred by #19658.
Related
#19658 · #19662, #19663, #19664, #19665, #19692, #19697 (blocked by) · D#19645 (probe 6 baseline 18881057)
Origin Session ID: daac81df-5205-405e-a3af-aec56e5cca45
Context
This is leaf L6 of epic #19658, the acceptance journey. It is blocked by #19662 and #19663 (measurement), #19664 (scroll stability) and #19665 (
AnimateRows), and by #19692 and #19697, two defects this journey found. The epic's predicate is a user outcome: a buffered grid opts into content-sized rows, the visible record stays stable, bodies stay aligned, and keyboard navigation and the final row work. Only a real example plus a whitebox e2e proves it. D#19645's probe 6 estimated the measurement load from a fixed-height grid; this leaf measures the integrated implementation.The Fix
examples/grid/bigData) with 10k flat records whose text columns wrap one to four lines, at least one declared wrapping column in each of the start, center and end bodies (locked columns), content-sized mode on, and a fixed-height toggle as the control.Contract Ledger
Acceptance Criteria
Out of Scope
TreeStore, images and components, remote data, scaled scrolling past 100k rows, and uniform or capped N-line modes, all deferred by #19658.
Related
#19658 · #19662, #19663, #19664, #19665, #19692, #19697 (blocked by) · D#19645 (probe 6 baseline 18881057)
Origin Session ID: daac81df-5205-405e-a3af-aec56e5cca45