You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add a distinct terminal outcome (e.g. ALREADY-RESOLVED) for the coder honest-bail case where the model determines the issue is already fixed on the branch/base, separate from MODEL-DECIDED NO-GO ("I tried and couldn't"). The coder-escalation trigger (#963/#964) escalates on NO-GO + MODEL-DECIDED; splitting out the already-resolved class lets escalation skip it (nothing for a larger model to do) and lets the controller close/flag the issue instead of burning an escalation run to re-confirm staleness.
Why — field evidence
Running the fleet, 2 of 3 real NO-GO / MODEL-DECIDED coder outcomes were not "couldn't do it" — they were "already done." From live AgenticTask status.result:
misospace/KubeTix#152: summary: "Issue #152 is already resolved by prior fix e97d0ca (Fixes #129)…", verdict NO-GO, extra.outcome: MODEL-DECIDED.
misospace/pr-reviewer-action#365: summary: "Issue #365 is already resolved on the foreman branch: commit e7c3f18…", verdict NO-GO, extra.outcome: MODEL-DECIDED.
Under #964's trigger both of these escalate to the larger model, which will re-derive the same "nothing to do" conclusion at higher cost. They are a different class from a genuine capability failure.
Proposed solution (sketch, open to design)
A dedicated machine outcome the coder emits when it concludes the work is already present (submit_result verdict/outcome), distinct from MODEL-DECIDED.
The controller treats an already-resolved issue as a terminal non-failure: don't count it as an incomplete/failed task pinning the Workload, and surface it (condition/event) so the operator can close the issue.
Alternatives
Keep it under MODEL-DECIDED: status quo; escalation burns a run per already-resolved issue, and the Workload rolls up as if incomplete.
Prompt-only convention (model writes "already resolved" in the summary, humans read it): brittle, no machine signal for the controller.
Additional context
Filed as a follow-up to the #964 review, where the maintainer agreed the "nothing to do" honest-bail is a distinct class worth splitting. AI-assisted contribution disclosure applies if this is implemented via the coder harness.
Feature Description
Add a distinct terminal outcome (e.g.
ALREADY-RESOLVED) for the coder honest-bail case where the model determines the issue is already fixed on the branch/base, separate fromMODEL-DECIDEDNO-GO ("I tried and couldn't"). The coder-escalation trigger (#963/#964) escalates onNO-GO+MODEL-DECIDED; splitting out the already-resolved class lets escalation skip it (nothing for a larger model to do) and lets the controller close/flag the issue instead of burning an escalation run to re-confirm staleness.Why — field evidence
Running the fleet, 2 of 3 real
NO-GO/MODEL-DECIDEDcoder outcomes were not "couldn't do it" — they were "already done." From live AgenticTaskstatus.result:misospace/KubeTix#152:summary: "Issue #152 is already resolved by prior fix e97d0ca (Fixes #129)…", verdictNO-GO,extra.outcome: MODEL-DECIDED.misospace/pr-reviewer-action#365:summary: "Issue #365 is already resolved on the foreman branch: commit e7c3f18…", verdictNO-GO,extra.outcome: MODEL-DECIDED.Under #964's trigger both of these escalate to the larger model, which will re-derive the same "nothing to do" conclusion at higher cost. They are a different class from a genuine capability failure.
Proposed solution (sketch, open to design)
MODEL-DECIDED.shouldEscalateCoder(feat(foreman): coder-tier escalation, re-dispatch a failed coder to a larger model #964) excludes it — no escalation.Alternatives
MODEL-DECIDED: status quo; escalation burns a run per already-resolved issue, and the Workload rolls up as if incomplete.Additional context
Filed as a follow-up to the #964 review, where the maintainer agreed the "nothing to do" honest-bail is a distinct class worth splitting. AI-assisted contribution disclosure applies if this is implemented via the coder harness.