Conversation
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
marked this pull request as ready for review
September 16, 2026 20:59
This was referenced Sep 16, 2026
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
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.
🤖 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:
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.