OrchestKit · adopt all, wave 1 · CC 2.1.246 · #3766 · 2026-08-29
Since CC 2.1.246 a subagent that hits its maxTurns comes back marked partial, with a hint to continue it. Before, it looked finished. ork's hooks and skills now read that shape and say the one thing that matters: continue the agent, do not re-spawn it.
The subagent summary is templated by CC. The verbatim shape, from the 2.1.251 binary:
"finished" | "failed: {error}" | "was stopped" |
"stopped at its N-turn limit (partial result; continue it with SendMessage to the task-id)"
| Where | Before | Now |
|---|---|---|
subagent-stop/retry-handler | every partial got "likely killed or timed out; verify completeness" | a turn-limit partial gets "stopped at its N-turn limit; continue it with SendMessage to agent id X; do NOT re-spawn". detectTurnLimit() reads the summary shape (and the older "reached maximum number of turns" phrasing); everything else keeps the old message. |
| brainstorm, verify, review-pr, cover, phase-workflow | "[PARTIAL RESULT] means killed or timed out" | the maxTurns shape named, with the SendMessage continuation rule |
| chain-patterns fork-pattern, monitor-patterns | max_turns=25 shown as a plain parameter | "a budget, not a deadline": what a fork at its limit returns, and why not to re-fork |
The SubagentStop payload carries only agent_id, agent_type, agent_transcript_path (measured from the binary's hook registry), so the hook reads the summary text, not a stop-reason field; the skills read the same text in the completion notice.