Summary
c576b54 ("fix(review): stop the inherited label gate deadlocking CodeRabbit auto-review", #1425) merged to main at 20:44 UTC today. It sets reviews.auto_review.labels: [] in .coderabbit.yaml, on the reasoning that setting the schema default explicitly would override the inherited required-labels list.
It does not. The gate is still active.
Evidence
#1478 was opened at 20:55 UTC — eleven minutes after the fix landed, on a base that contains it. CodeRabbit's response:
Review skipped
Auto reviews are limited based on label configuration.
Required labels (at least one) (1): ['architecture-gap', 'bug', 'ci-cd', 'ci/cd', 'copilot-rabbit', 'documentation', 'duplicate', 'enhancement', 'frontend', 'github_actions', 'good first issue', 'help wanted', 'high-priority', 'invalid', 'javascript', 'ml-model', 'needs-triage', 'pipeline-critical', 'placeholder-code', 'priority:high', 'python', 'python:uv', 'question', 'styling', 'tests', 'v0']
Configuration used: Repository YAML (base), Repository UI (inherited), Organization UI (inherited)
Run ID: 1437a307-6667-4b50-851b-45fb34a1e3e4
That is the same ~26-label list .coderabbit.yaml describes in its own comment, still being applied. The "Configuration used" line is explicit that the UI layers are still in effect.
Earlier data points are consistent but were not proof, because they predate the fix — #1439's CodeRabbit commit status read "Review skipped: excluded by label configuration" at 19:12 UTC, ~90 minutes before c576b54 merged. #1478 is the first PR opened after the fix, and it is the one that settles it.
Root cause
.coderabbit.yaml sets inheritance: true. An empty array is evidently treated as "unset" and merged with — not substituted for — the inherited value, so the org/repo UI list survives.
The file's own header already predicts this:
inheritance: true still lets the org-level config layer underneath this file — so any setting this file leaves unset can be silently overridden from the dashboard.
The fix assumed "set explicitly, even at its default" was enough to count as set. For an empty list under a merging inheritance model, it is not.
Why it matters
Proposed fix
Set inheritance: false in .coderabbit.yaml, making the committed file authoritative and stopping the UI layers from contributing the label gate at all.
This is consistent with the file's stated purpose ("Single source of truth for CodeRabbit … so every change is reviewable in a PR") and it already sets its settings explicitly rather than relying on inherited ones.
Caveat worth a human's eye before landing: inheritance: false drops all inherited configuration, not just the label gate. Someone should confirm nothing else is being relied on from the Repository UI / Organization UI layers — that is a dashboard state not visible from the repo, which is why this is filed rather than silently changed.
The alternative — clearing the required-labels list in the CodeRabbit dashboard — also works, but leaves the setting outside version control, which is what this file exists to avoid.
Acceptance criteria
Summary
c576b54("fix(review): stop the inherited label gate deadlocking CodeRabbit auto-review", #1425) merged tomainat 20:44 UTC today. It setsreviews.auto_review.labels: []in.coderabbit.yaml, on the reasoning that setting the schema default explicitly would override the inherited required-labels list.It does not. The gate is still active.
Evidence
#1478 was opened at 20:55 UTC — eleven minutes after the fix landed, on a base that contains it. CodeRabbit's response:
That is the same ~26-label list
.coderabbit.yamldescribes in its own comment, still being applied. The "Configuration used" line is explicit that the UI layers are still in effect.Earlier data points are consistent but were not proof, because they predate the fix — #1439's
CodeRabbitcommit status read "Review skipped: excluded by label configuration" at 19:12 UTC, ~90 minutes beforec576b54merged. #1478 is the first PR opened after the fix, and it is the one that settles it.Root cause
.coderabbit.yamlsetsinheritance: true. An empty array is evidently treated as "unset" and merged with — not substituted for — the inherited value, so the org/repo UI list survives.The file's own header already predicts this:
The fix assumed "set explicitly, even at its default" was enough to count as set. For an empty list under a merging inheritance model, it is not.
Why it matters
MERGE_POLICY.mdgate 3 is "an automated reviewer has been requested, and either approved or reported no actionable findings." A tool that skips for configuration reasons does satisfy gate 3 as written — so the gate passes while no review ever happens. The policy is satisfied and the repo is unreviewed at the same time.@coderabbitai review, which is the exact toil fix(review): stop the inherited label gate deadlocking CodeRabbit auto-review #1425 set out to remove.Proposed fix
Set
inheritance: falsein.coderabbit.yaml, making the committed file authoritative and stopping the UI layers from contributing the label gate at all.This is consistent with the file's stated purpose ("Single source of truth for CodeRabbit … so every change is reviewable in a PR") and it already sets its settings explicitly rather than relying on inherited ones.
Caveat worth a human's eye before landing:
inheritance: falsedrops all inherited configuration, not just the label gate. Someone should confirm nothing else is being relied on from the Repository UI / Organization UI layers — that is a dashboard state not visible from the repo, which is why this is filed rather than silently changed.The alternative — clearing the required-labels list in the CodeRabbit dashboard — also works, but leaves the setting outside version control, which is what this file exists to avoid.
Acceptance criteria
.coderabbit.yamlor confirmed unnecessary..coderabbit.yaml's comment — thatlabels: []overrides the inherited gate — is corrected, so the next reader does not re-derive the same wrong conclusion.