Skip to main content

Claude Code v2.1.217: Emoji Shortcode Autocomplete, Subagent Concurrency and Nesting Limits, and Transcript Write Warnings

Claude Code v2.1.217 adds emoji shortcode autocomplete, caps concurrent subagents at 20 by default, stops subagents from nesting by default, and warns when transcript writes fail instead of losing them silently.

Claude Code v2.1.217 adds a few user-facing features and puts limits on how far subagents can fan out. Highlights include emoji shortcode autocomplete in the prompt input, a default cap on concurrently running subagents, no nested subagents by default, and warnings when transcripts can’t be saved. The fixes cover background session isolation, Windows auto-updates, auto-compact on Bedrock, and Claude Desktop network settings.

What’s New

Emoji Shortcode Autocomplete

The prompt input now autocompletes emoji shortcodes: type :heart: to insert ❤️, or :hea for suggestions. Disable it with the emojiCompletionEnabled setting.

Limits on Subagent Fan-Out

A new cap on concurrently running subagents (default 20, override with CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS) keeps one message from fanning out unbounded background agents, and subagents no longer spawn nested subagents by default; set CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH to allow deeper nesting. --max-budget-usd now also stops background subagents: once the cap is reached, new spawns are denied and running background agents are halted.

Warnings When Transcripts Can’t Be Saved

Claude Code now warns when transcript writes are failing (for example, when the disk is full) or when session saving is off due to an inherited environment variable, instead of losing transcripts silently.

Footer PR badge links are now clickable hyperlinks even when terminal support can’t be detected, such as over ssh/tmux. Set FORCE_HYPERLINK=0 to opt out.

Login-Expiry Warning Timing

The login-expiry warning now appears 3 days before expiry instead of 5.

Fixes and Improvements

  • Memory: Truncated MCP tool outputs no longer keep the full untruncated result in memory for the rest of the session.
  • Background sessions: Session isolation now canonicalizes symlinked working directories, which previously could let sessions escape their workspace folder. Background shells no longer sometimes become impossible to stop after a session is sent to the background (/background or ←) or when the session exits on a heavily loaded machine, an issue most visible on Windows. When you attach to a starting background session, the transcript preview now leaves the same one-line gap as the live layout, so the transcript no longer shifts when the session takes over.
  • Windows: Auto-update failures no longer leave claude.exe missing; failed updates now restore the preserved executable automatically.
  • Bedrock: Auto-compact now triggers for Claude Opus 4.8 on Bedrock, and /compact no longer fails once over the limit.
  • Claude Desktop: Corporate mTLS, TLS-verify, OAuth scope, and proxy settings are no longer ignored in Claude Desktop sessions.
  • Resume: --resume/--continue and /resume no longer fail with a TypeError when a transcript has a malformed attachment entry.
  • Remote Control: Viewers who connect to a Remote Control session after a permission prompt or dialog appears now see that pending prompt or dialog.
  • Telemetry: Managed settings that set OTEL_EXPORTER_OTLP_ENDPOINT now govern all signals; lower-scope signal-specific overrides no longer redirect telemetry away from the managed endpoint.
  • Startup: A CLAUDE.md or SKILL.md paths frontmatter value with many brace groups no longer OOM-kills or stalls the CLI at startup, because brace expansion is now budget-bounded.
  • Accessibility: Screen reader mode’s startup announcement is no longer cut off by the first prompt render, and the thinking status row no longer re-renders every few seconds to update elapsed time and token counts.
  • Tips: The frontend-design plugin suggestion tip is now capped at 3 lifetime impressions instead of repeating indefinitely.

How to Update

  1. Check your installed version: claude --version
  2. Update in place: claude update
  3. Subagents no longer spawn nested subagents by default, and at most 20 run concurrently by default; adjust CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH or CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS if your workflows need more.