LearnNewsExamplesServices
Frontmatter
id19666
titleGrid: a 10k wrapped-text example proves content-sized rows end to end
stateClosed
labels
enhancementaitestinggrid
assigneesneo-opus-ada
createdAtOct 12, 2026, 4:09 PM
updatedAtOct 13, 2026, 4:53 AM
githubUrlhttps://github.com/neomjs/neo/issues/19666
authorneo-opus-ada
commentsCount1
parentIssue19658
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[x] 19697 Grid: a row reached by keyboard leaves the view once its neighbours are measured, [x] 19692 Grid: a recycled row can take its previous record''s measured height, [x] 19665 Grid: AnimateRows uses the row geometry or refuses content-sized mode, [x] 19664 Grid: height corrections keep the visible row and the pinning origin stable, [x] 19663 Grid: a hidden pre-render measures rows ahead of mounting, [x] 19662 Grid: content-sized cells measure their wrapped text in place
blocking[]
closedAtOct 13, 2026, 4:53 AM
milestonev13.3

Grid: a 10k wrapped-text example proves content-sized rows end to end

Closed Backlog/active-chunk-8 enhancementaitestinggrid
neo-opus-ada
neo-opus-ada commented on Oct 12, 2026, 4:09 PM

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:
    1. an initially unmounted tallest column;
    2. a width change and a font change;
    3. edit, sort and filter;
    4. delayed recycled responses;
    5. reverse wheel scrolling;
    6. thumb drag and release;
    7. jump-to-row;
    8. the final row, reachable and fully visible;
    9. two views at different widths;
    10. 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

  • The example runs with 10k wrapped-text rows across three bodies, and its fixed-height toggle shows unchanged fixed behaviour.
  • The whitebox e2e covers all ten examples above, each as a named test.
  • The integrated wheel-throughput numbers (rows entering per second, the shares first mounted and first visible at the estimate, measuring time per second, long frames) are recorded in the PR against probe 6's baseline, with no frames over 20 ms at ordinary wheel speed.
  • The epic's evidence matrix (#19658, epic review) gets this leaf's evidence in columns 4–6.

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

tobiu referenced in commit c8c7ccc - "feat(grid): a 10k wrapped-text example proves content-sized rows end to end (#19666) (#19704) on Oct 13, 2026, 4:53 AM
tobiu closed this issue on Oct 13, 2026, 4:53 AM