From 711f49abb292d200ce5c566389f2783e9f97125d Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 7 Aug 2026 18:03:21 +0000 Subject: [PATCH] fix(review): stop the inherited label gate deadlocking CodeRabbit auto-review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `reviews.auto_review.labels` is now set explicitly to `[]` — the schema default — to override a required-labels list inherited from the dashboard / org config. The inherited gate demanded at least one of ~26 labels before a review would start. Four of those (`architecture-gap`, `ci-cd`, `pipeline-critical`, `placeholder-code`) are labels CodeRabbit applies itself, as part of a review, via `auto_apply_labels: true`. A PR opens unlabelled, so the gate skipped it, and nothing then applied a label to un-skip it. Labelling after the fact does not retro-trigger. Observed on both currently-open non-draft PRs: the `CodeRabbit` commit status reads "Review skipped: excluded by label configuration" on #1381 (head 8628b5e) and #1410 (head 3f72b75). Every review this repo has had was requested by hand with `@coderabbitai full review`. The file's header claimed to be the single source of truth for settings that used to live only in the dashboard, but this gate was not in it — and with `inheritance: true`, anything left unset can be overridden from there. Header now says so, and recommends setting values explicitly even at their default. No other setting changed; `drafts: false` still keeps draft PRs out. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_016mDBbUAmEHFXrYboYd9TzR --- .coderabbit.yaml | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/.coderabbit.yaml b/.coderabbit.yaml index 099b87bfa..78e263ab8 100644 --- a/.coderabbit.yaml +++ b/.coderabbit.yaml @@ -2,9 +2,12 @@ # # Single source of truth for CodeRabbit. Settings that previously lived only in # the CodeRabbit dashboard (inheritance, auto_assign_reviewers, finishing -# touches, knowledge base, issue enrichment, presidio) are version-controlled -# here so every change is reviewable in a PR. `inheritance: true` still lets the -# org-level config layer underneath this file. +# touches, knowledge base, issue enrichment, presidio, auto-review label +# gating) are version-controlled here so every change is reviewable in a PR. +# `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. Prefer setting a value explicitly, even at its default, when +# the default is the behaviour you actually want. language: en-US tone_instructions: >- Be assertive and direct. Focus on real bugs, security issues, and performance @@ -26,6 +29,20 @@ reviews: drafts: false base_branches: - main + # No label gate. This is the schema default, set explicitly to override an + # inherited required-labels list from the dashboard/org config, which was + # deadlocking auto-review against `auto_apply_labels: true` below. + # + # The inherited gate required at least one of ~26 labels before a review + # would start — a set that includes `architecture-gap`, `ci-cd`, + # `pipeline-critical` and `placeholder-code`, i.e. labels CodeRabbit itself + # applies *as part of* a review. A PR opens unlabelled, so the gate skipped + # it ("Review skipped: excluded by label configuration"), and no label was + # ever applied to un-skip it. Labelling afterwards does not retro-trigger. + # + # Net effect: auto-review never fired on open, and every review in this repo + # had to be requested by hand with `@coderabbitai full review`. + labels: [] # Skip work-in-progress PRs that are not opened as drafts. ignore_title_keywords: - WIP