releases.shpreview
Anthropic/Claude Code

Claude Code

Mon
Wed
Fri
JunJulAugSepOctNovDecJanFebMarAprMay
Less
More
Releases80Avg24/moVersionsv2.1.51 to v2.1.152
Code review auto-fix; skills reload mid-session; Vim reverse search

What's changed

  • /code-review --fix now applies review findings to your working tree after the review, surfacing reuse, simplification, and efficiency suggestions; /simplify now invokes /code-review --fix
  • Skills and slash commands can now set disallowed-tools in frontmatter to remove tools from the model while the skill is active
  • Added /reload-skills command to re-scan skill directories without restarting the session
  • SessionStart hooks can now return reloadSkills: true to re-scan skill directories, making skills installed by the hook available in the same session
  • SessionStart hooks can now set the session title via hookSpecificOutput.sessionTitle on startup and resume
  • Added a MessageDisplay hook event that lets hooks transform or hide assistant message text as it is displayed
  • Added pluginSuggestionMarketplaces managed setting: admins can allowlist org marketplaces whose plugins may be suggested via context-aware tips
  • claude plugin marketplace remove now accepts --scope user|project|local for symmetry with marketplace add, install, and uninstall
  • Claude Code now switches to your configured --fallback-model for the rest of the session when the primary model is not found, instead of failing every request
  • Auto mode no longer requires opt-in consent
  • Vim mode: / in NORMAL mode now opens reverse history search (like Ctrl+R), matching bash/zsh vi-mode
  • The /usage breakdown now includes large session files; files are scanned with a streaming read so memory usage stays flat
  • Thinking summaries in the collapsed group now stay readable for at least 3 seconds, render as markdown, and cap at 10 lines (Ctrl+O shows the full thinking)
  • In fullscreen mode, the "Thinking for Ns" indicator now counts up live while the model is thinking, and keeps its value if you interrupt mid-thought
  • Simplified the Workflow tool's inline progress display — live agent counts now show only in the persistent workflow status row below the prompt
  • The post-response timer now shows "Waiting for N background agents/workflows to finish" when backgrounded agents or workflows are still running, and reports the cumulative time once their results are processed
  • Added the session entrypoint as an OpenTelemetry metric attribute (app.entrypoint, opt-in via OTEL_METRICS_INCLUDE_ENTRYPOINT=true)
  • Fixed terminal styling degrading in very long sessions by recycling the renderer's style pool
  • Fixed the sandbox-enabled warning not appearing in condensed startup mode — it now shows in every layout
  • Fixed the loading spinner showing "still thinking"/"almost done thinking" while a tool is running, and reset the thinking status to "thinking" after each tool
  • Fixed focus mode showing a spurious "N messages hidden" count on turns with no hidden activity
  • Fixed clicking a link inside an expanded tool result collapsing the section instead of opening the link
  • Fixed markdown table cell borders inheriting the color of inline code, wrapped continuation lines losing their style, and empty header cells showing a label in the narrow-terminal stacked layout
  • Fixed plugin MCP servers with the same command but different environment variables being incorrectly deduplicated
  • Fixed /doctor reporting "marketplace not found" or "plugin not found" for stale enabledPlugins entries referencing removed marketplaces or dropped plugins
  • Fixed plugins that track a git branch silently no longer receiving updates after the plugin registry was rebuilt
  • Fixed remote MCP servers failing to connect in Claude Code Remote sessions when the egress proxy is enabled
  • Fixed the effort-change confirmation dialog appearing when the conversation has no messages or when switching between effort levels that resolve to the same underlying value
  • Fixed the Agent tool description referencing an agent list that is never delivered when running with --bare or with attachments disabled
  • Fixed a background worker crash in claude agents when accepting a stale permission prompt after a subagent was cancelled
  • Fixed cache_creation_input_tokens reporting as 0 in transcript and result usage when the API reports cache writes only via the nested cache_creation breakdown
  • Fixed the PushNotification tool incorrectly reporting "Mobile push not sent (Remote Control inactive)" in SDK-hosted sessions when Remote Control is enabled
  • Fixed sessions getting stuck after a model or login switch left stale thinking-block signatures in history; now stripped proactively with a retry safety-net
Claude Code v2.1.150 internal release

What's changed

  • Internal infrastructure improvements (no user-facing changes)
PowerShell permission bypass closed; sandbox allowlist scoped

What's changed

  • /usage now shows a per-category breakdown of what's driving your limits usage — skills, subagents, plugins, and per-MCP-server cost
  • /diff detail view can now be scrolled with the keyboard (arrows, j/k, PgUp/PgDn, Space, Home/End)
  • Markdown output now renders GFM task list checkboxes (- [ ] todo / - [x] done) instead of plain bullets
  • Enterprise: added the allowAllClaudeAiMcps managed setting to load claude.ai cloud MCP connectors alongside managed-mcp.json
  • Fixed a PowerShell permission bypass: built-in cd functions (cd.., cd\, cd~, X:) changed the working directory undetected, letting a later command read outside the workspace
  • Fixed the sandbox write allowlist in git worktrees covering the entire main repository root instead of only the shared .git directory (with hooks/ and config denied)
  • Fixed PowerShell prefix/wildcard allow rules (e.g. PowerShell(dotnet.exe build *)) not pre-approving native executables and scripts
  • Fixed a permission-analysis gap where the parser trusted stale variable-tracking values for PWD/OLDPWD/DIRSTACK across cd/pushd/popd
  • Fixed find in the Bash tool exhausting the macOS system file/vnode table and crashing the host on large directory trees
  • Fixed the managed-settings approval dialog leaving the terminal frozen after accepting at startup
  • Fixed /ultraplan and remote session creation failing with "Could not capture uncommitted changes" when the working tree has no real changes
  • Fixed otelHeadersHelper failing silently when the script path contains spaces; helper failures are now reported in /doctor and the debug log
  • Fixed the thinking spinner staying amber across tool calls and onto fresh thinking bursts
  • Fixed collapsed Bash output reporting the wrong hidden-line count for outputs with many short lines
  • Fixed slash-command argument-hint clipping trailing typed characters when the hint overflows the input box
  • Fixed argument-hint and progressive arg suggestions not appearing after Tab-completing a skill whose frontmatter name: differs from its directory basename
  • Fixed the status bar showing the user's baseline /effort setting instead of the effort level applied by skill/agent effort: frontmatter
  • Fixed Ctrl+O transcript view freezing at the moment it was opened instead of tailing new messages
  • Fixed editing a recalled prompt-history entry losing the edit when navigating further up/down with arrow keys
  • Fixed /config exit summary reporting phantom changes to auto-compact and theme when toggling unrelated settings
  • Fixed /insights crashing when cached session-meta files are missing optional fields
  • Fixed malformed PowerShell and History tool calls with missing input being misclassified as reads in transcript collapsing
  • Fixed renaming a Remote Control session from claude.ai or the Claude mobile app not updating the local session name for claude --resume
  • Fixed a race where a just-submitted prompt could appear twice in the up-arrow history
  • Fixed tapping the "Jump to bottom" pill in fullscreen mode not dismissing it immediately
  • Improved /feedback reports to include the conversation that happened before context compaction, making issues from earlier in long sessions easier to triage
