Fix merge blockers lost during concurrent rebuilds - #2346
Conversation
|
Warning Review limit reached
Next review available in: 49 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughMerge-review blocker reasons now persist across concurrent-main rebuilds, later retries, and empty corrective rebuilds. The merge flow recovers prior blockers, carries them through review outcomes, strengthens corrective prompts, and adds regression coverage. ChangesMerge blocker persistence
Estimated code review effort: 3 (Moderate) | ~20 minutes Sequence Diagram(s)sequenceDiagram
participant TaskStore
participant landOneRepo
participant mergeAndReview
participant ReviewAgent
TaskStore-->>landOneRepo: task history with blocker reasons
landOneRepo->>mergeAndReview: initialPriorReasons
mergeAndReview->>ReviewAgent: prompt with prior reasons
ReviewAgent-->>mergeAndReview: approval or new rejection reason
mergeAndReview-->>landOneRepo: squashSha and accumulated priorReasons
Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
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 |
|
The implementation is complete and the current checks are green. Marking this ready for maintainer review. |
Greptile SummaryThis PR keeps unresolved merge-review blockers active across rebuilds and retries. The main changes are:
Confidence Score: 5/5This looks safe to merge.
Important Files Changed
Reviews (3): Last reviewed commit: "test(engine): assert empty corrective me..." | Re-trigger Greptile |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@packages/engine/src/__tests__/merger-ai.test.ts`:
- Around line 298-316: The test “reviews an empty corrective rebuild before
accepting it as a no-op” should verify the full no-op invariant: assert
mergeAgent was called twice, capture the integration tip or result before the
corrective pass, and confirm it remains unchanged after the approved empty
rebuild. Keep the existing review-agent assertions and blocker verification
intact.
- Around line 306-307: Replace the plain technical-decision comment in the
corrective-pass test near the merger test callback with a dated
FNXC:MergeReviewBlockers yyyy-MM-dd-hh:mm: comment, preserving and updating the
rationale to accurately explain why the clean-room tree remains at the tip.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: 49b881f5-3e84-407f-8a42-0952681a1d6c
📒 Files selected for processing (2)
packages/engine/src/__tests__/merger-ai.test.tspackages/engine/src/merger-ai.ts
🚧 Files skipped from review as they are similar to previous changes (1)
- packages/engine/src/merger-ai.ts
What changed
mainadvances and the clean-room squash must be rebuilt.Why
A corrective clean-room squash can be approved and then discarded when
mainadvances before landing. The rebuild previously reset the reviewer context, allowing a later, smaller squash to be approved and the task to be finalized as Done without rechecking the original correctness blocker.Impact
Tasks with unresolved blocking review findings can no longer become Done merely because a concurrent rebuild or later retry loses that review context.
Validation
pnpm --filter @fusion/engine exec vitest run src/__tests__/merger-ai.test.ts— 45 passedpnpm --filter @fusion/engine typecheckSummary by CodeRabbit
Bug Fixes
Documentation