What’s New

Claude Code v2.1.217

v2.1.217
Added
  • Add emoji shortcode autocomplete in the prompt input to insert emojis by typing shortcodes like `:heart:` for ❤️, with suggestions available and disable option via `emojiCompletionEnabled` setting
  • Add warnings when transcript writes are failing (e.g. disk full) or when session saving is off due to an inherited environment variable
  • Add a cap on concurrently-running subagents with a default of 20, configurable via `CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS`
Changed
  • Change the login-expiry warning to appear 3 days before expiry instead of 5
  • Change the frontend-design plugin suggestion tip to cap at 3 lifetime impressions instead of repeating indefinitely
  • Change subagents to no longer spawn nested subagents by default, with `CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH` allowing deeper nesting
  • Improve footer PR badge links to be clickable hyperlinks even when terminal support can't be detected, with `FORCE_HYPERLINK=0` to opt out
Fixed
  • Fix a memory leak where truncated MCP tool outputs kept the full untruncated result in memory for the rest of the session
  • Fix Windows auto-update failures that could leave `claude.exe` missing by automatically restoring the preserved executable on failed updates
  • Fix background session isolation not canonicalizing symlinked working directories, which could let sessions escape their workspace folder
  • Fix auto-compact never triggering for Claude Opus 4.8 on Bedrock and `/compact` failing once over the limit
  • Fix corporate mTLS, TLS-verify, OAuth scope, and proxy settings being ignored in Claude Desktop sessions
  • Fix screen reader mode's startup announcement being cut off by the first prompt render
  • Fix the thinking status row re-rendering every few seconds to update elapsed time and token counts
  • Fix managed settings that set `OTEL_EXPORTER_OTLP_ENDPOINT` not governing all signals, with lower-scope signal-specific overrides no longer redirecting telemetry away from the managed endpoint
  • Fix `--resume`/`--continue` and `/resume` failing with a TypeError when a transcript has a malformed attachment entry
  • Fix Remote Control sessions not showing a pending permission prompt or dialog to viewers that connected after it appeared
  • Fix background shells sometimes becoming impossible to stop after a session is sent to the background or when the session exits on a heavily loaded machine
  • Fix `CLAUDE.md` or `SKILL.md` paths frontmatter value with many brace groups OOM-killing or stalling the CLI at startup by budget-bounding brace expansion
  • Fix the transcript preview sitting flush against the input area when attaching to a starting background session by leaving the same one-line gap as the live layout
  • Fix `--max-budget-usd` not stopping background subagents by denying new spawns and halting running background agents once the cap is reached
What's changed
  • Added emoji shortcode autocomplete in the prompt input: type :heart: to insert ❤️, or :hea for suggestions — disable with the emojiCompletionEnabled setting
  • Added warnings when transcript writes are failing (e.g. disk full) or when session saving is off due to an inherited environment variable, instead of losing transcripts silently
  • Fixed a memory leak where truncated MCP tool outputs kept the full untruncated result in memory for the rest of the session
  • Fixed Windows auto-update failures that could leave claude.exe missing; failed updates now restore the preserved executable automatically
  • Fixed background session isolation not canonicalizing symlinked working directories, which could let sessions escape their workspace folder
  • Fixed auto-compact never triggering for Claude Opus 4.8 on Bedrock and /compact failing once over the limit
  • Fixed corporate mTLS, TLS-verify, OAuth scope, and proxy settings being ignored in Claude Desktop sessions
  • Fixed screen reader mode's startup announcement being cut off by the first prompt render, and the thinking status row re-rendering every few seconds to update elapsed time and token counts
  • Fixed managed settings that set OTEL_EXPORTER_OTLP_ENDPOINT not governing all signals — lower-scope signal-specific overrides no longer redirect telemetry away from the managed endpoint
  • Fixed --resume/--continue and /resume failing with a TypeError when a transcript has a malformed attachment entry
  • Fixed Remote Control sessions not showing a pending permission prompt or dialog to viewers that connected after it appeared
  • Fixed background shells sometimes becoming impossible to stop after a session is sent to the background (/background or ) or when the session exits on a heavily loaded machine, most visible on Windows
  • Fixed a CLAUDE.md or SKILL.md paths frontmatter value with many brace groups OOM-killing or stalling the CLI at startup — brace expansion is now budget-bounded
  • Fixed the transcript preview sitting flush against the input area when attaching to a starting background session; it now leaves the same one-line gap as the live layout, so the transcript no longer shifts when the session takes over
  • Improved footer PR badge links to be clickable hyperlinks even when terminal support can't be detected (e.g. over ssh/tmux); set FORCE_HYPERLINK=0 to opt out
  • Changed the login-expiry warning to appear 3 days before expiry instead of 5
  • Capped the frontend-design plugin suggestion tip at 3 lifetime impressions instead of repeating indefinitely
  • Added a cap on concurrently-running subagents (default 20, override with CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS) so one message can't fan out unbounded background agents
  • Changed subagents to no longer spawn nested subagents by default; set CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH to allow deeper nesting
  • Fixed --max-budget-usd not stopping background subagents: once the cap is reached, new spawns are denied and running background agents are halted
View original