Bash tool exit code 127 regression fixed

What's changed

  • Fixed the Bash tool returning exit code 127 on every command for some users (a regression introduced in 2.1.147)
Workflow tool for multi-agent orchestration; sandbox escapes hardened

What's changed

  • Added the Workflow tool for deterministic multi-agent orchestration. It is off by default — set CLAUDE_CODE_WORKFLOWS=1 to enable
  • Pinned background sessions (Ctrl+T in claude agents) now stay alive when idle, are restarted in place to apply Claude Code updates, and are shed under memory pressure only after non-pinned sessions
  • Renamed /simplify to /code-review. It now reports correctness bugs at a chosen effort level (e.g., /code-review high); pass --comment to post findings as inline GitHub PR comments. The old cleanup-and-fix behavior has been removed
  • Hardened REPL and Workflow tool sandboxes against prototype-pollution and thenable-based escapes
  • Improved auto-updater: retries transient network failures, reports specific error categories and OS error codes on failure, and shows the current version when an update fails
  • Improved diff rendering performance for large file edits
  • Prompt history no longer records consecutive duplicate entries — recalling a prompt with arrow-up and submitting it again won't add another copy
  • Fixed enterprise login restrictions (forceLoginOrgUUID and forceLoginMethod managed-settings) not being enforced against third-party-provider and API-key sessions
  • Fixed & in ! command output displaying as &, which broke copy-pasting URLs from commands like gcloud auth login on headless machines
  • Fixed unknown slash commands silently doing nothing in headless/SDK mode — they now show an error message
  • Fixed /help rendering a broken tab header and showing only one command per page on small terminals when not in fullscreen mode
  • Fixed shell snapshot dropping user functions whose names start with a single underscore, which broke aliases referencing them
  • Fixed plugin agents that declare multiple Agent(...) types in tools: frontmatter dropping all but the last entry
  • Fixed hook if conditions like PowerShell(git push*) never matching — only PowerShell(*) worked
  • Fixed PowerShell tool dropping output for commands that rely on the default formatter
  • Fixed: on Windows, "Yes, and don't ask again" for a PowerShell script invocation now writes a rule that actually matches on subsequent runs
  • Fixed PowerShell tool failing on Windows with exit code 1 when pwsh is installed via winget or the Microsoft Store
  • Fixed /effort opening with the slider on the wrong level — it now starts at your current effort
  • Fixed paginating MCP servers dropping resources, templates, and prompts past page 1
  • Fixed full-screen strobing in attached background sessions on Windows Terminal while Claude is streaming
  • Fixed: on Windows, removing a background-job worktree no longer follows NTFS junctions into the main repo
  • Fixed /background refusing sessions whose only typed input was a skill or custom slash command
  • Fixed auto mode suppressing AskUserQuestion when the user or a skill explicitly relies on it; the auto-mode classifier now sees the user's answers as intent signal
  • Fixed /theme "New custom theme" and color editor dialogs not responding to Esc
  • Fixed an uncaught exception at the end of streaming sessions when running via the Agent SDK
  • Fixed a rare hang when waiting for scroll to settle on Windows
  • Fixed stale and doubled rows in the agent view list on Windows when background session results contain wide (CJK) characters
  • Fixed pasted text being delivered to agents as an unreadable [Pasted text #N] placeholder instead of the actual content
  • Fixed plugin component counts in claude plugin details and /plugin being doubled when a plugin's manifest listed paths overlapping its default directories
  • Fixed backgrounded sessions re-prompting for tool permissions you already granted with "don't ask again"
  • Fixed GNOME Terminal right-click and middle-click paste not inserting text
  • Fixed CLAUDE_CODE_SUBAGENT_MODEL not applying to teammate processes spawned by agent teams
  • Fixed slash commands followed by a tab or newline being treated as an unknown command
  • Fixed several spacing and layout glitches in the /plugin, /status, /mobile, /sandbox, and /permissions menus
  • Fixed stripped images prompting the model to repeatedly re-read media that was no longer present
PowerShell tool works with winget/Store; MCP pagination fixed

What's changed

  • Renamed /simplify to /code-review with an optional effort level (e.g. /code-review high)
  • Auto mode no longer suppresses AskUserQuestion when the user or a skill explicitly relies on it
  • Fixed Windows PowerShell tool failing with "command line is invalid" when pwsh is installed via winget or the Microsoft Store (regression in v2.1.124)
  • Fixed MCP resources/list, resources/templates/list, and prompts/list dropping items past page 1 on paginating servers
  • Fixed full-screen strobing in attached background sessions on Windows Terminal while Claude is streaming
  • Fixed the auto-updater status line not showing your current version when an update fails
  • Fixed on Windows, removing a background-job worktree no longer follows NTFS junctions into the main repo
  • Fixed /background refusing sessions whose only typed input was a skill or custom slash command
  • Fixed backgrounded sessions re-prompting for tool permissions you already granted with "don't ask again"
  • Fixed /theme color editor and "New custom theme" dialogs not responding to Esc
  • Fixed an uncaught exception at the end of streaming sessions when running via the Agent SDK
  • Fixed forceLoginOrgUUID and forceLoginMethod managed-settings policies not being enforced against third-party-provider and API-key sessions
  • Fixed GNOME Terminal right-click and middle-click paste not inserting text
  • Fixed CLAUDE_CODE_SUBAGENT_MODEL not being forwarded to child processes in multi-agent sessions
  • Improved auto-updater reliability: native version checks and downloads now retry transient network failures instead of failing immediately
  • Improved diff rendering performance for large file edits
Permission-prompt bypass closed; non-ASCII names now work

What's changed

  • Added claude agents --json to list live Claude sessions as JSON for scripting (tmux-resurrect, status bars, session pickers)
  • Added agent_id and parent_agent_id attributes to claude_code.tool OTEL spans, and fixed trace parenting so background subagent spans nest under the dispatching Agent tool span
  • Status line JSON input now includes GitHub repo and PR information when detected
  • /plugin Discover and Browse screens now show a plugin's commands, agents, skills, hooks, and MCP/LSP servers before installation
  • claude agents terminal tab title now shows the awaiting-input count so an alt-tabbed window tells you when an agent needs attention
  • Slash command and @-mention suggestion list now supports mouse hover and click in fullscreen mode
  • Stop and SubagentStop hook input now includes background_tasks and session_crons fields
  • Fixed a permission-prompt bypass where bare variable assignments to non-allowlisted environment variables in Bash commands were auto-approved
  • Fixed MCP prompt slash commands showing raw server validation errors when a required argument is omitted — the error now names the missing argument and shows expected usage
  • Fixed the spinner and elapsed-time display freezing until a keypress after the terminal was resized or refocused
  • Fixed the cross-project resume hint failing in default Windows PowerShell 5.1 — Windows now uses ; as the command separator
  • Fixed voice push-to-talk not working in the agent view's reply pane
  • Fixed task lists rendering in random order when several tasks are created at once
  • Fixed stale "Failed to install Anthropic marketplace" banner showing when the marketplace is already installed
  • Fixed the PR badge in the footer not updating immediately after gh pr create and other PR-state-changing commands run in-session
  • Fixed Agent Teams teammates with non-ASCII names failing every API call due to invalid header encoding
  • Fixed /review using a deprecated projectCards GraphQL query that errored on repos with Classic Projects
  • Fixed claude plugin validate not flagging skills: entries that point at a file instead of a directory — the error now suggests the parent directory
  • Fixed an infinite loop where a skill using context: fork could repeatedly re-invoke itself instead of running
  • Improved the Read tool to return a truncated first page with a "PARTIAL view" notice instead of a hard error when a whole-file read exceeds the token limit
Background sessions no longer crash on Full Disk Access folders; terminal rendering stabilized

What's changed

  • Added /resume support for background sessions — sessions started via claude --bg or agent view now appear alongside interactive ones, marked with bg
  • Added elapsed duration to background subagent completion notifications (e.g. "Agent completed · 3h 2m 5s")
  • The /plugin browse and discover panes now show when a plugin was last updated
  • /model now changes the model for the current session only; press d in the model picker to set a default for new sessions
  • Renamed "extra usage" to "usage credits" across CLI copy; /extra-usage is now /usage-credits (old name still works)
  • Fixed startup hanging up to 75s when api.anthropic.com is unreachable (captive portal, firewall, VPN issues) — side-channel API calls now time out after 15s
  • Fixed garbled terminal output after a missed window-resize event (e.g. dragging a VS Code split-pane divider) — now self-heals on the next frame instead of requiring Ctrl+L
  • Fixed progressive terminal display corruption (stale/garbled glyphs) that could appear in very long sessions and only cleared on terminal resize or restart
  • Reduced terminal rendering glitches in VS Code by reducing spinner animation color count
  • Fixed macOS background sessions crashing with "exit 1 before init" when the project lives under a Full Disk Access-protected folder (regression in 2.1.143)
  • Fixed an unrecoverable conversation when reading a file whose image extension doesn't match its contents (e.g. HTML saved as .png) — now falls back to text
  • Fewer spurious tool errors during search: head/tail file views now satisfy the read-before-edit check, and a "no matches" result (exit code 1) from egrep, fgrep, git grep, or git diff is no longer reported as a command failure
  • Fixed /branch failing with "No conversation to branch" after entering a worktree or in some background sessions
  • Fixed pressing Escape in the AskUserQuestion notes field aborting the turn instead of returning to answer selection
  • Fixed model selection not applying when changed via the IDE model picker or applyFlagSettings after startup
  • Resumed sessions now keep the model they were using instead of picking up another session's /model choice
  • Fixed Bedrock and Vertex users unable to select "Opus (1M context)" from the /model picker (regression in v2.1.129)
  • Fixed remote-session login failing with "Can't access this organization" for users with forceLoginMethod and forceLoginOrgUUID set
  • Fixed MCP servers with paginated tools/list responses only returning the first page, silently dropping tools
  • Fixed MCP images with unsupported MIME types (e.g. SVG) breaking the conversation — now saved to disk and referenced in the tool result
  • Fixed file descriptor exhaustion when a build runs inside a skill directory — non-.md files no longer trigger skill reloads
  • Fixed session title being generated from plugin monitor output instead of the user's first prompt
  • Fixed Skill tool failing with permission error in headless mode (regression in v2.1.141)
  • Fixed plugins enabled in your own settings showing "not cached" errors after first load on a fresh machine; plugins enabled only by a project's .claude/settings.json now show an actionable claude plugin install hint
  • Fixed claude mcp list silently reporting no servers when .mcp.json can't be parsed (e.g. using VS Code's "servers" key instead of "mcpServers") — now shows configuration errors
  • Fixed background side-queries on custom ANTHROPIC_BASE_URL setups and Bedrock Mantle not using Haiku — now falls back correctly when a first-party API key is configured or no Haiku model is set
  • Fixed scrolling in attached background sessions on Windows — PgUp/PgDn, mouse wheel, and Ctrl+O transcript navigation now work
  • Fixed a crash when closing the terminal while attached to a background session
  • Fixed ! <cmd> exec sessions not responding to Ctrl+C while attached — now interrupts the running command
  • Fixed agent view shell-command rows lingering under Working after completion, and pressing Enter on a completed row re-running the command after its output expired
  • Fixed on Windows, pressing ← in claude agents leaving the list unresponsive to keyboard input
  • Fixed ghost characters at the left edge when switching panes in Agent View on Windows Terminal with CJK content
  • /bg and -detach now preserve directories added via /add-dir
  • Fixed Edit/Write refusing with "background session hasn't isolated its changes yet" right after detaching a session that was already editing in place
  • Fixed claude respawn <id> on a stopped background session showing "stopped" instead of running
  • Fixed /resume picker not showing sessions forked from a background session
  • Fixed opening a session from claude agents or running claude logs <id> hanging when the background service is unresponsive — now times out after 10s with a recovery hint
  • Fixed background Bash tasks spawned by subagents staying "Running" in SDK task panels after the process exits
  • Fixed completed or stopped background sessions briefly failing to wake being permanently marked as a startup crash
  • Fixed markdown links in claude agents attached sessions rendering as plain text instead of clickable hyperlinks
  • Fixed custom spinnerVerbs applying to the post-turn duration message — past-tense built-ins like "Worked for 5s" are restored there
  • claude agents / --bg rejection messages now name the specific gate (non-TTY, env var, or setting) instead of a generic message
  • claude --bg --name <label> now echoes the name in the post-spawn confirmation
  • claude agents: renaming a background session with Ctrl+R now updates the attached session's banner immediately
  • Background session worktree isolation guard now applies for non-git VCS users with WorktreeCreate hooks configured
  • Plugin marketplace add/update now respects CLAUDE_CODE_PLUGIN_PREFER_HTTPS
  • /plugin now returns to the Installed list after enabling, disabling, or uninstalling a plugin
  • /doctor now shows an exec-form example when a command hook is missing the command field
  • Skill-listing truncation is no longer shown as a startup notification — run /doctor for the full breakdown
  • Improved recovery from rare pre-response stream stalls — now retries streaming once instead of falling back to a slower non-streaming request
  • Improved SDK/headless MCP startup: pre-wait now overlaps startup instead of blocking before the first turn (up to 2s faster with slow MCP servers)
  • The post-survey follow-up hint now appears after every non-dismiss survey response with context-aware copy, making it easier to share more detail via /feedback.
