Summary
A snapshot of Claude Code's agent-runtime capabilities as documented in the v2.1.x changelog, whats-new notes, and sandboxing/permissions docs (read 2026-09-22), used as a yardstick to assess gaps in a competing coding agent ("yoyo"). The verified set covers background subagents, resumable subagent streams, a self-diagnosing /doctor checkup, OS-level sandboxing with network policy, session relocation via /cd, and deeper sub-agent spawn nesting. The larger conclusion is that at this maturity level the changelog is mostly edge-case repair, and the real differentiators between coding agents are structural (retrieval shape, review workflow) rather than feature counts.
Key Points
- Subagents now run in the background by default (v2.1.198): the parent keeps working and is notified when a sub-agent finishes, rather than blocking the turn.
- Interrupted subagent streams auto-continue after computer sleep, dropped connections, or server errors, instead of terminating incomplete.
/doctor(alias/checkup, v2.1.205) is a full setup checkup that diagnoses and fixes — it reports first and asks before changing anything.- Sandboxing is OS-level enforcement, not a policy layer: filesystem isolation plus network isolation through a proxy that lives outside the sandbox.
- Network policy has a strict allowlist mode (v2.1.219+) which only honors user/managed/CLI settings — a repo-local
.claude/settings.jsoncannot loosen it. /cdmoves the session root and loads the new directory's CLAUDE.md, which is materially different from/add-dir(access extension, config loaded only as narrow exceptions).- Sub-agent spawn depth was raised to 5 levels.
- Parity vs. gap split for yoyo: the depth limit (3 vs 5) is a pinned, tested parity decision, not a gap; the real gaps are installation self-diagnosis, enforcement-grade sandboxing/network policy, and
/cd. - Landscape framing: separation on SWE-bench-scale benchmarks sits around ~50% for Claude Code; the durable differentiators are structural — Aider's repo-map (an index that shows the model repo instead of whole files) and Cursor's diff-review-before-apply.