ci: reuse isolated Playwright Next build cache - #1468
Conversation
Warning Review limit reachedYou’ve reached a temporary PR review limit under our Fair Usage Limits Policy. Next review available in:51 minutes Your organization has reached its usage spending cap. Adjust your spending cap in the billing tab. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (12)
Comment |
BigSimmo
commented
Jul 30, 2026
Closing as superseded by the measured disposition in #1467. This PR implements the exact cache shape that was benchmarked end to end: the warm build saved 34 seconds (97s to 63s) while producing an 804 MB cache. Persisting that per build-input/SHA family would consume the repository's 10 GB cache budget and risk evicting the more valuable Playwright browser cache. The runner-isolation idea is technically sound, but the measured storage/time trade-off is negative; no cache wiring should merge unless a later benchmark materially changes it. |
BigSimmo
commented
Jul 31, 2026
@cursoragent this PR will be re-opened soon. Please resolve any failing CI, run bugbot and resolve any bugbot comments against current repo and fix any merge conflicts and also fix any errors and address and fix all comments or suggestions that are likely to improve the PR and Codebase. Please implement smallest required fix according to best code practices. Check your work. Leave this PR closed for now but still make all these changes and run the review. I want it ready to go for when I re-open it. |
PR #1468 is ready to reopen and remains closed. What’s done
Branch tip
Checks
Limits while closed
On reopenConfirm artifact upload/download time doesn’t wipe out the ~34s warm-build save across the three shards. |
Resolve conflicts in run-playwright.mjs and outstanding-issues.md while keeping the validated build-root keep opt-in. Switch CI sharing from a persistent actions/cache key to a one-day run-scoped artifact so the measured ~804 MB warm cache cannot consume the shared Actions cache budget or evict the Playwright browser cache. Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
upload-artifact v4.4+ skips dot-directories by default, so publishing `.next-playwright/.../dist/cache` was a silent no-op and every shard cold-built. Set include-hidden-files, fail if nothing is found, and use compression-level 0 for Next's already-uncompressed webpack cache. Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
Capture the merge, artifact redesign, and bugbot hidden-files fix so the branch is not re-reviewed from scratch when reopened. Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
…e-json-bundle-weight Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
This pull request has been ignored for the connected project Preview Branches by Supabase. |
BigSimmo
commented
Jul 31, 2026
@cursoragent Work this open PR (confirm number + GitHub head first). Start from Goal: review + Bugbot the tip, fix actionable issues with smallest changes,
Stop when merge-tree clean, no actionable threads left, and required checks are |
PR #1468 worked at tip Snapshot → unblock
Review + Bugbot
Push / summary
Required CI on tipIn progress: Static PR queued, Safety queued, Production UI critical running. Leave merge to you once green. Residual: hosted proof that artifact transfer doesn’t wipe the ~34s warm-build save. |
…e-json-bundle-weight Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
Publish is an optimization for shard warm builds. Keep if-no-files-found error for visibility, but continue-on-error so a publish miss cannot turn green @critical journeys into a red Production UI critical job. Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
…e-json-bundle-weight Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
PR #1468 review+bugbot+fix summaryTip: Threads: none unresolved (Codex/Bugbot/Copilot/human). Fixed
Dispositioned
Checks
Also: Could not edit the truncated PR body with this token — please refresh it to the run-scoped artifact description before merge if still outdated. |
CI triageCI failed on this PR. Automated classification of the 2 failed job(s):
Compared with main CI run #7532 (cancelled). Classification is evidence routing, not permission to ignore a failure. Exact quarantined Playwright identities remain governed by the flake ledger. |
BigSimmo
commented
Jul 31, 2026
@cursoragent Work this open PR end-to-end (confirm PR number + GitHub head first). Goal: deep review + Bugbot the tip, fix actionable issues with smallest correct ═══════════════════════════════════════════════════════════════════════════════
═══════════════════════════════════════════════════════════════════════════════
Record:
Ledger:
Follow ═══════════════════════════════════════════════════════════════════════════════
═══════════════════════════════════════════════════════════════════════════════ B) Bugbot pass — realistic failure paths: Rules for judgment:
═══════════════════════════════════════════════════════════════════════════════
═══════════════════════════════════════════════════════════════════════════════ Baseline / always for non-trivial fixes:
Add when the delta warrants it:
Do NOT run without explicit approval:
If a gate fails: fix the dependency-related/PR-related cause with the smallest ═══════════════════════════════════════════════════════════════════════════════
═══════════════════════════════════════════════════════════════════════════════
Inline comments only for remaining open P0/P1 that still need a human decision. ═══════════════════════════════════════════════════════════════════════════════
|
PR #1468 worked end-to-end. Tip is now Snapshot → unblock
Review + Bugbot
Heavy local gates
Publish
|
…e-json-bundle-weight Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
Record the heavy pass at the post-main-sync product tip: merge-tree clean, no PR-introduced defects, Production UI Services settle left as #146 residual.
PR #1468 review+bugbot+fix+heavy summaryTip: Threads: none unresolved (Codex / Bugbot / Copilot / human). Deep review + Bugbot (delta vs main)
Fixed
Dispositioned
Local heavy gates
Required CI on this tip
Also: PR body may still mention truncated/ |
BigSimmo
commented
Jul 31, 2026
@cursoragent fix merge conflict |
Merge conflict cleared on PR #1468. GitHub’s
|
…e-json-bundle-weight
BigSimmo
commented
Jul 31, 2026
@cursoragent resolve merge conflict |
Merge conflict cleared on PR #1468. GitHub
|
…e-json-bundle-weight
BigSimmo
commented
Jul 31, 2026
@cursoragent resolve merge conflict |
Merge conflict cleared on PR #1468. GitHub
|
…e-json-bundle-weight
BigSimmo
commented
Jul 31, 2026
@cursoragent stop the failing CI and fix and prevent happening again |
Fixed the recurring Production UI (1) failure and pushed to tip Cause: Fix / prevention
Proof: Vitest 52 passed; Services e2e 1 passed. Required CI restarted on the new tip — leave merge to you. |
Production UI shard 1 kept failing the Services viewport-settle journey (#146) when a toolbar-style shrink re-showed chrome under CI load. Hold hidden while the offset stays past the hide band and upward travel is below reveal intent, re-sample on resize, and make the Playwright poll report which half of the contract failed without loosening the 0.5px anchor tolerance.
CI fix: Production UI (1) / |
Uh oh!
There was an error while loading. Please reload this page.


Motivation
#136about Playwright not being able to reuse the isolated build cache without unsafe global sharing.Description
PLAYWRIGHT_BUILD_ROOT_IDandPLAYWRIGHT_KEEP_BUILD_ROOT=trueand validate their values inscripts/run-playwright.mjs, defaulting to unique temporary roots and unconditional cleanup when not set..next-playwright/<run-id>when keep is explicitly enabled..next-playwright/ci-production/dist/cacheinui-critical-fastand the production shards and setPLAYWRIGHT_BUILD_ROOT_ID=ci-productionand `PLAYWRIGHT_KEEP_BUILD_ROOT=Codex Task