docs(issues): capture the unreproduced forms UI failure and the sync-loop CI gap - #2165
Conversation
…loop CI gap Two loose ends from the PR #2149 session, recorded as inbox requests so they survive the session rather than being re-derived later. 1. tests/ui-forms-section-nav.spec.ts failed once on #2149 and was never reproduced — both the job re-run and the following cycle were cancelled, and the PR merged with the question open. Not attributable to that PR (DSM-only, zero forms files) and not a known flake. Records why CI can hide it: UI jobs are path-scoped, so a docs-only push to main skips Production UI entirely, which is what the triage bot's "main is green" comparison actually measured. 2. #145 is recorded resolved on the strength of a guard inside the operator sync helper, but a plain merge-main push and GitHub's Update branch button bypass it. #2149 took nine merge-main heads in 3.5 hours and lost eight CI cycles to cancellation, including the one run that would have settled (1). Notes that #95 behaved correctly throughout and that cancel-in-progress must not be disabled for pull requests. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015ZQ87bTZSjifuat4Pwf7rZ
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
This pull request has been ignored for the connected project Preview Branches by Supabase. |
Warning Review limit reachedYou’ve reached a temporary PR review limit under our Fair Usage Limits Policy. Next review available in:17 minutes Limit details: You’ve used the included review currently available. Your 102 included PR review attempts over the past 7 days set your current allowance at 1 review per hour. 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 within each organization. For paid Pro and Pro+ reviews, CodeRabbit uses a developer's included PR review attempts over the past 7 days to set the current hourly allowance. At typical activity levels, the full plan allowance applies. Higher sustained activity can lower the allowance until earlier attempts leave the 7-day 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 (2)
Comment |
Uh oh!
There was an error while loading. Please reload this page.
Summary
Two loose ends from the PR #2149 session, recorded as
/issuesinbox requests so they survive the session instead of being re-derived later. Docs-only: two new files underdocs/outstanding-issues-inbox/, no source, config, or canonical-ledger changes.tests/ui-forms-section-nav.spec.tsfailed once on fix(dsm): stop the diagnosis page stating its criteria twice #2149 and was never reproduced. Production UI shard 3 reported166 passed / 1 failedon "expands information previews into one continuous answer": after clicking the trigger, the preview text should leave the trigger and appear in the panel, and it stayed in the trigger. Not a timing race — the locator polled 24 times across the full 10s timeout and resolved to 1 element every time, so it was a stable wrong state. Not attributable to fix(dsm): stop the diagnosis page stating its criteria twice #2149, which changed exactlydsm-diagnosis-page.tsxand one ledger record, zero forms files, against behaviour owned bysrc/components/forms/form-detail-page.tsx. Not intests/flake-ledger.json. The job's re-run and the following cycle were both cancelled, so fix(dsm): stop the diagnosis page stating its criteria twice #2149 merged with the question open.The record also captures why CI can hide this. UI jobs are path-scoped, so a docs-only push to
mainskipsProduction UIentirely — verified in main run32183858120, whereProduction UI,Production UI critical,BuildandLighthouse budgetall reportconclusion: skipped. The CI-triage bot nevertheless cited that run as "Compared with main CI run #12334 (success)", which is an aggregate comparison that never exercised the test and should not be read as a green baseline.#145is recorded RESOLVED, but its guard does not cover the path actually used. That row closed on the basis that the operator sync helper skipsupdate-branchwhile required CI is in flight. A plaingit merge origin/main+ push, and GitHub's Update branch button, bypass it. fix(dsm): stop the diagnosis page stating its criteria twice #2149 took nine merge-main heads in 3.5 hours; the aggregate went red eight times asCANCELLED with no failing joband never once for a genuine failure of the diff. The cancellations widened as the interval tightened, ending with a cycle that lost all ten jobs includingchangesitself, whose*_CHANGEDoutputs were empty because scope detection never completed. Its real cost was the loss of the one genuine signal above.Each record notes what must not be done: no quarantine on a single observation and no weakening of the assertion for the first; and for the second, no disabling
cancel-in-progressfor pull requests, which is deliberate, pinned bytests/ci-cache-safety.test.ts, and whose base-branch exemption exists for a separate reason.#095is explicitly credited as having behaved correctly throughout — it distinguished cancellation from failure and correctly stayed red, since a cancelled job verifies nothing.Both are new:
docs/outstanding-issues.mdhas no row mentioning this spec, and the sync finding is a gap against a closed row rather than a duplicate of the open churn item#CCZ4HB, which concerns the review-bot budget.Verification
npm run verify:pr-localVerification not run: npm run verify:pr-local— this adds two JSON files underdocs/outstanding-issues-inbox/and touches no executable path, so the applicable ledger gates were run directly instead:npm run check:ledger-write-discipline→Ledger write discipline passed for b400b138f8c1..HEAD.(first run correctly refused while the requests were untracked, since it compares committed refs; re-run after committing)npm run check:outstanding-issues→Outstanding-issues guard passed: 378 rows (44 open, 334 archived), unique display and durable ids, collision-free allocation enabled, deprecated next-id marker ignored, no merge driver, no ids deleted from base b400b138f8c1.Inbox integrity →
Ledger inbox check passed: 23 pending request(s), 370 applied.npm run format→ no changes to the new files.npm run verify:uiwhen UI, routing, styling, browser behavior, reduced-motion, or forced-colors behavior changedUI verification not run: docs-only change, no UI surface touched.Risk and rollout
docs/outstanding-issues.mdis untouched and is only edited later bynpm run issues:reconcile.git revertthe single commit, or drop the two files.Notes
Follow-up work after #2149 merged, so this is a fresh branch restarted from
mainrather than new commits on merged history. Runnpm run issues:reconcilefrom a serialized ledger branch after this lands to apply both requests to the canonical ledger.Generated by Claude Code