2 months ago
cb1ef38`readyAgentIds` means "stopped running", not "succeeded" — StatusBus counts `errored` as terminal. Callers that conflated the two read a failed child's partial transcript as if it were a result. Observed in production: a four-way fan-out where every child exceeded the model's context window still returned timedOut:false with all four ready, and the parent summarized four crashed agents' partial output as findings. Adds `erroredAgentIds` alongside `readyAgentIds` through StatusBus, the wait result, the agent_wait_result event and its schemas, and states the distinction in the waitForAgent tool description so a model cannot miss it. Additive, so existing callers are unaffected. `closed` is deliberately not counted as an error — that is a lifecycle outcome the parent chose, not a failure. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Kk98XjGKJrKp5ynbiNFMFu
Parent4abf664