When a merge completes but auto-recovery moves the task back to in-review, the retry gating (mergeRetries >= 3) blocked re-processing. Now canMergeTask always accepts mergeConfirmed tasks and drainMergeQueue fast-paths them directly to done without re-running the merge agent. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>