Plugin dependency enforcement; background sessions preserve model settings

What's changed

  • Added plugin dependency enforcement: claude plugin disable now refuses when another enabled plugin depends on the target (with a copy-pasteable disable-chain hint), and claude plugin enable force-enables transitive dependencies
  • Added projected context cost (per-turn and per-invocation token estimates) to the /plugin marketplace browse pane
  • Added worktree.bgIsolation: "none" setting to let background sessions edit the working copy directly without EnterWorktree, for repos where worktrees are impractical
  • PowerShell tool now passes -ExecutionPolicy Bypass. Opt out with CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY=1
  • Background sessions now preserve the model and effort level you set after waking from idle
  • Shift+Tab in attached agent sessions now includes auto mode in the cycle
  • Fixed a corrupt .credentials.json with a non-array scopes value hanging the CLI on startup or silently aborting OAuth token refresh
  • Fixed right-click paste in claude agents on Windows Terminal and WSL
  • Fixed stop hooks that block repeatedly looping forever — the turn now ends with a warning after 8 consecutive blocks (override via CLAUDE_CODE_STOP_HOOK_BLOCK_CAP)
  • Fixed Esc/Ctrl+C not cancelling a pending /loop wakeup while Claude is idle between iterations
  • Fixed /goal evaluator firing while background shells or delegated subagents are still running
  • Fixed NO_COLOR/FORCE_COLOR in settings.json env stripping Claude Code's own UI colors — they now apply to subprocesses only
  • Fixed agent view spawning repeated PowerShell processes on Windows when listing sessions
  • Fixed /bg without a prompt sending "continue" to the forked session — the fork now waits for input
  • Fixed --agent <name> not finding plugin-contributed agents without the plugin: prefix
  • Fixed deleting a session from agent view not removing its transcript file
  • Fixed stale-fragment rendering when scrolling in attached background sessions on Windows Terminal
  • Fixed background agents false-positive worker-stall detection storm after host sleep or macOS App Nap
  • Fixed 5xx error messages pointing at status.claude.com instead of naming the configured gateway or cloud provider
  • The PowerShell tool is now enabled by default on Windows for Bedrock, Vertex, and Foundry users. Opt out with CLAUDE_CODE_USE_POWERSHELL_TOOL=0.
  • claude agents now accepts --add-dir, --settings, --mcp-config, and --plugin-dir and applies them to the dashboard and to background sessions dispatched from it
  • claude agents accepts --permission-mode, --model, --effort, and --dangerously-skip-permissions to set defaults for sessions dispatched from the view
  • claude --bg --dangerously-skip-permissions now persists across retire→wake
  • Fixed background sessions silently capturing IDE file references into the warm spare's input, which caused the reference to be prepended to the next prompt dispatched from claude agents
  • Worktree cleanup no longer falls back to rm -rf when git worktree remove fails, preventing loss of gitignored or in-progress files
  • Fixed background-job sessions on macOS getting "Operation not permitted" errors when reading files under ~/Documents, ~/Desktop, or ~/Downloads, even with Full Disk Access granted.
  • /bg now preserves --mcp-config, --settings, --add-dir, --plugin-dir, and --strict-mcp-config, so backgrounded sessions keep their MCP servers and settings across respawn.
  • Background sessions launched from claude agents now honor permissions.defaultMode from settings.json (was previously overridden to auto mode)
  • Fixed: on Windows, pressing ← in claude agents while a response was streaming could leave the agents list unresponsive to all input
  • /bg and -detach now preserve --fallback-model, so backgrounded workers degrade to the fallback model on overload instead of hard-failing.
  • /bg and -detach now preserve --allow-dangerously-skip-permissions, so the forked worker keeps bypass-permissions available in its Shift+Tab cycle.
  • Fixed: background daemon spawn now falls back to the running binary when the ~/.local/bin/claude launcher is missing or non-executable
  • Fixed claude agents --allow-dangerously-skip-permissions defaulting dispatched sessions to bypass mode instead of making it available in the permission cycle
