Claude Code 2.1.121: Memory Fixes, MCP Retries, Fullscreen UX

Claude Code 2.1.121 fixes critical memory leaks in image processing and transcript handling, adds MCP auto-retry on startup errors, and improves fullscreen UX with scrollable dialogs and better URL handling.

Claude Code 2.1.121: Memory Fixes, MCP Retries, Fullscreen UX

TL;DR

  • Fixed unbounded memory growth when processing images and long transcripts — critical for extended sessions
  • MCP servers now auto-retry on transient startup errors instead of staying disconnected
  • Fullscreen mode improvements: scroll no longer jumps, dialogs are scrollable, URLs click correctly
  • Bash tool now survives directory deletion mid-session; `/usage` refreshes stale OAuth tokens automatically

New

  • alwaysLoad option for MCP servers — skip tool-search deferral and always expose all tools from a server
  • claude plugin prune — remove orphaned auto-installed plugin dependencies; `plugin uninstall --prune` cascades
  • Type-to-filter search at /skills — find skills in long lists without scrolling
  • PostToolUse hooks for all tools — replace tool output via `hookSpecificOutput.updatedToolOutput`, no longer MCP-only
  • Scrollable terminal dialogs — arrow keys, PgUp/PgDn, home/end, and mouse wheel work in fullscreen and non-fullscreen
  • Vertex AI mTLS support — X.509 certificate-based Workload Identity Federation for ADC
  • LSP diagnostic expansion — click/ctrl+o to expand diagnostic summaries with hint text
  • OpenTelemetry enhancements — added `stop_reason`, `gen_ai.response.finish_reasons`, and `user_system_prompt` to LLM spans
  • VSCode voice dictation language setting — respects `accessibility.voice.speechLanguage` when no Claude Code language configured
  • VSCode /context dialog — native token usage dialog replaces inline display

Fixed

  • Unbounded memory growth (multi-GB RSS) when processing many images in a session
  • /usage leaking up to ~2GB of memory on machines with large transcript histories
  • Memory leak when long-running tools fail to emit a clear progress event
  • Bash tool becoming permanently unusable when the directory Claude was started in is deleted or moved mid-session
  • --resume crashing on startup in external builds
  • --resume failing on large sessions when a transcript line was corrupted by unclean shutdown — corrupt line now skipped
  • thinking.type.enabled error when using Bedrock application inference profile ARNs
  • Microsoft 365 MCP OAuth failing with duplicate or unsupported prompt parameter
  • Scrollback duplication when pressing Ctrl+L or triggering redraw in non-fullscreen mode on tmux, GNOME Terminal, Windows Terminal, and Konsole
  • claude.ai MCP connectors silently disappearing on transient auth errors at startup
  • "Always allow" rules for built-in tools in remote sessions not surviving worker restarts
  • NO_PROXY not being respected for all HTTP clients in native build
  • Managed settings approval prompt exiting session even when accepted — now applies and continues
  • /usage returning "rate limited" after stale OAuth token — now refreshes automatically
  • Invalid legacy enum values in settings.json invalidating entire settings file
  • /usage dialog content clipped when no-flicker mode is off
  • /focus showing "Unknown command" when fullscreen renderer is off — now explains how to enable
  • Embedded grep/find/rg shell wrappers failing when running binary is deleted mid-session — now falls back to installed tools
  • Peak file descriptor usage during find in Bash tool on large directory trees

Breaking Changes

  • None

Update: claude upgrade or download the latest version from code.claude.com

Source: Claude Code