WHY this matters
If you're building anything that drives Claude Code programmatically — CI runners, orchestration layers, SDK hosts — three changes land together.
🚀 New capabilities
Deep subagent stream forwarding (v2.1.219+)
Nested subagent messages now appear in --output-format stream-json with parent_tool_use_id set to the spawning Agent tool call ID. Before v2.1.219, nested messages were silently dropped. SDK consumers can now rebuild the full nesting tree. Requires --forward-subagent-text or CLAUDE_CODE_FORWARD_SUBAGENT_TEXT.
MCP server error detection in CI (v2.1.219+)
The system/init stream event now includes mcp_server_errors — CI can now gate on a non-empty array instead of running blind.
New capability string interrupt_cancel_queued_v1 added to system/init.
⚠️ Security fix (v2.1.218)
Subagent hooks in .claude/agents/ markdown files now only fire if the folder has been trusted via workspace trust dialog. Non-interactive CI sessions: hooks suppressed.
🔥 Quiet breaking change (v2.1.218)
: is now reserved in subagent names. Any agent file with : in its name is silently skipped. Migration hazard.
Source PR: thevibeworks/claude-code-docs#1109
/cc @lroolle
WHY this matters
If you're building anything that drives Claude Code programmatically — CI runners, orchestration layers, SDK hosts — three changes land together.
🚀 New capabilities
Deep subagent stream forwarding (v2.1.219+)
Nested subagent messages now appear in
--output-format stream-jsonwithparent_tool_use_idset to the spawning Agent tool call ID. Before v2.1.219, nested messages were silently dropped. SDK consumers can now rebuild the full nesting tree. Requires--forward-subagent-textorCLAUDE_CODE_FORWARD_SUBAGENT_TEXT.MCP server error detection in CI (v2.1.219+)
The
system/initstream event now includesmcp_server_errors— CI can now gate on a non-empty array instead of running blind.New capability string
interrupt_cancel_queued_v1added tosystem/init.Subagent hooks in
.claude/agents/markdown files now only fire if the folder has been trusted via workspace trust dialog. Non-interactive CI sessions: hooks suppressed.🔥 Quiet breaking change (v2.1.218)
:is now reserved in subagent names. Any agent file with:in its name is silently skipped. Migration hazard./cc @lroolle