fix(subagents): make eval and queued steering nonblocking

Make agent_eval return a running projection by default so follow-up steering does not wait for child model calls. Keep checkpoint resume blocking by default unless block=false is explicit.

Teach /agent, /swarm, prompts, and docs to poll workers nonblocking and reserve block:true for deliberate terminal waits. Add Ctrl+S as a reliable queued-message send path before falling back to draft stash.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Hunter B
2026-06-13 13:31:21 -07:00
parent 5815f94f0b
commit 5ca618d70a
10 changed files with 205 additions and 21 deletions
+7 -5
View File
@@ -254,11 +254,13 @@ workspace/branch, lifecycle events, artifact refs, follow-up target, takeover
target, usage provenance, and verification provenance.
`agent_eval` returns these fields at the top level of the session projection and
inside `worker_record`. A running or continuable interrupted child should be
continued through the returned `follow_up` target (`agent_eval` with the same
agent id or session name). A local takeover should use the returned `takeover`
instructions; unsupported future cases must say why instead of leaving the
operator to guess.
inside `worker_record`. It is nonblocking by default: use it to poll status or
deliver follow-up input while the parent keeps coordinating. Pass `block:true`
only when deliberately waiting for a terminal child result. A running or
continuable interrupted child should be continued through the returned
`follow_up` target (`agent_eval` with the same agent id or session name). A
local takeover should use the returned `takeover` instructions; unsupported
future cases must say why instead of leaving the operator to guess.
Follow-up delivery is explicit. If a message was delivered, the worker record
stores a bounded preview and timestamp. If the child had already terminated,
+1 -1
View File
@@ -190,7 +190,7 @@ The active model-facing sub-agent surface is persistent and intentionally small:
| Tool | Niche |
|---|---|
| `agent_open` | Open a named sub-agent session for independent work. Returns a session projection immediately so the parent can keep coordinating. |
| `agent_eval` | Send follow-up input, block for completion, or fetch the current projection/transcript handle for an existing session. |
| `agent_eval` | Send follow-up input or fetch the current projection/transcript handle for an existing session. Nonblocking by default; pass `block:true` only for a deliberate wait. |
| `agent_close` | Cancel or release a sub-agent session by name or id. |
See `agent.txt` for the delegation protocol and