The short version: Claude Code v2.1.224, shipped August 7, deleted the 200-subagent-per-session spawn cap. A long-running session no longer refuses new agents the moment it crosses 200 — the wall that used to kill multi-hour orchestrations and codebase-wide sweeps partway through. But the cap's removal doesn't make fan-out unbounded. Three other limits are now the real governors, and the same release quietly fixed the one that matters most for unattended work: --max-budget-usd now halts background agents that are already running, not just future ones. If you run agent fleets, stop sizing jobs against "200 then it stops" and start sizing them against concurrency × depth × dollars.

What actually changed#

The per-session spawn cap was a hard count: after a session spawned 200 subagents over its lifetime, the 201st was refused. That's fine for a chat turn and fatal for a long job — a repo-wide migration or a fan-out review that legitimately needs hundreds of short-lived agents would run for an hour and then simply stop accepting new ones. v2.1.224 removes that count. The changelog line is exact:

"Removed the 200-subagent-per-session spawn cap; long-running sessions no longer refuse new agents (concurrency and depth limits still apply)"

The parenthetical is the whole story. The ceiling moved; it didn't disappear.

The three limits that govern a fleet now#

Instead of one lifetime count, you now reason about three independent knobs:

The fix that matters more than the cap removal#

Before v2.1.224, --max-budget-usd had a hole: when the cap was hit, it stopped new spawns but let background subagents already in flight keep spending. For an interactive session you'd notice. For an unattended fleet — the exact case the cap removal now encourages — you might not, until the bill did. This release closes it:

"Fixed --max-budget-usd not stopping background subagents: once the cap is reached, new spawns are denied and running background agents are halted"

Read those two changes together and the intent is clear. Anthropic took the brakes off the count and, in the same release, made the dollar brake actually stop the vehicle. If you were relying on the 200-cap as an accidental cost fuse, that fuse is gone — --max-budget-usd is now the real one, so set it on purpose.

What to do this week#

  1. Set a budget on any unattended run. --max-budget-usd 15 (or whatever your job is worth) is now the limit that stops runaway spend, including background agents. Don't ship a fleet without it.
  2. Right-size concurrency to your rate limit, not to the old cap. If you were tuning around 200 total, retune around 20 concurrent — that's the number that controls how hard you hit the API in any given second. See how to fan out agent tool calls without tripping your rate limit.
  3. Pin nesting depth deliberately. Keep depth 3 if you genuinely want nested subagents doing multi-level work; set CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH=1 if you want a flat, auditable fleet.
  4. Still cap the cheap stuff. The count is gone, but a runaway loop is still a runaway loop — the patterns in how to cap runaway Claude Code subagents and running a headless subagent orchestrator still apply, just against these three knobs instead of the vanished 200.

Why this lands now#

The cap removal is one of a cluster of August changes pushing Claude Code from a single-session coding tool toward a fleet runtime you can leave running: cross-session messaging let sessions coordinate, self-hosted runners let them run on your own compute, and now the per-session wall that made long fleets fail is gone. The through-line for a solo founder: the tool is being reshaped for jobs that spawn a lot of agents and run for hours — and the guardrails you configure (concurrency, depth, dollars) are now the thing standing between "a sweep that finishes" and "a bill that doesn't."