Repository navigation
security-guidance: never report a failed review as clean - #6375
Merged
Merged
Conversation
mhegazy
force-pushed
the
mhegazy/sg-review-failures
branch
2 times, most recently
from
October 8, 2026 01:23
5d02a8c to
f1b1504
Compare
mhegazy
force-pushed
the
mhegazy/sg-review-failures
branch
from
October 9, 2026 16:03
f1b1504 to
93f1a92
Compare
When a commit review got no verdict (an API error, an unexpected error in the call, or a reply that could not be read) it was logged as "no security issues found" and the commit was marked reviewed, so the push review skipped it (anthropics/claude-code#99840, also anthropics/claude-code#81057). - A commit whose review got no verdict is not marked reviewed, so a later push review from Claude Code still checks it, unless the same command pushed it. A failed push review does not mark its range either. - Claude is told once per session for each kind of review and failure. Later failures of the same kind are only logged. - In the agentic race, a single-shot fallback with no verdict no longer wins while the agentic review can still answer, the fallback no longer starts after the agentic review has answered, and it never runs twice. - The Stop and SubagentStop reviews use the same signal, so an unreadable reply no longer records a subagent's diff as reviewed.
mhegazy
force-pushed
the
mhegazy/sg-review-failures
branch
from
October 9, 2026 16:06
93f1a92 to
3057edc
Compare
mhegazy
marked this pull request as ready for review
October 12, 2026 17:05
mhegazy
enabled auto-merge
October 12, 2026 17:05
poteat
approved these changes
Oct 13, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Human: @mhegazy
Summary
A review that got no answer was reported as clean (anthropics/claude-code#99840, also anthropics/claude-code#81057). When the model call failed, or its reply could not be read, the commit review logged "no security issues found" and marked the commit reviewed, so the push review skipped it.
What changes
No version bump here. A separate PR bumps the plugin to 2.0.14 and should merge after this one.
Trade-offs
Test plan
New
tests/test_review_outcomes.py, 26 tests. Without the fix 25 of them fail. The plugin's suite passes, 214 tests, under pytest on Linux.End to end. Run in tmux with public Claude Code 2.1.292, the plugin loaded by
--plugin-dir, against a local fake API that scripts Claude and answers the plugin's review calls. The endpoint answers the plugin's review call with 401. Claude writes a file with a shell-injection bug and commits it.Not verified: macOS and Windows.
Generated by Claude Code