Skip to content

ci: report visual baseline drift without failing advisory checks - #1791

Merged
cursor[bot] merged 7 commits into
mainfrom
codex/visual-baseline-advisory-pr
Aug 10, 2026
Merged

ci: report visual baseline drift without failing advisory checks#1791
cursor[bot] merged 7 commits into
mainfrom
codex/visual-baseline-advisory-pr

Conversation

@BigSimmo

@BigSimmo BigSimmo commented Aug 9, 2026

Copy link
Copy Markdown
Owner

Summary

  • Keep Chromium visual-baseline pixel drift advisory at the comparison-step level, so expected stale-golden differences produce a warning rather than a failed GitHub check.
  • Preserve the post-land/manual-only routing introduced by PR ci(visual): stop running the visual baseline job on pull requests #1755 and keep the job outside PR required.
  • Continue uploading expected, actual, and diff images, and add a workflow summary with the review path.
  • Add a CI contract test and update the visual-testing documentation.

Why

PR #1743 demonstrated that job-level continue-on-error still left the visual-baseline job displayed as failed when a screenshot contract intentionally changed. The comparison should remain visible and reviewable without looking like a merge veto. Setup and artifact-publication failures still fail because they produce no trustworthy evidence.

Files

  • .github/workflows/ci.yml
  • tests/ci-cache-safety.test.ts
  • docs/testing.md
  • tests/__screenshots__/README.md

Verification

  • npm run test:ci-workflows — 13 test files passed; 251 tests passed; 11 skipped.
  • npm run check:github-actions — GitHub Actions pin check passed.
  • npm run format — completed before commit; the four-file diff was unchanged.
  • git diff --check — passed.
  • npm run verify:pr-local

Verification not run: verify:pr-local was not run because this is a bounded workflow/documentation contract change and the focused CI workflow suite covers the plausible regression paths.

UI verification not run: rendered UI and browser behavior are unchanged; Linux visual comparison remains a hosted post-land/manual workflow.

Risk and rollout

  • Risk: Low. Pixel regressions become warnings rather than failed advisory checks; required interaction, accessibility, style-contract, and production UI checks remain unchanged.
  • Rollback: Revert commit 4e2d26e42.
  • Provider or production effects: GitHub Actions reporting behavior only. No deployment, credentials, production data, Supabase, or application runtime effects.

Notes

  • Infrastructure, setup, and artifact-upload failures remain visible as job failures because those runs provide no trustworthy comparison evidence.

Summary by CodeRabbit

  • Bug Fixes

    • Visual baseline differences now generate warnings instead of failing checks.
    • Expected, actual, and difference images remain available as downloadable artifacts.
    • Setup and artifact-upload failures continue to fail the job.
  • Documentation

    • Updated visual testing guidance to explain warning behavior, artifacts, summaries, and scheduled or manual runs.

Report Chromium pixel differences as warnings while preserving review artifacts. Keep infrastructure and artifact failures visible. Verified with npm run test:ci-workflows and npm run check:github-actions.
@coderabbitai

coderabbitai Bot commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Warning

Review limit reached

You’ve reached a temporary PR review limit under our Fair Usage Limits Policy.

Your recent review volume is higher than typical usage, so adaptive limits are currently applied.

Next review available in: 7 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 @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

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 configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 3b40aa18-df49-437d-b27c-c62a18c12f91

📥 Commits

Reviewing files that changed from the base of the PR and between cad1681 and cbb74f0.

📒 Files selected for processing (9)
  • .github/workflows/ci.yml
  • docs/branch-review-ledger.md
  • docs/scripts-index.md
  • docs/testing.md
  • scripts/classify-visual-baseline-outcome.mjs
  • tests/__screenshots__/README.md
  • tests/ci-cache-safety.test.ts
  • tests/classify-visual-baseline-outcome.test.ts
  • tests/ui-formulation.spec.ts
📝 Walkthrough

Walkthrough

The visual-baseline workflow now treats pixel drift as advisory. It reports warnings, writes review instructions, and retains visual artifacts. Documentation and CI tests describe and verify this behavior.

Changes

Visual-baseline reporting

