Skip to content

Speed up site testing selection and CI Production UI shards - #1686

Merged
cursor[bot] merged 20 commits into
mainfrom
cursor/site-testing-speed-08c1
Aug 9, 2026
Merged

Speed up site testing selection and CI Production UI shards#1686
cursor[bot] merged 20 commits into
mainfrom
cursor/site-testing-speed-08c1

Conversation

@BigSimmo

@BigSimmo BigSimmo commented Aug 7, 2026

Copy link
Copy Markdown
Owner

Summary

  • Document the testing-speed playbook (risk ladder, local Playwright keep-root, refuted levers) in docs/testing.md with a pointer from docs/process-hardening.md.
  • Reuse one Playwright build root across verify:phone-chrome browser stages, then clean it on exit.
  • Fail closed when verify:pr-local's selected build is refused while the Clinical KB dev server is running (BUILD_REFUSED_DEV_SERVER exit 76 + closing summary) — closes #167.
  • Switch PR Production UI from count-balanced --shard=i/3 to duration-aware explicit file groups (scripts/playwright-pr-shards.mjs) with a parity contract.
  • Trim redundant viewport matrix cells in ui-smoke / ui-tools (keep distinct layout owners).
  • Add check:playwright-browser-revision and docs for Cloud/container Chromium drift — closes #255 without forcing mismatched executables.

Verification

  • Focused Vitest: verify-phone-chrome, verify-pr-local, guard-next-build, playwright-pr-shards, check-playwright-browser-revision, test-runner-safety (67 passed)
  • npm run test:ci-workflows (222 passed)
  • node scripts/playwright-pr-shards.mjs --validate
  • npm run check:playwright-browser-revision
  • npm run check:outstanding-issues
  • npm run check:github-actions
  • npm run docs:check-scripts
  • npm run format (committed)
  • Verification not run: full npm run verify:pr-local / verify:ui — heavy path (lint+full unit+UI) not required for this gate/docs/test-infra change beyond the focused contracts above; CI Production UI will exercise the new shard runner.

Risk and rollout

  • Risk: Explicit shard groups could orphan a new production spec if the parity test is bypassed; viewport thinning could miss a layout-only bug at a dropped width.
  • Rollback: Revert this PR to restore --shard=i/N and prior viewport matrices.
  • Provider or production effects: None

Notes

  • Hard constraints kept: Playwright workers: 1, fullyParallel: false, retries: 0.
  • Measured CI wall-time improvement for the new shard split still needs a green Production UI run on this head to confirm the ≥90s largest-shard goal.
Open in Web Open in Cursor 

Summary by CodeRabbit

  • New Features

    • Added duration-aware Playwright PR test sharding across three balanced groups.
    • Added browser revision checks to detect Chromium drift before verification.
    • Improved multi-stage phone-browser testing with shared build resources and cleanup.
    • Added clearer local verification results and dedicated build-refusal reporting.
  • Documentation

    • Expanded guidance for browser readiness, testing speed, and CI verification.
    • Updated review records and script indexes.
  • Bug Fixes

    • Improved handling of browser-version mismatches and development-server build conflicts.

Document the testing-speed playbook, reuse one Playwright build root across
phone-chrome browser stages, fail closed when verify:pr-local's selected build
is refused, switch PR UI to duration-aware explicit shards with parity guards,
trim redundant viewport matrix cells, and detect Cloud Playwright browser
revision drift without forcing mismatched executables.

Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
@coderabbitai

coderabbitai Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 0ec1f0ae-a4c9-4ee6-b93c-86cf193a6508

📥 Commits

Reviewing files that changed from the base of the PR and between 6c8a359 and a5cce76.

📒 Files selected for processing (1)
  • docs/branch-review-ledger.md

📝 Walkthrough

Walkthrough

The PR adds duration-aware Playwright sharding, browser revision validation, shared phone-Chrome build roots, and fail-closed local verification reporting. CI, tests, scripts, and verification documentation use these workflows.

Changes

Verification hardening

Layer / File(s) Summary
Playwright shard execution and CI wiring
scripts/playwright-pr-shards.mjs, package.json, .github/workflows/ci.yml, tests/playwright-pr-shards.test.ts, tests/test-runner-safety.test.ts, docs/testing.md, docs/process-hardening.md, tests/ui-smoke.spec.ts, tests/ui-tools.spec.ts
Production Playwright specs use three validated groups. CI runs each group through test:e2e:pr:shard. Responsive tests retain representative viewports.
Browser revision validation
scripts/check-playwright-browser-revision.mjs, tests/check-playwright-browser-revision.test.ts, AGENTS.md, docs/codex-cloud.md, docs/testing.md
The checker compares the pinned Chromium revision with installed browser directories. Documentation defines drift handling and CI delegation.
Shared phone-Chrome build roots
scripts/verify-phone-chrome.mjs, tests/verify-phone-chrome.test.ts
Multiple browser stages share one Playwright build root and clean it after execution. Single-stage runs do not use shared-root settings.
Fail-closed local verification reporting
scripts/guard-next-build.mjs, scripts/verify-pr-local.mjs, tests/guard-next-build.test.ts, tests/verify-pr-local.test.ts
Dev-server build refusals use exit code 76. Local verification records completed, failed, and unreached checks.
Verification records and guidance
docs/branch-review-ledger.md, docs/scripts-index.md
Review-ledger entries, generated script counts, and verification guidance are updated.

Estimated code review effort: 4 (Complex) | ~45 minutes

Sequence Diagram(s)

sequenceDiagram
  participant CI
  participant PackageScripts
  participant PlaywrightPrShards
  participant Playwright
  CI->>PackageScripts: invoke test:e2e:pr:shard with shard number
  PackageScripts->>PlaywrightPrShards: resolve validated production files
  PlaywrightPrShards->>Playwright: run selected Chromium specs
Loading
sequenceDiagram
  participant CLI
  participant BrowserRevisionCheck
  participant PlaywrightCore
  participant BrowserRoot
  CLI->>BrowserRevisionCheck: request revision validation
  BrowserRevisionCheck->>PlaywrightCore: read expected Chromium revision
  BrowserRevisionCheck->>BrowserRoot: inspect installed revisions
  BrowserRevisionCheck-->>CLI: return validation status
Loading

Possibly related PRs

Suggested reviewers: cursoragent, claude

🚥 Pre-merge checks | ✅ 2 | ❌ 3

❌ Failed checks (3 warnings)

