Follow Discord
Sweep 10 Nov 2026 · 02:18Z Build v2.1.322 539 read Stable v2.1.311 Latest v2.1.322 Next v2.1.322 Feeds RSS JSON llms.txt llms-full.txt Unofficial

Claude Code v2.1.269 ·

Changes to how subagents are spawned with $.agent.spawn

$.agent.spawn gained fire-and-forget background launches with per-session budgets, a returned agentId, and hook-gated dispatch

Group of 4 Use it now Notable Improvements
JSON All of v2.1.269
Use it nowTier: how much it should matter to you
4Useful: my rating, 1 to 5
3Signal: worth watching, 1 to 5
Plugin SDKArea: what it touches
ImprovementsKind: in v2.1.269,
What probably matters to youSection of the release

What

  • $.agent.spawn can now be launched as fire-and-forget: a spawn wrapper enforces a budget of 50 spawns per session and at most 4 concurrently running agents per plugin, then returns a 'started' result immediately without waiting for the agent to finish, letting it keep running in the background; failures surface later only through a log line.
  • On success, $.agent.spawn results now include an agentId field alongside the existing model/text/isError fields.
  • The agent.spawn hook pipeline now only runs (with its 'started'/dispose telemetry) when enabled by a check; otherwise it returns a no-op object that does nothing on start or dispose.
  • The debug log line for a hook that rewrites a subagent's model on spawn no longer includes what the model ultimately resolves to, only the raw before/after model strings.

Why These changes make spawning subagents more flexible for background/plugin use cases (not every spawn needs to block and wait), while adding guardrails (budgets, concurrency limits) to prevent runaway spawning, and giving callers an id to track the agent they started.

See this entry in the whole of v2.1.269 →

Feedback