Repository navigation
Review gate: read CodeRabbit's clean walkthrough and its Review finished reply - #1398
Conversation
…hed reply The summary comment CodeRabbit edits in place after a review that found nothing was a claim needing a disposition (#1351, #1386, #1392), and so was its "Review finished." reply in the layout with <dl><dd> wrappers. - check-review-threads.sh: add is_cr_clean_walkthrough. The comment is exempt when it has only the summarize marker, each of six blocks (review stack link, recent review, walkthrough, Merge Risk, pre-merge checks, finishing touches) exactly once, "No actionable comments were generated in the recent review." over a reviewed range, a Minimal Merge Risk, and nothing outside the blocks but folds. The review stack link, recent-review, finishing touches, tips and Autofix blocks are shape-checked line by line; the walkthrough, Merge Risk text and pre-merge checks are the bot's prose and are removed as declared free regions. Anything added outside them leaves text behind and the comment stays claimable. Coverage is unchanged (walkthrough_sha: range ends at the head, edit after the head arrived). - is_verdict lists the reply with <dl><dd> wrappers beside the old layout. It names no commit, so it covers nothing. - tests/fixtures/review-gate: the #1386 walkthrough and #1392 reply with ids replaced by made-up values, read by both harnesses. - tests/test_log_scan.rs: 6 tests. Against the old script, 3 fail: review_gate_treats_a_coderabbit_walkthrough_with_no_findings_as_needing_no_disposition, review_gate_does_not_let_a_coderabbit_walkthrough_cover_another_head, review_gate_treats_a_coderabbit_review_finished_reply_as_neither_a_finding_nor_coverage. The other 3 (appended findings in six places, another account, reply with additions) hold before and after. - scripts/test-check-review-threads.sh: finding 51, 15 cases; 6 fail against the old script, 356 pass with the change. - .claude/CLAUDE.md: one paragraph on the two shapes. Tested: bash scripts/test-check-review-threads.sh (356 passed); make test-unit FILTER="-E 'binary(test_log_scan)'" (46 passed); scripts/gate-discard-sites.sh (0 unaccounted). All 8 walkthrough comments on #1304 to #1386 are accepted.
|
@codex review |
|
No actionable comments were generated in the recent review.
|
| Layer / File(s) | Summary |
|---|---|
Recognize CodeRabbit comment regions scripts/check-review-threads.sh |
Adds matchers and accounted regions for CodeRabbit walkthrough content. The verdict classifier also recognizes wrapped “Full review finished.” and “Review finished.” replies. |
Classify clean walkthroughs scripts/check-review-threads.sh, .claude/CLAUDE.md |
Requires the specified regions, clean recent-review content, and permitted framing before exempting a walkthrough from disposition. Documentation describes the rules and head coverage. |
Test disposition and head coverage scripts/test-check-review-threads.sh, tests/fixtures/review-gate/*, tests/test_log_scan.rs |
Adds fixtures and tests for qualifying comments, altered or incomplete content, authorship, timestamps, reviewed ranges, and head coverage. |
Priority:
Estimated code review effort: 3 (Moderate) | ~20 minutes
Change: Bug fix
Possibly related PRs
- ejc3/fcvm#1291: It updates the same review-gate classifier and tests bot comments that do not require disposition. Its commit-less Codex receipt has separate head-coverage behavior.
Merge Risk: 
Minimal · up to 63969
-
No merge-blocking issue is established; the change is ready for normal checks.
Pre-merge checks: 
5
-
Full details: Docstring Coverage
-
Explanation
Docstring coverage is 90.91% which is sufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 11 functions across 3 files. (3 skipped: 3 unsupported.)
-
Finishing Touches
-
📝 Generate docstrings
-
- Commit to this branch
- Create a new PR
🧪 Generate unit tests (beta)
-
- Commit to this branch
- Create a new PR
-
- Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.
Comment @coderabbitai help to get the list of available commands.
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 16904308c0
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
A walkthrough with the Merge Risk summary line deleted still passed: the leftover lines were all folds, so the frame check accepted it. The frame now has to contain exactly one Minimal risk summary line. Tested: with the line deleted the walkthrough was CLEAR and HEAD COVERED before and is claimable after. Red against the previous script: review_gate_treats_a_coderabbit_walkthrough_with_additions_as_a_claim and the finding 51 case "without its Merge Risk summary". Now test-check-review-threads.sh 357 passed, test_log_scan 46 passed, gate-discard-sites.sh 0 unaccounted.
|
@codex review |
|
Codex Review: Didn't find any major issues. Keep it up! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Two CodeRabbit bodies the review gate counted as unanswered findings: the summary comment after a review that found nothing, and the "Review finished." reply. They blocked #1351, #1386 and #1392.
Contract. Each needs no disposition, neither grants coverage by itself, and the same text with anything added, or from any other account, stays claimable.
is_cr_clean_walkthrough): exempt when it has the summarize marker and no other marker, six blocks exactly once (review stack link, recent review, walkthrough, Merge Risk, pre-merge checks, finishing touches), "No actionable comments were generated in the recent review." over a reviewed range, a Minimal Merge Risk, and nothing outside the blocks but folds. The stack link, recent-review, finishing-touches, tips and Autofix blocks are checked line by line. The walkthrough, Merge Risk text and pre-merge checks are the bot's prose and are removed as declared free regions, which is the one place a rendered region goes unread. Head coverage is unchanged:walkthrough_shastill needs a range ending at the head and an edit after the head arrived.is_verdictlists the<dl><dd>layout beside the old one. It names no commit, so it covers nothing.Downstream impact. The gate is a merge gate, so it fails closed: an unlisted line, a second block, a Merge Risk other than Minimal, or "Actionable comments posted" in place of the clean line leaves the comment claimable. Limitation: text inside a free region is not read, and only CodeRabbit's bot account can edit that comment.
Evidence.
tests/fixtures/review-gate/holds the fleet: the autopilot's scenes carry the weather field #1386 and Snapshot directories are btrfs subvolumes, and a diff is staged from its parent's #1392 bodies with ids replaced by made-up values, read by both harnesses.tests/test_log_scan.rsfail:review_gate_treats_a_coderabbit_walkthrough_with_no_findings_as_needing_no_disposition,review_gate_does_not_let_a_coderabbit_walkthrough_cover_another_head,review_gate_treats_a_coderabbit_review_finished_reply_as_neither_a_finding_nor_coverage. Inscripts/test-check-review-threads.sh(finding 51), 6 of 15 cases fail. The rest are fail-closed guards that hold before and after.bash scripts/test-check-review-threads.sh356 passed;make test-unit FILTER="-E 'binary(test_log_scan)'"46 passed;scripts/gate-discard-sites.sh0 unaccounted.Not changed: a comment that still carries a stale "Review limit reached" block above a walkthrough (#1325, #1337, #1340, #1355, #1362, #1376) stays claimable.
Codex: requested below.
Summary by CodeRabbit