Check name Status Explanation Resolution
Linked Issues check ⚠️ Warning The PR does not implement the linked issue requirements for conditional reindex rollback [#167] or compact phone search bars [#255]. Implement the rollback guard for #167 and the compact phone search-bar behavior and layout tests for #255, or link issues that match this test-infrastructure scope.
Out of Scope Changes check ⚠️ Warning Most changes cover testing infrastructure, browser checks, documentation, and viewport cleanup that are unrelated to the linked issue requirements [#167] and [#255]. Remove unrelated testing-infrastructure changes or update the linked issues to reflect the intended testing-speed and CI-sharding scope.
Docstring Coverage ⚠️ Warning Docstring coverage is 12.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main testing-selection and CI shard changes.
Description check ✅ Passed The description includes the required summary, verification, risk, rollback, effects, and notes sections with clear verification results.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch cursor/site-testing-speed-08c1

Comment @coderabbitai help to get the list of available commands.

@supabase

supabase Bot commented Aug 7, 2026

Copy link
Copy Markdown

This pull request has been ignored for the connected project sjrfecxgysukkwxsowpy because there are no changes detected in supabase directory. You can change this behaviour in Project Integrations Settings ↗︎.


Preview Branches by Supabase.
Learn more about Supabase Branching ↗︎.

Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

CI triage

CI failed on this PR. Automated classification of the 3 failed job(s):

  • Static PR checksneeds investigation: inspect the failing step and uploaded diagnostics; rerun only after classifying the cause.
  • Lighthouse budget (advisory)needs investigation: inspect the failing step and uploaded diagnostics; rerun only after classifying the cause.
  • PR requiredneeds investigation: inspect the failing step and uploaded diagnostics; rerun only after classifying the cause.

Compared with main CI run #8920 (cancelled).

Classification is evidence routing, not permission to ignore a failure. Exact quarantined Playwright identities remain governed by the flake ledger.

cursoragent and others added 5 commits August 7, 2026 14:16
Resolve outstanding-issues conflict by keeping main #256 and archiving
#167/#255 resolutions from this PR. Add ui-forms-section-nav to explicit
Production UI shard groups and drop unused pathToFileURL import that
failed Static PR lint at --max-warnings 0.
Blank lines after #259 ended the Markdown archive table, so
check:outstanding-issues treated the PR resolutions as deleted.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
@BigSimmo

BigSimmo commented Aug 7, 2026

Copy link
Copy Markdown
Owner Author

Autopilot + Bugbot pass (PR #1686)

Final tip: 47c1d647794ca434dc205d07438cefbdcf24b195 (ledger tip). Fix head reviewed: 91bac89827ae2f4f0e59aeed7de6344fe8779a95.

Snapshot (post-push)

  • Draft: true | mergeable: MERGEABLE | merge-tree vs origin/main: clean
  • Unresolved review threads: 0
  • Bugbot subagent: unavailable (usage limit) — manual high-confidence pass done instead

Actions taken (priority order)

  1. Conflicts: Merged origin/main. Resolved docs/outstanding-issues.md by keeping main’s updated #256, archiving this PR’s #167/#255 resolutions inside the archive table (no blank-line break).
  2. Threads: none open.
  3. Failing CI (Static PR / Lint): scripts/playwright-pr-shards.mjs had unused pathToFileURL under --max-warnings 0. Removed.
  4. P1 merge follow-through: main added tests/ui-forms-section-nav.spec.ts to productionSpecPattern; added it to explicit PR UI shard groups + basename matcher (parity now 21 specs / 3 groups). Without this, the new shard runner would have orphaned the spec.

Verification

  • npx eslint scripts/playwright-pr-shards.mjs --max-warnings 0 → exit 0
  • focused Vitest (5 files) → 36 passed
  • node scripts/playwright-pr-shards.mjs --validatePR UI shard parity OK: 21 production specs across 3 groups
  • npm run check:outstanding-issues → passed
  • verify:cheap / full verify:pr-local: blocked by foreign worktree heavy lock (pr-1662-autopilot vitest holder). CI Static PR / Production UI will re-prove on this head.

Blockers / notes

  • Still draft — not marked ready; never merged.
  • GitHub may briefly show BEHIND while checks restart; tree merge was clean at push time.
  • Prefer not stacking further ledger-only tips on this PR.

No merge performed.

1 similar comment
@BigSimmo

BigSimmo commented Aug 7, 2026

Copy link
Copy Markdown
Owner Author

Autopilot + Bugbot pass (PR #1686)

Final tip: 47c1d647794ca434dc205d07438cefbdcf24b195 (ledger tip). Fix head reviewed: 91bac89827ae2f4f0e59aeed7de6344fe8779a95.

Snapshot (post-push)

  • Draft: true | mergeable: MERGEABLE | merge-tree vs origin/main: clean
  • Unresolved review threads: 0
  • Bugbot subagent: unavailable (usage limit) — manual high-confidence pass done instead

Actions taken (priority order)

  1. Conflicts: Merged origin/main. Resolved docs/outstanding-issues.md by keeping main’s updated #256, archiving this PR’s #167/#255 resolutions inside the archive table (no blank-line break).
  2. Threads: none open.
  3. Failing CI (Static PR / Lint): scripts/playwright-pr-shards.mjs had unused pathToFileURL under --max-warnings 0. Removed.
  4. P1 merge follow-through: main added tests/ui-forms-section-nav.spec.ts to productionSpecPattern; added it to explicit PR UI shard groups + basename matcher (parity now 21 specs / 3 groups). Without this, the new shard runner would have orphaned the spec.

Verification

  • npx eslint scripts/playwright-pr-shards.mjs --max-warnings 0 → exit 0
  • focused Vitest (5 files) → 36 passed
  • node scripts/playwright-pr-shards.mjs --validatePR UI shard parity OK: 21 production specs across 3 groups
  • npm run check:outstanding-issues → passed
  • verify:cheap / full verify:pr-local: blocked by foreign worktree heavy lock (pr-1662-autopilot vitest holder). CI Static PR / Production UI will re-prove on this head.

Blockers / notes

  • Still draft — not marked ready; never merged.
  • GitHub may briefly show BEHIND while checks restart; tree merge was clean at push time.
  • Prefer not stacking further ledger-only tips on this PR.

No merge performed.

@BigSimmo
BigSimmo marked this pull request as ready for review August 7, 2026 17:54
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

@BigSimmo
BigSimmo enabled auto-merge (squash) August 7, 2026 17:54
@BigSimmo
BigSimmo requested a lite review from Copilot August 7, 2026 17:54

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR refines the repository’s local/CI verification ergonomics for Playwright-heavy UI work: it makes PR Production UI sharding duration-aware (explicit spec groups with a parity contract), adds a fail-closed guard so verify:pr-local can’t appear green when a selected build refuses to run, and documents a testing-speed playbook plus Cloud/container browser drift handling.

Changes:

  • Replace CI Production UI --shard=i/N with explicit, validated shard file groups (scripts/playwright-pr-shards.mjs) and update CI wiring accordingly.
  • Ensure verify:pr-local fails closed and prints a closing summary when build is selected but refused due to a running dev server (dedicated exit code 76 / BUILD_REFUSED_DEV_SERVER).
  • Speed-focused phone-chrome improvements: reuse a single Playwright build root across multiple browser stages (then clean it), trim redundant viewport matrices, and add a fail-closed Playwright browser-revision drift check + docs.

Reviewed changes

Copilot reviewed 22 out of 22 changed files in this pull request and generated no comments.

Show a summary per file
File Description
tests/verify-pr-local.test.ts Adds unit coverage for fail-closed verify:pr-local build refusal summary/exit behavior.
tests/verify-phone-chrome.test.ts Verifies shared Playwright build-root reuse across multiple browser stages and cleanup behavior.
tests/ui-tools.spec.ts Removes a redundant tablet viewport from the tools launcher matrix (keeps representative breakpoints).
tests/ui-smoke.spec.ts Trims duplicate phone viewport cells in the dashboard smoke matrix.
tests/test-runner-safety.test.ts Updates CI contract assertions to require shard-runner usage and reject old --shard=i/3 wiring.
tests/playwright-pr-shards.test.ts Adds parity tests ensuring explicit shard groups cover every production spec exactly once and stay aligned with config intent.
tests/guard-next-build.test.ts Pins the dedicated refused-build exit code (76) to prevent “green-looking” refusals.
tests/check-playwright-browser-revision.test.ts Adds tests for the new fail-closed container Chromium revision drift check.
scripts/verify-pr-local.mjs Exports selection + adds run-summary and fail-closed execution path for selected scripts (notably build refusal).
scripts/verify-phone-chrome.mjs Adds shared build-root env wiring across multiple browser stages and ensures cleanup runs before exit.
scripts/playwright-pr-shards.mjs Introduces duration-aware explicit Production UI shard groups plus validation and CI runner entrypoint.
scripts/guard-next-build.mjs Adds distinct exit code + explicit refusal marker to make dev-server build refusals unambiguous.
scripts/check-playwright-browser-revision.mjs Adds fail-closed detection of /opt/pw-browsers revision drift vs locked Playwright expectations.
package.json Adds test:e2e:pr:shard, shard validation, and browser revision check scripts.
docs/testing.md Documents the testing-speed playbook, local Playwright keep-root, refuted levers, and drift delegation to CI.
docs/scripts-index.md Updates script counts and indexes the new scripts.
docs/process-hardening.md Adds a pointer to the testing-speed playbook and updates CI-sharding guidance to “shipped” state.
docs/outstanding-issues.md Archives resolved items (#167 and #255) with outcomes matching the new guards/docs.
docs/codex-cloud.md Documents Playwright browser readiness and drift handling in Cloud/container environments.
docs/branch-review-ledger.md Records the work/review entry for this PR branch.
AGENTS.md Adds a drift-handling note linking to the testing-speed playbook guidance.
.github/workflows/ci.yml Switches Production UI job from Playwright --shard to the explicit shard runner (test:e2e:pr:shard).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/codex-cloud.md`:
- Line 59: Correct or remove the `#255` tracking reference for the Playwright
browser-readiness work in docs/codex-cloud.md lines 59-59, AGENTS.md lines
1015-1015, and tests/check-playwright-browser-revision.test.ts lines 26-26;
ensure all three references use the same valid tracking ID or omit the ID
consistently.

In `@scripts/guard-next-build.mjs`:
- Around line 39-40: Remove or replace the incorrect (`#167`) issue reference in
the comments and test descriptions for DEV_SERVER_BUILD_REFUSED_EXIT_CODE, the
verify-pr-local summary, and the related guard-next-build and verify-pr-local
tests. Apply the correction in scripts/guard-next-build.mjs lines 39-40,
scripts/verify-pr-local.mjs lines 112-117, tests/guard-next-build.test.ts lines
29-32, and tests/verify-pr-local.test.ts lines 67-85; no behavioral changes are
needed.

In `@tests/check-playwright-browser-revision.test.ts`:
- Line 20: Update the two playwrightBrowserRevisionCheck fixtures in
tests/check-playwright-browser-revision.test.ts at lines 20 and 39-42 to include
NODE_ENV: "test" in their env objects while preserving all existing PLAYWRIGHT_*
variables. Leave the runPhoneChromeStages fixtures in
tests/verify-phone-chrome.test.ts at lines 162 and 192 unchanged.

In `@tests/playwright-pr-shards.test.ts`:
- Around line 31-36: Update the shard iteration in the test around
filesForPrUiShard so shard is inferred as the literal union 1 | 2 | 3 rather
than number, allowing type-safe indexing into prUiShardGroups while preserving
the existing assertions.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 2952c10f-75ce-4e99-b67f-acb4aa3d0266

📥 Commits

Reviewing files that changed from the base of the PR and between ee6cc28 and 47c1d64.

📒 Files selected for processing (22)
  • .github/workflows/ci.yml
  • AGENTS.md
  • docs/branch-review-ledger.md
  • docs/codex-cloud.md
  • docs/outstanding-issues.md
  • docs/process-hardening.md
  • docs/scripts-index.md
  • docs/testing.md
  • package.json
  • scripts/check-playwright-browser-revision.mjs
  • scripts/guard-next-build.mjs
  • scripts/playwright-pr-shards.mjs
  • scripts/verify-phone-chrome.mjs
  • scripts/verify-pr-local.mjs
  • tests/check-playwright-browser-revision.test.ts
  • tests/guard-next-build.test.ts
  • tests/playwright-pr-shards.test.ts
  • tests/test-runner-safety.test.ts
  • tests/ui-smoke.spec.ts
  • tests/ui-tools.spec.ts
  • tests/verify-phone-chrome.test.ts
  • tests/verify-pr-local.test.ts

Comment thread docs/codex-cloud.md
Comment thread scripts/guard-next-build.mjs
Comment thread tests/check-playwright-browser-revision.test.ts Outdated
Comment thread tests/playwright-pr-shards.test.ts
Resolved docs/outstanding-issues.md conflict by keeping both sides'
resolutions (#167, #247, #255 resolved; both removed from the open
queue) and taking main's newer #253 text (reflects #247's resolution).

Fixed TS errors surfaced by the merged main tsconfig: NODE_ENV missing
from partial env objects in check-playwright-browser-revision.test.ts
and verify-phone-chrome.test.ts, and a non-const shard array losing
its literal type in playwright-pr-shards.test.ts.
@BigSimmo

BigSimmo commented Aug 8, 2026

Copy link
Copy Markdown
Owner Author

@cursoragent Work the current open PR end-to-end. Confirm the PR number and GitHub head first from context. If more than one open PR could apply, stop and say which one you would use and why.

Fetch and start from the remote tip that matches that GitHub head. If the named branch ref is missing or stale, use the PR head ref. Preserve unrelated local WIP, including any local-only ledger commits; do not discard dirty work, and do not treat a local-ahead commit as the reviewed tip. Do not merge the PR, force-push, rebase, or arm auto-merge unless I explicitly ask. No provider-backed gates without separate approval. If you cannot push or resolve threads, diagnose and comment only; if inline replies fail, resolve when possible and put dispositions in the summary comment. If auto-merge is already armed, push only for a real blocker, and avoid pushes that would cancel in-flight required CI unless the push itself clears that blocker.

If the PR is already merged or closed: confirm the head and merge commit, note required-CI outcome, post one summary, and stop.

Goal: deep review plus Bugbot, fix actionable issues with the smallest correct changes, clear merge / required-CI / thread blockers, run strong local offline verification, push fixes, append the review ledger, and post one PR summary. Prefer thoroughness over speed. Regenerate large assets only when a fix requires it; then run the asset check and keep compatibility aliases byte-identical where the repo uses them.

Snapshot the GitHub head SHA: tip, base, behind/ahead, mergeable state, merge-tree versus origin/main (real conflict versus behind-but-clean), required checks on that tip including Production UI when selected, advisory separately, unresolved actionable threads. Missing checks while dirty are not green. If the tip moves mid-work, re-snapshot and continue from the new head.

Ledger-lookup against that GitHub head under the heavy review-and-fix scope for this PR. Already reviewed at this head with clean merge-tree, green required checks, and no new actionable threads → summarize, comment, stop unless I asked for a fresh superseding pass. Follow the repo review protocol.

Unblock once: real conflict → merge origin/main (prefer main’s shared queues; keep this PR’s notes); behind-but-clean → one sync, late if required CI is in flight; clean → leave. Labels like skip-branch-sync do not block a manual sync needed to clear a real blocker. No sync thrash. After any sync or push, re-snapshot tip, merge-tree, and required checks before declaring done. Dedupe the ledger if a merge touched it.

Review high-confidence delta risks only. Separate PR-introduced defects from pre-existing re-emitted debt. For generated assets, review contracts, aliases, cache, and manifests—not every generated line. If protected RAG or ranking surfaces are touched, say so before editing; fix PR-body policy text only when wrong or missing. Ignore bot noise. No nit spam or broad rewrites. Escalate verification by touched risk: clinical / RAG / privacy / migrations / auth → domain check plus production-readiness when warranted; UI / phone-chrome / routing / styling → ensure plus phone-chrome or UI gates when warranted; generated assets or docs inventory/links → asset or docs checks when warranted.

Fix P0/P1 always; clear scoped P2 when locally provable; else disposition and resolve. Required-check failures on this tip only; ignore advisory. Prefer reverting a bad autofix commit. After fixes: format and commit before push; smallest targeted proof; repo cheap gate; repo PR-local gate. No release, lighthouse, live eval, or live provider gates without approval.

Push only this PR’s fix commits. Append ledger for the final GitHub head under the heavy scope. Never push a ledger-only tip—include ledger in a real fix push, or leave a no-change ledger append local and unpushed.

One PR comment: tip, sync/merge-tree, fixed versus dispositioned, threads, required CI, decisive local gate lines, residual risks; merge left to me. Inline only for remaining human-needed P0/P1.

Stop when merge-tree is clean on the current GitHub tip, actionable threads are clear, required checks are green or clearly in progress, heavy gates for scope passed, summary posted, merge left to me.

@cursor

cursor Bot commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

PR #1686 — review-and-fix complete

PR: #1686
GitHub head: 5fa8d4609c495c9cb75ef83b61b7979dc2aead52
Branch: cursor/site-testing-speed-08c1 (+9 / −2 vs origin/main)

Snapshot

Item Status
Merge-tree vs origin/main Clean (a9428f8…)
Mergeable MERGEABLE (draft)
Required CI All green (Static PR, Build, Production UI 1–3, PR required)
Advisory CI Lighthouse budget failed (ignored per scope)
Actionable threads 0

No sync was needed — tree merge is clean. Main is 2 commits ahead (#1716 Lighthouse pin); optional re-sync before merge, not a blocker.

Review outcome

No code push — the head is already in good shape from prior autopilot work (lint fix, main sync, ui-forms-section-nav shard parity, as const typecheck fix).

CodeRabbit dispositions:

  • #255 / #167 refs — correct in this repo (browser revision drift / build-refusal exit 76)
  • TS7053 shard index — already fixed ([1, 2, 3] as const)
  • NODE_ENV test fixtures — no change; typecheck passes

Local verification (decisive lines)

Test Files  6 passed (6) | Tests  67 passed (67)
PR UI shard parity OK: 21 production specs across 3 groups
Test Files  523 passed (523) | Tests  5547 passed | 4 skipped (5551)
verify:pr-local → failed: (none) | not reached: (none)

Ledger & comment

  • Ledger row appended locally only (uncommitted — no ledger-only push)
  • Summary posted on the PR

Merge is yours. Mark ready when you want it out of draft. Optional: sync origin/main for the 2 new commits before merge.

Open in Web Open in Cursor 

@cursor

cursor Bot commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

Cursor review-and-fix pass (PR #1686)

GitHub head: 5fa8d4609c495c9cb75ef83b61b7979dc2aead52
Base: main | Ahead/behind: +9 / −2 (merge-tree vs origin/main still clean at this head)
Mergeable: MERGEABLE | Draft: yes
Unresolved actionable threads: 0

Sync / merge-tree

No sync performed this pass. git merge-tree --write-tree origin/main HEAD → clean tree (a9428f8…). Main advanced by 2 commits since the last merge (4a9d81d Lighthouse pin #1716); not a content conflict on this head. Re-sync only if you want the latest main before merge.

Fixed vs dispositioned

No code push — head already green on required CI; prior commits addressed lint, main sync, ui-forms-section-nav shard parity, and typecheck (as const shard loop).

Finding Disposition
CodeRabbit: wrong #255 / #167 issue refs No change — in this repo #255 = Playwright browser revision drift, #167 = verify:pr-local build-refusal exit 76; both archived in docs/outstanding-issues.md
CodeRabbit: TS7053 prUiShardGroups[shard] Already fixed at ee585632 ([1, 2, 3] as const)
CodeRabbit: NODE_ENV in test env fixtures No changetypecheck passes; fixtures use plain objects accepted by untyped .mjs options
Lighthouse budget (advisory) Ignored per scope — required aggregate green; advisory failure is evidence-incomplete noise unrelated to this diff

Required CI (tip 5fa8d460)

All required checks green, including Static PR, Build, Production UI (1–3), Production UI critical, and PR required.
Only failure: Lighthouse budget (advisory) — not a merge blocker.

Local verification (this pass)

npx vitest run …6 files… → Test Files 6 passed (6) | Tests 67 passed (67)
node scripts/playwright-pr-shards.mjs --validate → PR UI shard parity OK: 21 production specs across 3 groups
npm run verify:cheap → Test Files 523 passed (523) | Tests 5547 passed | 4 skipped (5551)
npm run verify:pr-local → completed: … lint, typecheck, test, build, check:rag:fixtures … | failed: (none) | not reached: (none)
npm run typecheck → exit 0

Residual risks

  • Explicit shard groups can orphan a new production spec if productionSpecPattern / prUiShardGroups drift — parity test + --validate guard this.
  • Viewport matrix thinning in ui-smoke / ui-tools may miss layout-only bugs at dropped widths.
  • Wall-time improvement from duration-aware shards still needs a measured Production UI run comparison (goal ≥90s largest-shard reduction).

Ledger

Appended locally for head 5fa8d460 under scope PR #1686 heavy review-and-fix… (not pushed — no code delta this pass).

Merge left to you. Mark ready when satisfied.

Resolve docs/outstanding-issues.md conflicts:
- Keep #255 archived (resolved by this PR) out of the recommended queue
- Add main's #276 queue row and #263 archive row alongside PR resolutions

Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
@BigSimmo
BigSimmo marked this pull request as draft August 8, 2026 15:37
auto-merge was automatically disabled August 8, 2026 15:37

Pull request was converted to draft

Resolve docs conflicts: union recommended queue (#256/#257, drop
resolved #255/#276), keep PR scripts-index entries, ledger auto-merged.
Main added tests/ui-phone-scroll-document-rail.spec.ts as a production
e2e:pr spec; the explicit shard inventory in playwright-pr-shards.mjs
did not list it, so tests/playwright-pr-shards.test.ts failed on orphans.
cursor Bot pushed a commit that referenced this pull request Aug 8, 2026
BigSimmo added a commit that referenced this pull request Aug 8, 2026
* docs(ledger): record Run PR sweep outcomes for open PRs

Append one superseding Run PR sweep row per PR touched in this pass
(conflict syncs, CI fixes, and review-thread code fixes).

* docs(ledger): supersede Run PR rows for #1648 and #1686 post-merge CI fixes

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
@cursor
cursor Bot marked this pull request as ready for review August 8, 2026 23:35
@cursor
cursor Bot enabled auto-merge (squash) August 8, 2026 23:35
Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
Comment thread scripts/check-playwright-browser-revision.mjs Outdated
Comment thread scripts/verify-phone-chrome.mjs
cursoragent and others added 3 commits August 8, 2026 23:53
Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
Return a structured error when browsers.json is malformed, and pass an
explicit projectRoot into shared Playwright build-root cleanup so cwd
cannot leave temp dirs behind.

Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
docs/testing.md (2)

34-34: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Document the required verification timing.

The PR ready row can imply that formatting and verification are required only at final handoff. State that npm run format must run before every push, with the whole-tree result committed. Keep verify:pr-local as the final handoff gate when it covers the change.

As per coding guidelines, run npm run format before every push, commit the formatting result, and run npm run verify:pr-local or the smallest covering gate.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/testing.md` at line 34, Update the “PR ready” row in the testing
documentation to state that npm run format must be run before every push and its
whole-tree result committed. Retain npm run verify:pr-local as the final handoff
gate when it covers the change, or identify the smallest covering gate.

Source: Coding guidelines


191-195: 🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win

Require an exact chromeVersion match in the refresh checklist.

Lighthouse stores the complete hostUserAgent, but the refresh check only requires one distinct non-empty value. A different full browser identity can pass the checklist and fail the next budget comparison, even with the same Chrome major.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/testing.md` around lines 191 - 195, Update the refresh checklist around
the “one distinct chromeVersion” requirement to require an exact match against
the pinned HeadlessChrome/<major> value, not merely one non-empty or same-major
value. Clarify that the complete stored browser identity must match the expected
pinned value before the refreshed baseline is considered usable.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/branch-review-ledger.md`:
- Line 716: Update the 2026-08-07 verification entry in the branch review ledger
to replace the bare “build” gate with the decisive successful build output line
emitted by the build command. Preserve the other verification results and do not
report only a gate name or exit code.
- Line 716: Move the 2026-08-07 ledger record for
claude/search-bar-mobile-layout-buu0io from its current location to the end of
docs/branch-review-ledger.md, preserving every existing row unchanged. Use npm
run ledger:append for the new review entry or --supersede if correcting an
existing record, and restore append-only ordering.

---

Outside diff comments:
In `@docs/testing.md`:
- Line 34: Update the “PR ready” row in the testing documentation to state that
npm run format must be run before every push and its whole-tree result
committed. Retain npm run verify:pr-local as the final handoff gate when it
covers the change, or identify the smallest covering gate.
- Around line 191-195: Update the refresh checklist around the “one distinct
chromeVersion” requirement to require an exact match against the pinned
HeadlessChrome/<major> value, not merely one non-empty or same-major value.
Clarify that the complete stored browser identity must match the expected pinned
value before the refreshed baseline is considered usable.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: e7a14e33-9d81-4489-8ae8-d35be80d628b

📥 Commits

Reviewing files that changed from the base of the PR and between 47c1d64 and 6c8a359.

📒 Files selected for processing (16)
  • .github/workflows/ci.yml
  • AGENTS.md
  • docs/branch-review-ledger.md
  • docs/codex-cloud.md
  • docs/process-hardening.md
  • docs/scripts-index.md
  • docs/testing.md
  • package.json
  • scripts/check-playwright-browser-revision.mjs
  • scripts/playwright-pr-shards.mjs
  • scripts/verify-phone-chrome.mjs
  • tests/check-playwright-browser-revision.test.ts
  • tests/playwright-pr-shards.test.ts
  • tests/ui-smoke.spec.ts
  • tests/ui-tools.spec.ts
  • tests/verify-phone-chrome.test.ts
🚧 Files skipped from review as they are similar to previous changes (14)
  • docs/codex-cloud.md
  • tests/ui-smoke.spec.ts
  • tests/verify-phone-chrome.test.ts
  • docs/scripts-index.md
  • tests/ui-tools.spec.ts
  • package.json
  • tests/playwright-pr-shards.test.ts
  • tests/check-playwright-browser-revision.test.ts
  • .github/workflows/ci.yml
  • scripts/check-playwright-browser-revision.mjs
  • AGENTS.md
  • docs/process-hardening.md
  • scripts/playwright-pr-shards.mjs
  • scripts/verify-phone-chrome.mjs

Comment thread docs/branch-review-ledger.md
@cursor
cursor Bot merged commit 2c293dc into main Aug 9, 2026
29 checks passed
@cursor
cursor Bot deleted the cursor/site-testing-speed-08c1 branch August 9, 2026 00:33
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.

4 participants