v0.10.52 — Fix no-op coder submission infinite retry
What's new
Fix: No-op coder submission forwarded to reviewer instead of infinite retry
Pool-workspace coders that correctly identify pre-existing work and output STATUS: REVIEW with no new commits were triggering an infinite retry loop via postCoderGate (145 consecutive retries observed on a single task).
Root cause: postCoderGate returned 'No changes detected' → runner treated it as a retry, not a terminal condition.
Fix: When a coder makes no new commits, the gate now forwards the task directly to the reviewer with a [NO_OP_SUBMISSION] marker. The reviewer verifies whether the pre-existing code satisfies the task specification and approves or rejects normally. On approve, mergeToBase is skipped (there is nothing to merge).
Changes:
getLogOnelinenow returnsstring | null(null = git failure, empty string = no commits)PostCoderResultgainsreasonCode: 'no_new_commits' | 'git_error'for clean branching- Gate handler routes
no_new_commitsto reviewer,git_errorretries as before ReviewerResult.isNoOpcaptured before LLM runs to avoid audit-shadow race condition- Reviewer prompt updated with
[NO_OP_SUBMISSION]handling rules - 13 new tests
Design documented in docs/no-op-coder-submission.md after 4 rounds of adversarial Codex/Claude review.
Compare: v0.10.51...v0.10.52