Fast mode upgraded to Opus 4.7; MCP tool timeout fixed

What's changed

  • Added new claude agents flags: --add-dir, --settings, --mcp-config, --plugin-dir, --permission-mode, --model, --effort, and --dangerously-skip-permissions to configure dispatched background sessions
  • Fast mode now uses Opus 4.7 by default (previously Opus 4.6). Set CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE=1 to pin fast mode to Opus 4.6
  • Plugins with a root-level SKILL.md and no skills/ subdirectory are now surfaced as a skill
  • The /plugin details pane and claude plugin details now show LSP servers a plugin provides
  • /web-setup warns before replacing an existing GitHub App connection
  • Fixed MCP_TOOL_TIMEOUT not raising the per-request fetch timeout for remote HTTP and SSE MCP servers, which capped tool calls at 60 seconds regardless of the configured value
  • Fixed background sessions not recognizing pre-existing git worktrees, blocking Edit while EnterWorktree refused to create a duplicate
  • Fixed background sessions disappearing and daemon reconnect failing after macOS sleep/wake — the daemon now detects clock jumps instead of treating them as elapsed idle time
  • Fixed daemon not exiting cleanly after the binary is upgraded (e.g. brew upgrade), causing dispatched agents to crash-loop on the deleted path
  • Fixed background agents crash-looping when the Claude-in-Chrome extension is connected without a shared tab
  • Fixed clicking links in an attached claude agents session — the background worker's headless browser shim no longer applies while attached
  • Fixed claude agents "v to open in editor" using the daemon's default editor instead of your shell's $EDITOR/$VISUAL
  • Fixed claude agents deadlocking on Windows with network-drive working directories; Ctrl+C now works during startup
  • Fixed background-color bleed when attaching to a claude agents session from Apple Terminal or other 256-color-only terminals
  • Fixed claude --bg --dangerously-skip-permissions not persisting across retire/wake
  • Fixed session titles being derived from the URL when the first message is a link
  • Fixed redundant set_model requests from remote clients injecting duplicate /model breadcrumbs into the transcript
  • Fixed plugins using skills: ["./"] showing a false "path escapes plugin directory" error
  • Fixed plugin cache cleanup deleting the active plugin version directory when no installation metadata is present
  • Fixed /plugin browse pane showing "0 installs" for newly published plugins
  • Fixed plugin advisories not naming every plugin.json key that shadows a default folder
  • Improved reactive compaction: the first summarize attempt now seeds from the original request's overflow size, avoiding a wasted near-full-context retry
  • Improved hook configuration error: configuring a prompt- or agent-type hook for SessionStart/Setup/SubagentStart now shows a clear "use a command-type hook instead" error
  • Removed stale /model claude-sonnet-4-20250514 suggestion from Usage Policy refusal messages
Permission prompts auto-dismiss on mode switch; background agents move to Completed properly

What's changed

  • Added terminalSequence field to hook JSON output so hooks can emit desktop notifications, window titles, and bells without a controlling terminal
  • Added CLAUDE_CODE_PLUGIN_PREFER_HTTPS to clone GitHub plugin sources over HTTPS instead of SSH, for environments without a GitHub SSH key
  • Added ANTHROPIC_WORKSPACE_ID environment variable for workload identity federation — scopes the minted token to a specific workspace when the federation rule covers more than one
  • Added claude agents --cwd <path> to scope the session list to a directory
  • /feedback can now include recent sessions (last 24 hours or 7 days) for issues spanning more than the current session
  • Rewind menu: added "Summarize up to here" to compress earlier context while keeping recent turns intact
  • Auto mode permission dialog now explains when a permissions.ask rule caused the prompt
  • Restored the "view diff in your IDE" option on file-edit permission prompts when an IDE is connected
  • Background agents launched via /bg or ←← now preserve the current permission mode instead of reverting to default
  • claude agents: agents that finish work but leave a background shell running now move to Completed instead of staying under Working
  • Improved spinner feedback during long thinking periods — the spinner now warms to amber after 10 seconds to signal Claude is still working
  • Improved plugin menu navigation: /Tab switch tabs, moves to the tab strip, and tab headers and search box are clickable in fullscreen mode
  • Fixed background side-queries sending an unavailable Haiku model ID on Bedrock/Vertex/Foundry/gateway when no ANTHROPIC_SMALL_FAST_MODEL override is set — now falls back to the main-loop model
  • Fixed claude daemon status and /doctor on Windows throwing when the daemon pipe key file is locked or unreadable — now shows the underlying error instead of an opaque failure
  • Fixed claude agents showing the agent-type list instead of the dashboard when launched through a wrapper that adds flags
  • Fixed claude agents opening a crashed session firing redundant dispatches when the working directory was deleted
  • Fixed background jobs on a custom ANTHROPIC_BASE_URL gateway not getting auto-named — the namer now uses the main model when no Haiku model is configured
  • Fixed /model in one session silently changing the autocompact threshold in other concurrent sessions
  • Fixed switching permission mode while a tool-permission prompt is open not auto-dismissing the prompt when the new setting permits the tool
  • Fixed pressing Enter while a permission/dialog prompt is open also submitting text in the input box
  • Fixed hooks receiving a non-existent transcript_path after EnterWorktree switches the working directory
  • Fixed markdown tables with cell wrapping falling back to the vertical key-value layout instead of rendering as a bordered grid (regression in 2.1.136)
  • Fixed cancelled prompts being removed from Up-arrow history when auto-restored into the input box, avoiding duplicate entries
  • Fixed prompts cancelled with Ctrl+C/Esc before any response being dropped from Up-arrow history
  • Fixed Ctrl+C not interrupting a running turn while in vim INSERT/VISUAL mode
  • Fixed alternative chat:submit keybindings (e.g. meta+enter, ctrl+enter) not working when enter is rebound to chat:newline
  • Fixed prompt suggestions being silently disabled when an output style was configured
  • Fixed spinnerVerbs setting not being honored in turn-completion messages
  • Fixed AskUserQuestion popup hiding the last line of preceding chat content
  • Fixed Web Search status showing "Did 0 searches" when searches returned errors
  • Fixed multi-line statusline output dropping or corrupting rows when any line exceeds terminal width
  • Fixed light-ansi theme using invisible white for diff context lines on light backgrounds — now uses black
  • Fixed error overlay dumping minified bundle source that hid the original error message
  • Fixed pressing Enter after typing a feedback survey rating digit submitting it as a chat message instead of the rating
  • Fixed pressing x on a selected subagent in the agent panel typing into the prompt instead of stopping the agent
  • Fixed session title being derived from plugin monitor notifications before the user's first prompt
  • Fixed "Allowed by PermissionRequest hook" repeating once per tool call under a collapsed read/search group
  • Fixed /tui silently dropping running background shells and subagents — now refuses and asks to wait for them to finish
  • Fixed welcome banner showing "API Usage Billing" on Bedrock, Vertex, Foundry, and other third-party providers — now shows the provider name
  • Fixed /mcp server list not keeping the focused server visible in short terminals in fullscreen mode
  • Fixed redaction in /feedback bundles producing invalid JSON for quoted values like session IDs
  • Fixed desktop and third-party provider sessions incorrectly inheriting apiKeyHelper/ANTHROPIC_AUTH_TOKEN from host managed-settings
  • Fixed early analytics events being silently dropped when fired before logger initialization
  • Fixed claude plugin install failing for plugins whose marketplace ref no longer exists upstream when a sha is also pinned
  • Fixed plugin details pane showing 0 MCP servers for plugins that declare them via .mcp.json
  • Fixed plugin MCP servers with unset config variables showing a generic connection failure instead of a "config issue" message with a fix-it hint; malformed .mcp.json entries no longer drop other MCP servers
  • Fixed MCP server configs using POSIX shell parameter expansions (e.g. ${var%pattern}) being incorrectly flagged as missing environment variables
  • Fixed MCP HTTP/SSE servers returning 403 on connect showing as "failed" instead of "needs auth"
  • Fixed remote MCP servers disconnecting unnecessarily when the optional server-events stream failed to reconnect — tool calls continue over POST
  • Fixed Remote Control MCP connectors all failing with 401 when the worker session token rotated mid-session
  • Fixed Remote Control automatically re-enrolling a trusted device when the server rejects a stale token, instead of looping through /login
  • Fixed a race where early OTel spans could be silently dropped in SDK/headless mode with beta tracing enabled
  • Fixed custom voice:pushToTalk keybindings and "space": null unbinds being silently ignored
  • Fixed Windows Alt+V image paste reporting "no image found" when the clipboard contains a screenshot
  • Fixed SDK "Claude Code native binary not found" on Linux when both glibc and musl platform packages are installed
  • Bedrock: awsCredentialExport now always runs when configured instead of being skipped when ambient AWS credentials resolve, fixing auth for cross-account access
  • [VSCode] Fixed in-chat mic showing no feedback when the microphone produced only silence — now shows "No audio detected"
  • [VSCode] Voice mode: the WSL error now suggests installing sox libsox-fmt-pulse for WSLg users
  • claude agents: launching a session no longer fails when the pre-warmed background worker is unhealthy — now falls back to a fresh launch
  • claude agents no longer shows empty placeholder sessions left over from backgrounding a fresh REPL, and shows onboarding text when entered via ← with no other agents
  • Empty idle background sessions left over from are now automatically retired by the daemon after 5 minutes
/goal no longer hangs with disabled hooks; background startup hardened

