Item 3 follow-up: land the scroll/virtualization benchmark (recovers a commit orphaned by #115's merge) - #178
Merged
WilfordGrimley merged 2 commits intoJul 19, 2026
Conversation
This was referenced Jul 19, 2026
… script Per owner follow-up on #115: the manual scroll fps/heap/jank benchmark that gated the sheet-level-vs-row-granular virtualization decision is now under frontend/tests/perf/, runnable via `npx playwright test --config=playwright.perf.config.ts`. The main playwright.config.ts testIgnores tests/perf/ so it never runs in CI or a plain `npx playwright test`. Ahead of the pane migration, which restructures this exact surface, this turns "did scrolling regress?" into a number to compare against, not a feeling. Verified: `npx playwright test --config=playwright.perf.config.ts` reproduces the PR's original results (120 cards/15 sheets, ~59fps, peak heap ~257MB, 16/120 max simultaneously-mounted <img> tags, 0 long tasks); `npx playwright test --list` (default config) does not surface the perf spec.
WilfordGrimley
force-pushed
the
claude/proposal-h-item3-benchmark-followup-04bam2
branch
from
July 19, 2026 20:13
6b3246a to
d654f66
Compare
2 tasks
WilfordGrimley
added a commit
that referenced
this pull request
Jul 19, 2026
This was referenced Jul 19, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
This is a self-caught mistake, being fixed transparently. PR #115 (Item 3: flat scroll + virtualization) merged at commit
9b613f42. Afterward, in the same session, I ran the owner-requested benchmark and pushed a follow-up commit (a8cd3bc8, committingfrontend/tests/perf/display-scroll.bench.spec.ts+playwright.perf.config.ts) to that same branch — but the PR had already merged, so that push landed on a now-closed branch and never reachedmaster. The PR body and my own relay report both describe the benchmark script as "now committed," which was true of the branch but not ofmaster— the follow-up commit was silently orphaned. Confirmed viagit show origin/master:frontend/playwright.perf.config.tsfailing before this PR.Per this repo's own documented policy for exactly this situation (
CLAUDE.md: "a merged pull request is finished — it cannot track new work and must not be reused"), this PR recovers that orphaned commit as a fresh branch off currentmaster(git cherry-pick a8cd3bc8, clean, no conflicts) rather than trying to reopen or stack onto #115.What this actually adds (unchanged from the original description)
The manual scroll/virtualization benchmark that gated Item 3's sheet-level-vs-row-granular decision is now committed under
frontend/tests/perf/display-scroll.bench.spec.ts, runnable vianpx playwright test --config=playwright.perf.config.ts.playwright.config.tsnowtestIgnorestests/perf/**so it's invisible to both a plainnpx playwright testand CI's sharded run. Intended to give the upcoming pane migration (which restructures this exact surface) a number to compare against instead of a feeling.Checklist
pre-commitand installed the hooks withpre-commit installbefore creating any commits.npx tsc --noEmitcleannpx jest— 43/43 suites, 402/402 tests passingnpx playwright test --list(default config) confirmstests/perf/is invisible;npx playwright test --config=playwright.perf.config.ts --listshows exactly the 1 benchmark testnpx playwright test --config=playwright.perf.config.ts— reproduces the original benchmark numbers (120 cards/15 sheets, ~59.8fps, peak heap ~258MB, 16/120 max mounted<img>s, 0 long tasks)NEXT_PUBLIC_UNIFIED_DISPLAY_ENABLED=true npx next build— flag-on production build succeedsWhy this happened / what I'm changing about my own process
I checked #115's merge status before building on it (this session's own established branch-hygiene lesson), but didn't re-check it between the PR merging and my own follow-up push to the same branch later in the same session — the check needs to happen at push time for every push to a branch, not just once at the start of a task. Flagging this explicitly rather than quietly folding it into a routine-looking PR.
Generated by Claude Code