feat: committer distinguishes recoverable vs unrecoverable failures

CommitterMeta is now a 3-way discriminated union:
- committed: success with branch + commitSha
- recoverable: coder can fix (hook failures, lint, test, conflicts)
- unrecoverable: can't be fixed by code (auth, permissions, disk)

Moderator routes recoverable → coder for retry.
This commit is contained in:
2026-05-06 10:53:17 +00:00
parent 267ca73a1b
commit 196562c82a
3 changed files with 17 additions and 6 deletions
@@ -31,6 +31,9 @@ export const solveIssueModerator: Moderator<SolveIssueMeta> = (ctx) => {
}
if (last.role === "committer") {
if (last.meta.status === "recoverable" && ctx.steps.length < maxRounds - 1) {
return "coder";
}
return END;
}