docs(issues): file the merged-PR re-fire defect in the PR mergeability check - #2242
Conversation
Queues one immutable inbox request (P2, issue) recording that the `mergeability` job in .github/workflows/pr-mergeability.yml has no filter on pull_request.state / .merged, while GitHub fires pull_request_target `edited` on merged and closed PRs. A merged PR reports mergeable_state 'unknown' permanently, which is exactly the retry branch in classifyMergeability(), so the required check fails deterministically after its five attempts. Confirmed on PR #2229: run 32489311892 job 96792972554 failed 97s after the merge, triggered by a bot description edit. The request also corrects the original report — `PR required` and `Static PR checks` did not re-fire post-merge; every ci.yml run on that branch is pre-merge and the last one was green, with the stale in-place ci-triage comment creating the appearance of a post-merge failure. No workflow file is changed here; the proposed fix is recorded in the request for a deliberate operational-risk PR. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01C4SeCeZmgbxbZ4kcKWvtVp
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:46 minutes Limit details: You’ve used the included review currently available. Your 87 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?Wait for the limit to reset, then comment An organization admin can change what happens after included review limits in Billing. 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 (1)
Comment |
Uh oh!
There was an error while loading. Please reload this page.
Summary
docs/outstanding-issues-inbox/8dfc4aaf-…json, P2, issue) recording a confirmed defect: themergeabilityjob in.github/workflows/pr-mergeability.ymlhas no filter onpull_request.state/pull_request.merged, while itspull_request_targettrigger includesedited— a type GitHub fires on merged and closed pull requests. A merged PR reportsmergeable_state: "unknown"permanently, which is exactly theretrybranch ofclassifyMergeability()inscripts/pr-mergeability.mjs, so the required check fails deterministically after its five attempts. Confirmed on PR docs(issues): reconcile 38 queued ledger requests into the canonical ledger #2229: workflow run32489311892, job96792972554, failed 97 seconds after the merge, triggered by a bot description edit.PR requiredandStatic PR checksdid not re-fire post-merge —ci.yml'spull_requesttypes do not includeedited, everyci.ymlrun onclaude/ledger-reconcile-0821bis pre-merge, and the last one (32489042816, head754cbfcb) was green three seconds before the merge. The appearance of post-merge failure came fromci-triage.ymlediting one comment in place: comment5369760686was created at 12:23:46Z and last updated at 13:44:36Z, both pre-merge, but still named those two jobs on the page after the merge..github/workflows/**is operational-risk scope and needs its own PR with a workflow contract test.No workflow file, script, or canonical ledger row is changed by this PR. The canonical
docs/outstanding-issues.mdis untouched; a serialized reconcile branch applies the request later.Verification
npm run verify:pr-local— recognised low-risk documentation scope, exit code 0 captured directly rather than through a pipe. Decisive lines:Ledger inbox check passed: 6 pending request(s), 485 applied.,Outstanding-issues guard passed: 423 rows (67 open, 356 archived), unique display and durable ids, collision-free allocation enabled, deprecated next-id marker ignored, no merge driver, no ids deleted from base 3c94d555357d., andLedger write discipline passed for 3c94d555357d..HEAD.npm run format— run before committing; whole tree reported unchanged.UI verification not run: no executable product code, route, component, style, or browser behaviour is touched.
Risk and rollout
git revertthis pull request. Request files are immutable, so the revert simply removes the pending request.src/lib/rag/, no retrieval RPC, no ranking configuration, no eval harness and no golden fixture is touched.Notes
The defect is worth a guard even though it cannot block a merge: the failing check lands on a PR that has already merged, so its only cost is investigative. That cost is real and already measured twice on 2026-08-21 — once in the clarifying comment on #2229, which drew the wrong conclusion about which checks had re-fired, and once in this investigation. The sibling job in the same workflow file,
refresh-after-base-push, already scopes itself withpulls.list({ state: "open" }), so the state filter was applied to the push path and omitted from thepull_request_targetpath rather than considered and rejected.Repo-wide frequency is unmeasured: GitHub reads were authorised only for PR #2229. It should recur on any pull request whose description a bot edits after merge.
🤖 Generated with Claude Code
https://claude.ai/code/session_01C4SeCeZmgbxbZ4kcKWvtVp
Generated by Claude Code