Found while watching PR #43 through the loop.
The bug
bot_review_coverage(reviews, head, *, bots) reads the reviews list. CodeRabbit delivers a clean verdict as an issue comment, not as a review submission:
No actionable comments were generated in the recent review. 🎉
So on a PR the bot reviewed and passed:
statusCheckRollup CodeRabbit: SUCCESS
comments 1 (coderabbitai — walkthrough + the verdict line above)
reviews []
--------------------------------------------------
review_bots.signal "ok"
review_bots.coverage []
merge_blockers ["independent review evidence is missing for current head"]
A PR that was independently reviewed and found clean is indistinguishable from one that was never reviewed.
Observed on this repo's PR #43 (CodeRabbit plan: Pro Plus, profile CHILL, Configuration used: defaults — nothing exotic).
Why it matters
This is the mirror of #19. #19 stopped a receipt binding to a review that had not happened. This makes a review that did happen invisible — and the consequence is worse than cosmetic: the merge gate reports missing review evidence, which pushes the operator toward recording a fallback receipt they did not need, for a review that already exists.
That is a receipt claiming coverage from a pass that never ran, arrived at by following the gate's own instruction. fallback-review-panel.md says "A receipt should never claim more coverage than the review it stands for" — the gate is currently steering people into violating it.
It also silently inflates the cost of every clean PR: a full two-lens panel gets run to satisfy a gate that a real reviewer had already satisfied.
Suggested fix
bot_review_coverage should treat a configured bot's comment-borne verdict as review evidence, the same way review_unavailable_reason already treats a comment-borne outage as an outage. The precedent is exact and already in the codebase — #23's whole lesson was that the same bot says the same thing on different surfaces, and matching only one surface makes detection depend on which one it happened to use.
Concretely: a configured-bot comment matching a verdict marker (no actionable comments were generated, actionable comments posted: N) is a completed review for the commit it references, and should populate coverage with that commit.
Note noise_markers already carries "actionable comments posted: 0" — the kit is currently filtering out the very signal it needs, on one of the two wordings. The other wording ("No actionable comments were generated in the recent review") matches no marker at all.
Related
Found while watching PR #43 through the loop.
The bug
bot_review_coverage(reviews, head, *, bots)reads thereviewslist. CodeRabbit delivers a clean verdict as an issue comment, not as a review submission:So on a PR the bot reviewed and passed:
A PR that was independently reviewed and found clean is indistinguishable from one that was never reviewed.
Observed on this repo's PR #43 (CodeRabbit plan: Pro Plus, profile CHILL,
Configuration used: defaults— nothing exotic).Why it matters
This is the mirror of #19. #19 stopped a receipt binding to a review that had not happened. This makes a review that did happen invisible — and the consequence is worse than cosmetic: the merge gate reports missing review evidence, which pushes the operator toward recording a fallback receipt they did not need, for a review that already exists.
That is a receipt claiming coverage from a pass that never ran, arrived at by following the gate's own instruction.
fallback-review-panel.mdsays "A receipt should never claim more coverage than the review it stands for" — the gate is currently steering people into violating it.It also silently inflates the cost of every clean PR: a full two-lens panel gets run to satisfy a gate that a real reviewer had already satisfied.
Suggested fix
bot_review_coverageshould treat a configured bot's comment-borne verdict as review evidence, the same wayreview_unavailable_reasonalready treats a comment-borne outage as an outage. The precedent is exact and already in the codebase — #23's whole lesson was that the same bot says the same thing on different surfaces, and matching only one surface makes detection depend on which one it happened to use.Concretely: a configured-bot comment matching a verdict marker (
no actionable comments were generated,actionable comments posted: N) is a completed review for the commit it references, and should populatecoveragewith that commit.Note
noise_markersalready carries"actionable comments posted: 0"— the kit is currently filtering out the very signal it needs, on one of the two wordings. The other wording ("No actionable comments were generated in the recent review") matches no marker at all.Related
signal: "ok"alongsidecoverage: []. This is the explanation for that pairing: the bot is fine, the reader is looking in the wrong place.