Radar · 22/07/2026 · happened on 21/07/2026 · coding

Claude Code v2.1.217: transcript failure warnings and MCP memory leak fix

Claude Code v2.1.217 adds two things that matter more than the fix list: an explicit warning when transcripts fail to save (disk full, environment variable disabling saves) and a fix for a memory leak that kept the full output of MCP tools in memory even after truncation on screen.

As we covered yesterday with v2.1.216, the rapid release cycle is moving Claude Code toward daily production use. The warning on transcript failures is a concrete signal of this direction: before, when the disk filled up or an inherited environment variable disabled session saves, transcripts would disappear silently. Now the agent tells you.

The MCP tool memory leak fix closes a subtle issue: even though output was truncated on screen, the full version stayed allocated in memory for the entire session. With hours of work and multiple calls to external tools, this added up until it slowed down or blocked everything.

The release also brings emoji autocompletion via shortcode (:heart: for ❤️, disableable with emojiCompletionEnabled), a cap on concurrent subagents (default 20, configurable with CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS) and a ban on nested subagents by default. The tool learns to set its own limits.

In detail

The change that matters most in this release isn’t a new feature, but a warning. Until now, if the disk filled up mid-session or an inherited environment variable (maybe from a corporate setup) disabled session saves, Claude Code would lose transcripts without saying so. You’d only notice when you tried --resume or --continue and found the session empty.

Now an alert appears. For anyone running Claude Code in automated pipelines or on shared machines, this changes how you operate: instead of discovering the damage afterward, you can react immediately, free up space or fix the configuration.

The MCP tool memory leak was the classic silent bug. When an MCP tool returned long output, Claude Code truncated it on screen to avoid cluttering the terminal, but kept the full version in memory for the rest of the session. In a half-hour session with ten calls to external tools, the memory footprint grew for no reason. The fix releases the memory after truncation.

The cap on concurrent subagents (default 20, override with CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS) and the ban on nested subagents by default close another front: previously a single message could launch unlimited agents in the background, each of which could in turn launch others. In theory that was power, in practice it was a reliable way to saturate the machine and burn budget. Setting a default ceiling is a conservative choice that protects anyone using the tool without custom configuration.

The release also fixes an OOM on CLAUDE.md and SKILL.md: if the frontmatter contained many brace groups in paths, expansion could hang or crash the CLI on startup. Now expansion has a budget. And it fixes a bug where --max-budget-usd wouldn’t stop background agents once the budget was exceeded: a cost allocation that didn’t work when it mattered most.

The overall tone of the release confirms the pattern from recent weeks: no flashy features, but a sequence of fixes that remove the ways the tool fails silently. For anyone evaluating whether to bring Claude Code into a recurring workflow, this matters more than any announcement.

Type to search across course, playbooks, skills, papers…