Skip to content

Right-size near-fit scrolling fixtures without changing coverage - #78

Closed
comp615 wants to merge 1 commit into
mainfrom
lean-near-fit-fixtures
Closed

comp615 wants to merge 1 commit into
mainfrom
lean-near-fit-fixtures

Conversation

@comp615

@comp615 comp615 commented Sep 16, 2026

Copy link
Copy Markdown
Collaborator

The five near-fit scrolling scenarios previously generated 640 Alpha and 80 Beta rows in each community, then truncated primary Beta. Generate one Alpha row for navigation and exactly the requested Beta count instead. The existing large-history cold/warm/reload and reading-anchor cases remain unchanged.

All browser cases and assertions stay in place. These tests require real layout and virtualization, so none move to a DOM emulator. Fresh identities, relay state and browser contexts remain test-scoped; worker build reuse is unchanged. No production, shared-fixture, dependency, timeout, retry or CI-configuration changes.

Near-fit cases are faster; whole-CI improvement is not established

Baseline: main through #68. Candidate: this change. Independent of unmerged #67.

Two pinned CI comparisons used the unchanged full workflow. GitHub's tested merge tree matches the candidate tree. All four runs used Ubuntu image 20260907.300.1, Playwright 1.60.0, Chromium 148.0.7778.96, WebKit 26.4, Node 24.18.0 and two workers per shard. Hermit, pnpm, browser and native-fixture cache keys matched and were hits; this does not eliminate hosted-runner variability.

Metric Baseline A → candidate A Baseline B → candidate B
Ten near-fit cases, summed execution 93.291s → 61.063s (−34.5%) 120.453s → 59.736s (−50.4%)
Their signed-history generation 36.625s → 0.587s 55.419s → 0.540s
Four functional steps, summed wall time 1492.225s → 1692.374s 1710.147s → 1536.709s†
First CI job start → required-gate completion 9m47s → 11m45s 11m56s → 11m02s†
Journey outcomes 394/394 → 394/394 394/394 → 393/394†

Baseline A · candidate A · baseline B · candidate B.

† Candidate B failed one Chromium navigation case; its full-run times are not a successful-suite benchmark. All ten near-fit cases passed without retries in every run. The scoped saving repeated, but the fully green comparison's total gate got slower. Baseline alone varied by 129s between identical snapshots. These samples do not establish a whole-CI improvement.

Across all four runs, all 394 test/project identities and shard allocations match. Recorded cold/warm Beta scroll heights, viewport heights and overflow states match for every near-fit case: one/three rows fit, five/seven/nine overflow. Generated history across these ten case/engine combinations falls from 14,400 signed rows to 120. No assertions were removed or moved.

Local macOS arm64 whole-file verification passed 16/16 before and after, with wall time 63.990s → 52.461s (−18.0%). Full local native/measurement scan remains deferred; hosted candidate A passed all CI lanes. No new wall-clock thresholds were added.

Draft: repeated CI exposed an unresolved navigation failure

Candidate B, Chromium shard 2 failed message-navigation.spec.mjs:148: “Execution context was destroyed” during the first fixtureNavigation.open in “loaded virtual rows reveal per attempt without thread reads or live-update focus theft.” This shard does not execute the changed file. The trace contains no second document request or app error; its screenshot shows the loaded target. That does not establish a root cause.

The full navigation file passed locally in both the exact baseline worktree and candidate (24/24 each, Chromium and WebKit). The CI failure did not reproduce locally and remains unresolved. No retry, timeout increase, assertion weakening or unrelated source change was used to hide it. Keep this draft rather than presenting the latest head as green.

🤖 Prepared with Amp for Charlie Croom.

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 commented Sep 16, 2026

Copy link
Copy Markdown
Collaborator Author

🤖 Closing in favor of the selected #81#83 fixture-sizing stack. #83 includes the near-fit sizing work as part of the broader geometry-fixture change. Keeping this branch and its timing evidence for reference.

@comp615 comp615 closed this 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