Skip to content

merge-clearance: reviewed-head wedges when CodeRabbit incrementally reviews but emits no artifact on a trivial follow-up commit #54

Description

@mujtaba3B

The gap

merge-clearance.sh's reviewed-head dimension is satisfied only by a CodeRabbit review object whose commit oid == HEAD, or (as of #53) a CodeRabbit success commit status on HEAD. CodeRabbit's incremental review model provides neither when the latest commit is a trivial follow-up it has "already reviewed" incrementally and has nothing to say about.

Concrete incident (PR #53)

  • CodeRabbit reviewed the PR up to commit 8a85356 (review object there), passed pre-merge checks 5/5, left one Minor nitpick.
  • The nitpick was addressed in a follow-up commit 8a12034 (a test-comment tweak).
  • @coderabbitai review returned: "Review finished. Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits."
  • Result: no CR review object on 8a12034, no CR commit status (missing), no rate-limit marker. The reviewed-head blocker "CodeRabbit has not reviewed the current head yet" fires with no auto-satisfy path (not *.pen, not rate-limited). The PR wedges even though CodeRabbit considers it reviewed.

This is the same family as the #118 bug #53 fixes, but a case #53's fix does not cover: #53 trusts a present CR success status; here CR posts no status at all.

Proposed direction (needs design + adversarial review; it relaxes a hard gate)

Satisfy reviewed-head when CodeRabbit has a review object on an ancestor of HEAD AND the incremental delta from that reviewed ancestor to HEAD is entirely CR-unreviewable-or-trivial. Candidate signals for "trivial/covered":

  • the delta matches cr_unreviewable_globs / git-binary (existing mc_head_cr_unreviewable, but extended across the ancestor..HEAD range, not just HEAD^..HEAD), OR
  • CodeRabbit's own "Review finished / does not re-review already reviewed commits" acknowledgement is present as its latest action for the current push.

Keep the hard blockers intact: unresolved current CR threads and CHANGES_REQUESTED still block; a non-trivial unreviewed delta still blocks. Surface any waiver in the checklist + posted status for audit, like the other bypasses.

Workaround used for #53

Merged via admin override (human-authorized), since CodeRabbit reviewed the substance and the only commit past its review object is a test-comment tweak covered by a current /eng:cr review.

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions