fix(ci): prevent AI review comments from overwriting each other#104
Conversation
The 4 Claude review jobs all used `use_sticky_comment: true`, which finds the most recent Claude bot comment and overwrites it. When jobs run concurrently, the last to finish wins and other reviews are lost. Similarly, 4 Codex jobs used HTML marker-based find-and-update logic. Remove sticky/update-in-place behavior from all 8 AI review jobs so each always creates a new comment. The "Check for blocking findings" steps already filter by heading and continue to work correctly with multiple comments. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Note Gemini is unable to generate a summary for this pull request due to the file types involved not being currently supported. |
📝 WalkthroughWalkthroughThe PR simplified GitHub Actions workflow PR comment handling by removing sticky-comment logic and marker-based extraction/patching across multiple review steps. Comments are now always posted fresh via Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~8 minutes Poem
🚥 Pre-merge checks | ✅ 3 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches🧪 Generate unit tests (beta)
No actionable comments were generated in the recent review. 🎉 🧹 Recent nitpick comments
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 |
There was a problem hiding this comment.
Pull request overview
This PR fixes a critical concurrency issue where multiple AI review jobs running in parallel would overwrite each other's comments, causing review output to be lost. The fix removes sticky comment mechanisms from both Claude and Codex review jobs, ensuring each review creates a fresh comment instead of updating existing ones.
Changes:
- Removed
use_sticky_comment: trueparameter from all 4 Claude review jobs (contracts, client, indexer-api, general) - Simplified all 4 Codex review jobs to use direct
gh pr commentinstead of finding and updating existing comments via HTML markers and PATCH operations - Preserved all blocking findings checks, which continue to work correctly by filtering comments by header and selecting the most recent one
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Summary
use_sticky_comment: truefrom all 4 Claude review jobs (contracts,client,indexer-api,general) so each run creates a new comment instead of overwriting the single sticky commentgh pr commentinstead of finding and PATCHing existing comments via HTML markersProblem
The
claude-code-actionsticky comment mechanism has no per-job differentiator — it finds the most recent comment from the Claude bot and overwrites it. When multiple Claude review jobs run concurrently, the last one to finish wins and the other reviews are lost. The Codex jobs had an equivalent issue using HTML marker-based find-and-update logic.What stays unchanged
use_sticky_comment)| last; Codex checks/tmp/review.txtdirectly)Test plan
python3 -c "import yaml; yaml.safe_load(open(...))")grep -n 'use_sticky_comment' .github/workflows/pr-ci.ymlreturns no resultsgrep -n 'COMMENT_MARKER\|EXISTING_COMMENT_ID' .github/workflows/pr-ci.ymlreturns no resultsgrep -n 'PATCH --input' .github/workflows/pr-ci.ymlreturns no resultsgh pr commentonly🤖 Generated with Claude Code
Summary by CodeRabbit
Release Notes