Skip to content

v0.10.52 — Fix no-op coder submission infinite retry

Choose a tag to compare

@rafiki270 rafiki270 released this 27 Feb 22:52
· 340 commits to main since this release

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:

  • getLogOneline now returns string | null (null = git failure, empty string = no commits)
  • PostCoderResult gains reasonCode: 'no_new_commits' | 'git_error' for clean branching
  • Gate handler routes no_new_commits to reviewer, git_error retries as before
  • ReviewerResult.isNoOp captured 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