OrchestKit · adopt all, wave 1 · CC 2.1.246 · #3766 · 2026-08-29

A turn-limited agent is paused, not finished

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.

1 · the shape

What the parent actually sees

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)"
before 2.1.246turn 25 reached → "finished"parent trusts a half-done deliverableor re-spawns from zero and pays the prompt again after, with this PRturn 25 reached → "partial, continue it"[PARTIAL RESULT] names the limit + agent idSendMessage "continue from where you stopped"
What it meansThe agent's context survives the stop; continuing it is cheaper and keeps its working state.
If we do nothingFan-out skills keep treating turn-limited agents as done, or spawn replacements from zero.
2 · what changed

One hook message, six skill docs

WhereBeforeNow
subagent-stop/retry-handlerevery 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-patternsmax_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.

Proof7 new unit tests on the verbatim summary; 45 existing retry-handler tests unchanged; typecheck clean.
Not coveredCloud sessions enforce no turn limit yet (binary string), so nothing to read there.