Layer / File(s) Summary
Advisory comparison workflow
.github/workflows/ci.yml
The visual comparison step continues after failure and exposes its outcome. A follow-up step reports warnings and links reviewers to the visual-baseline artifact and diff images.
Documentation and validation
docs/testing.md, tests/__screenshots__/README.md, tests/ci-cache-safety.test.ts
Documentation describes advisory comparison failures and job-failing setup or artifact-upload failures. Tests verify the warning, step summary, and visual-diff artifact behavior.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Possibly related PRs

  • BigSimmo/Database#1755: Both changes update visual-baseline CI behavior to report drift without blocking checks.

Suggested reviewers: claude

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title clearly and concisely describes the main change: visual baseline drift is reported without failing advisory checks.
Description check ✅ Passed The description includes the summary, rationale, verification results with reasons for skipped checks, risk, rollback, effects, and notes.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/visual-baseline-advisory-pr

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

@supabase

supabase Bot commented Aug 9, 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 ↗︎.

@BigSimmo
BigSimmo marked this pull request as ready for review August 10, 2026 09:47

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: cad1681a2c

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread .github/workflows/ci.yml
@BigSimmo

Copy link
Copy Markdown
Owner Author

@codex resolve actionable Codex review findings for this pull request and current head using the repository instructions. This is the pull request's single automatic repair pass: do not perform a fresh review, create new standalone findings, or request another review. Work only the existing unresolved Codex threads on the current head. The only repository destination is BigSimmo/Database, and the only branch destination is the pull request head branch codex/visual-baseline-advisory-pr at starting commit cad1681; never publish fixes to a detached or synthetic work branch and never create a stacked pull request. Use the authenticated GitHub connector to commit each approved fix to BigSimmo/Database:codex/visual-baseline-advisory-pr, then verify that the pull request head contains the published commit before reporting success. Always fix P0 and P1 findings. For P2 and lower findings, fix only clear, scoped, low-risk issues; otherwise disposition them with a concise reason. For a fixed thread, reply with as the first line and as the second line. For a no-code disposition, use followed by . These result markers authorize the workflow to close that exact thread only after it verifies a fixed commit is the pull request head; a local-only commit is not a fix. If publication or verification fails, do not use either result marker, do not claim success, and leave the thread open with the blocker. If human input or new authorization is required, do the same. Finish only after every actionable thread is fixed or dispositioned and closed, or explicitly left open for a human decision. Do not update the branch from main, address unrelated reviews, broaden scope, or create more than one scoped fix commit. Do not use external APIs, paid services, credentials, dependency changes, or broad refactors unless explicitly authorized. Add targeted tests where behavior changes and run the narrowest relevant validation.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. 🚀

Reviewed commit: cad1681a2c

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@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

🤖 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 @.github/workflows/ci.yml:
- Around line 703-708: Remove continue-on-error from the visual-baseline job
configuration while retaining it on the visual-comparison step. Ensure setup,
reporting, and artifact publication failures cause the job to fail, with only
the npm run test:e2e:visual step allowed to continue after visual drift.
- Around line 703-708: Update the visual-comparison step around “npm run
test:e2e:visual” to distinguish pixel-drift results from missing baselines,
assertions, runtime/setup errors, and artifact-upload failures before allowing
continuation. Continue successfully only for the drift-only outcome, while
propagating all other failures so the job remains failed. Update the visual
reporting condition to label only the drift outcome as “Visual baseline drift,”
not every failed visual command.
🪄 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: 62560473-7403-4974-bb37-d5fad2a3ed49

📥 Commits

Reviewing files that changed from the base of the PR and between d812c76 and cad1681.

📒 Files selected for processing (4)
  • .github/workflows/ci.yml
  • docs/testing.md
  • tests/__screenshots__/README.md
  • tests/ci-cache-safety.test.ts

Comment thread .github/workflows/ci.yml
@github-actions

github-actions Bot commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

CI triage

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

  • Production UI criticalneeds 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 #9571 (cancelled).

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

Keep pixel mismatches advisory while failing the visual-baseline job on
missing baselines, setup/runtime, or other non-comparison errors. Wait for
the Clear layout settle in ui-formulation so Production UI shard 2 does not
lose the Draft step click.
@cursor

cursor Bot commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

Babysit summary (merging)

@cursor
cursor Bot merged commit f7a494b into main Aug 10, 2026
26 checks passed
@cursor
cursor Bot deleted the codex/visual-baseline-advisory-pr branch August 10, 2026 11:21
cursor Bot pushed a commit that referenced this pull request Aug 10, 2026
Sync past #1791 so GitHub mergeability is current; merge-tree was already clean.
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.

2 participants