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.
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