What's changed

  • Improved Agent tool subagent_type matching to accept case- and separator-insensitive values (e.g. "Code Reviewer" resolves to code-reviewer)
  • Updated agent color palette
  • Fixed /goal silently hanging when disableAllHooks or allowManagedHooksOnly is set — now shows a clear message instead of an indicator that never resolves
  • Fixed a regression in settings hot-reload where symlinked settings files caused misattributed change events and spurious ConfigChange hooks
  • Fixed claude --bg failing with "connection dropped mid-request" when the background service was about to idle-exit
  • Fixed background service startup failing on machines with enterprise endpoint security by allowing more time
  • Fixed remote managed settings not retrying on 401 — now retries once with a force-refreshed token
  • Fixed managed extraKnownMarketplaces auto-update policy not being persisted to known_marketplaces.json
  • Fixed /loop scheduling redundant wakeups to poll for background tasks that already notify on completion
  • Fixed a recurring event-loop stall on Windows when a missing executable (e.g. gh) triggered synchronous where.exe re-spawns on every check
  • Fixed Read tool calls failing validation when offset is passed as a whitespace-padded or +-prefixed string
  • Fixed native terminal cursor not staying at the input caret when the terminal loses focus
  • Plugins now warn when a default component folder (e.g. commands/) is silently ignored because plugin.json sets the matching key. Shown in /doctor, claude plugin list, and /plugin.
Agent view lists all sessions; /goal keeps Claude working until done

What's changed

  • Added agent view (Research Preview): a single list of every Claude Code session — running, blocked on you, or done. Run claude agents to get started. See https://code.claude.com/docs/en/agent-view
  • Added /goal command: set a completion condition and Claude keeps working across turns until it's met. Works in interactive, -p, and Remote Control. Shows live elapsed/turns/tokens as an overlay panel
  • Added /scroll-speed command to tune mouse wheel scroll speed with a live preview
  • Added claude plugin details <name> to show a plugin's component inventory and projected per-session token cost
  • Added transcript view navigation: ? for keyboard shortcuts, {/} to jump between user prompts, v to toggle shortcut panel
  • Added hook args: string[] field (exec form) that spawns the command directly without a shell, so path placeholders never need quoting
  • Added hook continueOnBlock config option for PostToolUse — set to true to feed the hook's rejection reason back to Claude and continue the turn
  • MCP stdio servers now receive CLAUDE_PROJECT_DIR in their environment, matching hooks. Plugin configs can reference ${CLAUDE_PROJECT_DIR} in commands
  • Compaction prompt now asks the model to preserve sensitive user instructions
  • /mcp Reconnect now picks up .mcp.json edits without a restart, and shows the HTTP status and URL when reconnecting fails
  • /context all per-skill token estimates now account for the model's tokenizer and show rounded values
  • claude plugin install <name>@<marketplace> now auto-refreshes the marketplace and retries before reporting a plugin as not found
  • /plugin installed-plugin details now show hook event names and MCP server names cleanly
  • /context now shows the providing plugin's name for plugin-sourced skills
  • Remote MCP server reconnect retry on transient failures is now enabled for all users
  • API requests from subagents now carry x-claude-code-agent-id / x-claude-code-parent-agent-id headers, and claude_code.llm_request OTEL spans include agent_id / parent_agent_id attributes
  • Remote Control, /schedule, claude.ai MCP connectors, and notification preferences are now disabled when ANTHROPIC_API_KEY / apiKeyHelper / ANTHROPIC_AUTH_TOKEN is set, even if a Claude.ai login also exists. Unset the API key to use these features
  • Fixed a deadlock where expired credentials and the forceRemoteSettingsRefresh policy setting blocked claude auth login/logout/status with no way to recover
  • Fixed autoAllowBashIfSandboxed not auto-approving commands with shell expansions like $VAR and $(cmd)
  • Fixed a bug where a hook writing to the terminal could corrupt an on-screen interactive prompt; hooks now run without terminal access
  • Fixed unbounded memory growth when an HTTP/SSE MCP server streams non-protocol data — response bodies now capped at 16 MB per SSE frame
  • Fixed Skill(name *) permission rules — the wildcard form now works as a prefix match, matching Bash(ls *) behavior
  • Fixed settings hot-reload not detecting edits to symlinked ~/.claude/settings.json
  • Fixed plugin details failing to load when the marketplace key differs from the manifest name
  • Fixed /model picker "Default" row not reflecting ANTHROPIC_DEFAULT_OPUS_MODEL/ANTHROPIC_DEFAULT_SONNET_MODEL overrides
  • Fixed spurious "stream idle timeout" 5 minutes after a response completed, caused by the watchdog timer not being cleared on stream cancellation
  • Fixed silent exit 1 when 10+ MCP servers are configured and the cache directory is unwritable — the error message now includes the underlying cause
  • Fixed a typing cursor blinking on tab names, list pointers, and select rows in dialogs
  • Fixed transcript view letter shortcuts not working after mouse click
  • Fixed Bash-mode up-arrow history repeating the first entry and clobbering the in-progress draft
  • Fixed pasting or dropping multiple images only inserting the last one
  • Fixed hyperlinks using unreadable dark navy on dark themes — they now adapt to the active theme
  • Fixed model picker showing a redundant "Current model" row for third-party users whose model is set to the opus alias
  • Fixed legacy Opus picker entry on PAYG 3P providers resolving to the same model as the default entry
  • Fixed mouse wheel scrolling speed in Cursor and VS Code 1.92–1.104; the trackpad now scrolls at a steady rate and the mouse wheel keeps ~3 lines per notch
  • Fixed scroll behavior in Windows Terminal and VS Code when attached to background sessions
  • Fixed MCP resources from disconnected servers lingering in @server: autocomplete
  • Fixed two-file diff snippets over-reporting the number of truncated lines by one
  • Fixed Grep results not relativizing Windows drive-letter paths and count mode reporting wrong totals for single-file paths
  • Fixed border-embedded text overflowing on CJK/emoji due to visual cell width miscalculation
  • Fixed fuzzy-match highlighting splitting emoji and astral-plane characters mid-pair
  • Fixed skill argument names containing regex metacharacters breaking argument substitution
  • Fixed ProgressBar rendering a full block for an almost-full fractional cell
  • Fixed task polling and fs.watch being resurrected when the last subscriber leaves while a fetch is in flight
  • Fixed plugin dependency resolution leaving a stale count when the manifest name differs from the source identifier
  • Fixed Insights Time-of-Day chart skewing when a session has an unparseable timestamp
  • Fixed keybindings using only the cmd/super/win modifier being flagged as unparseable
  • Fixed claude_code.active_time.total OpenTelemetry metric not being emitted in --print mode
  • Fixed claude plugin update not preserving cross-plugin symlinks inside a marketplace
  • [VSCode] Press Cmd/Ctrl+Shift+T to reopen the most recently closed session tab, configurable via claudeCode.enableReopenClosedSessionShortcut
Claude Code v2.1.138 internal release

What's changed

  • Internal fixes
Fixes VSCode extension activation on Windows

What's changed

  • [VSCode] Fixed extension failing to activate on Windows
Fixes MCP server configuration loss and OAuth token refresh concurrency
  • Added CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL to re-enable the session quality survey for enterprises capturing responses through OpenTelemetry

  • Added settings.autoMode.hard_deny for auto mode classifier rules that block unconditionally regardless of user intent or allow exceptions

  • Fixed MCP servers configured in .mcp.json, plugins, and claude.ai connectors silently disappearing after /clear in the VS Code extension, JetBrains plugin, and Agent SDK

  • Fixed a rare login loop where a concurrent credential write could overwrite a freshly-rotated OAuth token and force re-login

  • Fixed MCP OAuth refresh tokens being lost when multiple servers refresh concurrently — users with several remote MCP servers should no longer need daily re-authentication

  • Fixed an API error (400) when extended thinking emitted a redacted thinking block after a tool call

  • Fixed --resume / --continue not finding sessions when the project path contains underscores

  • Fixed plan mode not blocking file writes when a matching Edit(...) allow rule exists

  • WSL2: image paste from Windows clipboard now works via a PowerShell fallback when xclip/wl-paste cannot read image data

  • Fixed plugin Stop/UserPromptSubmit hooks failing when cache cleanup deletes a version still in use by a running session

  • Improved visual consistency across slash command dialogs: standardized footer hints, dialog spacing, and arrow-key styling, and the dialog frame now appears immediately during loading instead of popping in after

  • Fixed colors appearing at wrong positions in bash command output and markdown code blocks

  • Fixed ReasonML diffs rendering corrupted "undefined" text artifacts at word-diff boundaries

  • Fixed worktree exit dialog warning about uncommitted files in the wrong directory after worktree removal

  • Fixed @ file picker not matching files created mid-session in small non-git directories

  • Fixed @-mention file picker not finding files in directories with more than 100 entries

  • Fixed failed tool calls not being click-to-expand in fullscreen mode when their output was truncated

  • Fixed Backspace and Ctrl+Backspace getting swapped after using Ctrl+G to open an external editor on terminals with persistent extended-key modes

  • Fixed /usage weekly reset showing time of day instead of the calendar date

  • Fixed welcome banner ellipsis causing column overflow on CJK terminals

  • Fixed /insights crash when session history contains tool calls with malformed input fields

  • Fixed a renderer crash when a tool's collapsibility classification changes mid-session

  • Fixed a skills entry in plugin.json hiding the plugin's default skills/ directory, and listing a file path now shows an error instead of failing silently

  • Fixed IDE shell-integration lock files not respecting CLAUDE_CONFIG_DIR

  • Fixed trailing whitespace in copied terminal output during streaming

  • Fixed plugin uninstall and enable/disable not matching slugs case-insensitively

  • Fixed tool error truncation marker showing a negative count for surrogate-pair strings

  • Fixed env vars from CLAUDE_ENV_FILE SessionStart hooks going stale after /resume or /clear

  • Fixed /branch saving a multi-line session title when given a pasted multi-line name

  • Fixed a stray leading space on the second line of wrapped text at the column boundary

  • Fixed Esc not dismissing dialogs in /install-github-app, /desktop, /resume, and /web-setup

  • Fixed /doctor MCP schema errors not naming the missing field or showing the source file path

  • Fixed Bash permission prompts showing an internal parser diagnostic instead of a user-readable explanation

  • Fixed plugin slash commands with spaces (e.g. /myplugin review) not resolving to their namespaced form

  • Fixed AskUserQuestion discarding multi-select answers when supplied as an array

  • Fixed /clear not labeling the cleared session for /resume

  • Fixed CronList output missing qualifiers and the scheduled prompt

  • Fixed "Jump to bottom" overlay leaving color artifacts on CJK characters in fullscreen mode

  • Fixed wide markdown tables leaving a stale bordered render in terminal scrollback while streaming

  • Fixed pasted text being silently dropped when a long prompt with a pasted-text placeholder was auto-truncated

  • Fixed /release-notes getting stuck on an old version after a failed changelog refresh

  • Fixed /mcp server list not scrolling when there are more servers than fit in the terminal

  • Fixed mid-input slash command autocomplete not working after an initial slash command

  • Fixed scrolling to bottom re-engaging auto-follow with autoScrollEnabled: false

  • Fixed prompt suggestions being auto-submitted by Enter on an empty input instead of requiring Tab or arrow to accept

  • Fixed keyboard shortcut hints not reflecting rebound keys from keybindings.json

  • Fixed /settings language change being reverted on Escape after confirming

  • Fixed /terminal-setup only appearing in autocomplete on exact name match instead of partial prefixes

  • Fixed "Chat about this" on an AskUserQuestion dialog erasing the question text

  • Fixed MCP tool results being invisible when the server returns content blocks

  • Improved error message when --worktree collides with an existing or stale worktree

  • Changed plugin marketplace removal key to d (matching delete elsewhere) instead of r which collided with retry

Fixes credential race causing parallel sessions to dead-end at 401
  • Added worktree.baseRef setting (fresh | head) to choose whether --worktree, EnterWorktree, and agent-isolation worktrees branch from origin/ or local HEAD. Note: the default fresh changes EnterWorktree's base back to origin/ (it has been local HEAD since 2.1.128) — set worktree.baseRef: "head" to keep unpushed commits in new worktrees

  • Added sandbox.bwrapPath and sandbox.socatPath managed settings (Linux/WSL) to specify custom bubblewrap and socat binary locations

  • Added parentSettingsBehavior admin-tier key ('first-wins' | 'merge') to let admins opt SDK managedSettings (parent tier) into the policy merge

  • Hooks now receive the active effort level via the effort.level JSON input field and the $CLAUDE_EFFORT environment variable, and Bash tool commands can read $CLAUDE_EFFORT

  • Improved focus mode behavior

  • Improved memory usage by releasing warm-spare background workers under memory pressure

  • Fixed parallel sessions all dead-ending at 401 after a refresh-token race wiped shared credentials

  • Fixed Edit/Write allow rules scoped to a drive root (C:\) or POSIX / matching incorrectly and always prompting

  • Fixed an unhandled rejection (ECOMPROMISED) when a history or session-log file lock is compromised by clock skew or slow disk

  • Fixed pressing Esc during conversation compaction showing a spurious "Error compacting conversation" notification

  • Fixed HTTP(S)_PROXY / NO_PROXY / mTLS not being respected for the full MCP OAuth flow including discovery, dynamic client registration, token exchange, and token refresh

  • Fixed Read/Write/Edit being denied on mapped network drives passed via --add-dir / SDK additionalDirectories

  • Fixed Remote Control stop/interrupt from claude.ai not fully canceling the CLI session the same way local Esc does, causing queued messages to never advance after interrupting a stuck tool or prompt

  • Fixed /effort in one session unexpectedly changing the effort level of other concurrent sessions, and a related issue where an IDE effort change could be silently dropped

  • Fixed subagents not discovering project, user, or plugin skills via the Skill tool

  • claude --help now lists --remote-control alongside --remote-control-session-name-prefix

  • [VSCode] Fixed claudeCode.claudeProcessWrapper failing with "Unsupported platform" when the extension build doesn't bundle a Claude binary

Fixes SIGINT handling and emoji corruption in text editing
  • Added CLAUDE_CODE_SESSION_ID environment variable to the Bash tool subprocess environment, matching the session_id passed to hooks

  • Added CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1 env var to opt out of the fullscreen alternate-screen renderer and keep the conversation in the terminal's native scrollback

  • Added a "Pasting…" footer hint while a Ctrl+V image paste is being read from the clipboard

  • Fixed external SIGINT (e.g. IDE stop button, kill -INT) not running graceful shutdown — terminal modes are now restored and the --resume hint is printed instead of an abrupt exit

  • Fixed an uncaught exception when the terminal is closed or SSH disconnects mid-session under the native build

  • Fixed --resume failing with no low surrogate in string when a tool error truncation split an emoji; pre-corrupted sessions are sanitized on load

  • Fixed --permission-mode flag being ignored when resuming a plan-mode session with -p --continue/--resume, and plan mode not being re-applied after ExitPlanMode within the same session

  • Fixed fullscreen mode showing a blank screen after laptop sleep/wake or Ctrl+Z/fg until the next keystroke or stream output

  • Fixed cursor landing mid-grapheme on Ctrl+E/A/K/U/arrow keys when an Indic conjunct or ZWJ emoji wraps across lines

  • Fixed vim operators corrupting text containing decomposed (NFD) accented characters

  • Fixed pasting text starting with / silently swallowing the input or triggering an unknown-command reply

  • Fixed pasting dumping stray escape sequences into the prompt when focus events or mouse-tracking reports interleave with the bracketed paste

  • Fixed mouse wheel scrolling being too fast in Cursor and VS Code 1.92–1.104 due to an upstream xterm.js bug

  • Fixed scroll-wheel handling in JetBrains IDE 2025.2 terminals (spurious arrow keys, wrong-direction events, runaway acceleration)

  • Fixed /usage Ctrl+S hanging when copying the stats screenshot to the clipboard on Linux/X11

  • Fixed /terminal-setup showing a contradictory error in Windows Terminal — Shift+Enter is natively supported there

  • Fixed /effort picker not reflecting the CLAUDE_CODE_EFFORT_LEVEL env var override

  • Fixed /status showing the wrong default model for some users

  • Fixed slash command autocomplete popup being capped at ~3–5 visible commands instead of scaling with terminal height

  • Fixed statusline context_window token counts reflecting cumulative session totals instead of current context usage

  • Fixed Alt+T (thinking toggle) not working on macOS terminals without "Option as Meta" enabled (iTerm2, Terminal.app defaults)

  • Fixed dead keyboard input on Windows after re-opening a background session from claude agents

  • Fixed unbounded memory growth (10GB+ RSS) when a stdio MCP server writes non-protocol data to stdout

  • Fixed MCP servers that connect but fail tools/list silently showing 0 tools — they now retry once and show "connected · tools fetch failed" in /mcp

  • Fixed unauthorized claude.ai MCP connectors showing as "failed" instead of "needs auth", and headless -p mode retrying non-transient 4xx connection failures

  • Improved visual consistency in slash command dialogs and /login, /upgrade, /extra-usage dialog spacing

  • Updated the /tui fullscreen startup banner to describe additional renderer benefits (lower memory usage, mouse support, auto-copy on select)

  • Fixed Bedrock and Vertex 400 errors when ENABLE_PROMPT_CACHING_1H is set

Fixes VS Code activation on Windows and Mantle endpoint authentication
  • Fixed VS Code extension failing to activate on Windows due to a hardcoded build path in the bundled SDK (createRequire polyfill bug)

  • Fixed Mantle endpoint authentication failing with missing x-api-key header

Fixes prompt cache TTL downgrade and adds plugin URL flag
  • Added --plugin-url flag to fetch a plugin .zip archive from a URL for the current session

  • Added CLAUDE_CODE_FORCE_SYNC_OUTPUT=1 env var to force-enable synchronized output on terminals that auto-detection misses (e.g. Emacs eat)

  • Added CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE: when set on Homebrew or WinGet installations, Claude Code runs the upgrade command in the background and prompts to restart

  • Plugin manifests: themes and monitors should now be declared under "experimental": { ... }. Top-level declarations still work but claude plugin validate will warn

  • Gateway /v1/models discovery for the /model picker is now opt-in via CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1 (was automatic in 2.1.126–2.1.128)

  • Ctrl+R history picker now defaults to searching all prompts across all projects, matching pre-2.1.124 behavior. Press Ctrl+S to narrow to the current project or session

  • Third-party deployments (Bedrock, Vertex, Foundry, or ANTHROPIC_BASE_URL gateway) no longer see spinner tips pointing at first-party Anthropic surfaces

  • skillOverrides setting now works: off hides from model and /, user-invocable-only hides from model only, name-only collapses description

  • The claude_code.pull_request.count OTel metric now counts PRs/MRs created via MCP tools, not just shell commands

  • Policy refusal error messages now include the API Request ID for easier support debugging

  • Fixed API errors with unrecognized 400 status codes showing raw JSON instead of the underlying error message

  • Fixed /clear not resetting the terminal tab title after a conversation

  • Fixed session title chip from /rename disappearing while a permission or other dialog is active

  • Fixed agent panel below the prompt being hidden when subagents are running (regression in 2.1.122)

  • Fixed external-editor handoff (Ctrl+G) blanking the conversation history above the prompt

  • Fixed /context dumping its rendered ASCII visualization grid into the conversation, wasting ~1.6k tokens per call

  • Fixed /agents Library list arrow-key navigation: the highlighted agent now stays visible when the list exceeds the viewport

  • Fixed /branch success message not including the new branch's session id for /resume

  • Fixed bold headers with keycap/ZWJ/skin-tone emoji losing trailing characters in fullscreen mode

  • Fixed server-managed settings policy not applying for enterprise/team users whose stored OAuth credentials lacked the user:inference scope

  • Fixed OAuth refresh race after wake-from-sleep that could log out all running sessions

  • Fixed 1-hour prompt cache TTL being silently downgraded to 5 minutes

  • Fixed cache-miss warning appearing spuriously after /clear or compaction when changing /effort or /model

  • Fixed Bash(mkdir *), Bash(touch *) and similar allow rules not being honored for in-project paths

  • Fixed deniedMcpServers patterns with a *:// scheme wildcard not matching mixed-case hostnames

  • Fixed harmless WebSocket warning being logged as an error in --debug during voice mode

  • [VSCode] Fixed /clear not clearing the conversation context and displayed transcript

Last Checked
4h ago
Tracking since Jun 30, 2025