Claude Code v2.1.246 release notes on GitHub Image: Anthropic / github.com/anthropics/claude-code
by Michael Joiner

Claude Code 2.1.246 Fixes Transcript Slowdowns, Background Sessions, and Over 30 Bugs

Anthropic's latest Claude Code release addresses a severe diff rendering slowdown, background session failures, fullscreen scrolling issues, and a long list of MCP, plugin, and authentication fixes.

Share

Claude Code 2.1.246 dropped today (August 26) with one of the more comprehensive patch releases in recent weeks. The update addresses a diff rendering performance issue that was making certain transcripts crawl, a background session failure that affected users whose working directory had been deleted or whose machine had gone to sleep, and more than 30 individual bug fixes across MCP, plugins, theming, authentication, and file handling.

The transcript slowdown is fixed

If you were seeing Claude Code freeze or go sluggish when processing diffs with very long single lines, this was the cause. The rendering path was materializing full base64 strings, which could be megabytes long, into the terminal display. The fix truncates base64 content in diffs before rendering. It’s one of those bugs that only surfaces in specific workflows, but when it does, it makes sessions basically unusable.

Background sessions are reliable again

Two separate failures in background session handling are resolved here. The first: sessions launched from a directory that no longer exists would fail to open after 45 seconds. The second: when multiple Claude Code processes tried to reinstall the npm package simultaneously, they’d race each other and produce EACCES permission errors. Both are fixed.

New: Auto mode tab in /permissions

The /permissions command now has an Auto mode tab where you can view and edit the classifier rules that govern which tool calls auto mode approves or denies. Previously this was opaque, especially for long sessions where auto mode might quietly start declining calls. Now you can inspect and adjust the rules directly.

Turn completion time in the status line

The end-of-turn duration line now includes the wall-clock time at completion, formatted like ✻ Sautéed for 23s · done 6:05 PM. Small thing, but useful when you’re trying to correlate a Claude Code session with logs from another system.

Bash tool latency improvement

Bash tool calls are faster. The underlying change: snapshot functions are now replayed directly instead of going through a base64 subshell per function. This shaves a measurable amount of latency from every shell command in a session that has accumulated many function definitions.

Subagents hitting maxTurns now say so

When a subagent stops because it hit the maxTurns limit, its result is now marked as partial with a note suggesting you continue via SendMessage. Previously the output came back silently truncated, leaving no indication that the subagent hadn’t actually finished.

Non-interactive sessions auto-continue on errors

Sessions running in non-interactive mode (-p flag) will now auto-continue if a response gets cut off by a server error, connection drop, or stall, rather than terminating with an error. This matters for automation pipelines where a transient API hiccup would previously require external retry logic.

/cd now applies settings immediately

The /cd command now picks up project settings, hooks, .mcp.json servers, skills, and agents for the new directory right away, rather than waiting for a session resume. If you switch directories mid-session and want to use that directory’s Claude configuration, you no longer need to restart.

MCP fixes

Several MCP-specific issues are resolved:

  • Tool calls interrupted by incoming messages now show correctly as interrupted instead of “Ran 1 shell command”
  • Tool arguments are sent as proper JSON types when the schema is empty, not as JSON strings
  • Auto mode no longer denies tool calls as “temporarily unavailable” on very large sessions
  • Tools marked requiresUserInteraction no longer offer a “don’t ask again” option

Plugin fixes

The plugin system had accumulated a few rough edges that are now smoothed out:

  • Plugin cache was creating duplicate SHA-named directories
  • Skills with a <plugin>: prefix were showing doubled prefixes in the slash menu
  • claude plugin update was failing with bare plugin names
  • Plugins with UTF-8 BOM in plugin.json were failing to install
  • /reload-plugins was reporting 0 skills for certain plugin structures
  • Hook error messages were showing the literal string ${CLAUDE_PLUGIN_ROOT} instead of the resolved path

Other notable fixes

  • The Write tool was reporting “Out of memory” when overwriting large files
  • /rename was replacing custom theme prompt border colors with the default cyan
  • Custom theme diff colors were being ignored
  • Keybindings with unknown action names were silently killing keys instead of falling back to defaults
  • The /stats activity heatmap was showing activity one day off in certain timezones
  • Expired cached JWT tokens weren’t refreshing before the next API request
  • Cloud sessions and /ultrareview were occasionally starting with the wrong set of changes

The full changelog is at code.claude.com/docs/en/changelog.

Share