Skip to content

Reduce browser fixture histories and keep last message rows reachable - #83

Open
comp615 wants to merge 2 commits into
broad-browser-fixture-sizingfrom
compact-browser-histories
Open

comp615 wants to merge 2 commits into
broad-browser-fixture-sizingfrom
compact-browser-histories

Conversation

@comp615

@comp615 comp615 commented Sep 16, 2026

Copy link
Copy Markdown
Collaborator

🤖 AI-authored implementation and description.

Stacked on #81; independent of the semantic migration batch. Small histories are now the default. Geometry and pagination tests opt into enough rows to exercise their actual boundary rather than signing hundreds of unused events in both communities.

All 35 fixture-sizing browser cases remain (70 engine executions). Initial-position generates exact near-fit counts rather than discarding generated rows. Reading/resize cases retain their measured distance outside prefetch; exact navigation retains a reply older than the initial channel head and a second thread page. Image history still forces virtualization/remounts and includes a verified failing image with its placeholder intact. No isolation, broker, timing-budget or retry changes.

Coverage controls: one-row layout failed real scrolling; a 40-row image history failed the remount check. The selected sizes pass. Review caught an obsolete failing-image URL after resizing; the new assertion failed with a successful image and passes with the restored 404 path. All four complete affected files pass in Chromium and WebKit (70/70). Diff and Biome checks pass.

Also retains the fractional-row clipping fix from closed #67, without its server-reuse changes. Bottom clearance keeps the last channel row reachable despite integer scroll extents; narrow layouts preserve that clearance. Strict full-visibility and dwell requirements for marking messages read are unchanged. The existing notification journey adds overflowing history only for the mention case, then checks fractional reflow at 1440px and 640px. No browser cases added or removed: this is real layout/read-acknowledgment coverage, not a DOM-emulator assertion. The regression failed with the mention remaining unread in both Chromium and WebKit without the fix, and passed with it. Rendered desktop and narrow states were inspected in both engines.

For the clipping update, the complete notification, initial-position, layout, completion-layout, image-scroll and message-navigation files passed locally in both engines (88/88), along with all nine read-observation unit tests and bin/pnpm check. Fresh hosted CI and DCO pass at that head, including all 394 identical browser-journey identities with no skips, failures or retries.

The first four timing samples compare the same #81 baseline with the fixture-sizing snapshot, before the clipping fix. The final row measures the updated head. Runner/worker configuration is unchanged. Full gate means earliest job start through required-gate completion, excluding queue time:

Run Full required-gate interval Slowest browser step
Baseline attempt 2 9m10s 464.2s
Fresh baseline attempt 3 9m04s 461.4s
Candidate attempt 1 8m50s 446.7s
Candidate attempt 2 7m13s 346.7s
Candidate with clipping fix 8m29s 419.4s

Both candidate gates passed, including all 394 identical browser case identities, with no skips, failures or retries. Shared-fixture base history rows fell from 59,880 to 36,878 per engine (38.4% fewer). Summed WebKit history-signing time was 209.7s on the fresh baseline versus 134.7s and 116.3s on the candidates; this is work summed across tests, not gate time.

The observed full-gate reduction against the fresh baseline is 14–111s (2.6–20.4%). This is not evidence of a stable 20% gain: candidate timing varied substantially, including gaps between worker groups and changes in untouched file timings. Both samples are reported rather than selecting the fastest. Human/code-owner review is still required.

With the clipping fix included, the fresh gate was 35s (6.4%) shorter than the same baseline; the slowest browser step was 42.1s shorter. Summed journey execution fell from 2654.5s to 2393.3s (9.8%), not wall time. On the critical WebKit shard, initial-position fell from 107.2s to 65.4s summed execution; image-scroll became the slowest file at 77.2s. This additional sample supports a gain for the combined PR, not a speed claim for the clipping fix itself or a stable percentage.

Co-authored-by: Amp <amp@ampcode.com>
Signed-off-by: Charlie Croom <ccroom@squareup.com>
Amp-Thread-ID: https://ampcode.com/threads/T-01a0a149-b278-7550-acc4-356168b0c4b5
Co-authored-by: Amp <amp@ampcode.com>
Signed-off-by: Charlie Croom <ccroom@squareup.com>
Amp-Thread-ID: https://ampcode.com/threads/T-01a0a149-b278-7550-acc4-356168b0c4b5
@comp615 comp615 changed the title Reduce geometry-test histories without removing browser cases Reduce browser fixture histories and keep last message rows reachable Sep 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant