--- title: "Claude Code Release History" description: "Condensed changelog of official Claude Code releases with highlights and breaking changes" tags: [reference, release] --- # Claude Code Release History > Condensed changelog of Claude Code official releases. > **Full details**: [github.com/anthropics/claude-code/CHANGELOG.md](https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md) > **Machine-readable**: [claude-code-releases.yaml](../../machine-readable/claude-code-releases.yaml) **Latest**: v2.1.154 | **Updated**: 2026-05-28 --- ## Quick Jump - [2.1.x Series (January-May 2026)](#21x-series-january-may-2026): Opus 4.8 + dynamic workflows + lean system prompt default (2.1.154), /model saves as default (IDE parity) + modelPicker keybinding rename (2.1.153), code-review fix applies to working tree, disallowed-tools frontmatter, MessageDisplay hook, auto mode opt-in removed, 35+ bug fixes (2.1.152), internal infra (2.1.150), /usage per-category breakdown (skills/subagents/plugins/MCP), GFM task list checkboxes, PowerShell permission bypass security fix, sandbox worktree write allowlist fix, allowAllClaudeAiMcps enterprise setting, 20+ bug fixes, pinned background sessions (Ctrl+T), /code-review --comment for inline GitHub PR comments, auto-updater improvements, Bash exit-127 hotfix, /code-review command (renamed from /simplify) with effort level, AskUserQuestion restored in auto mode, agents --json, /plugin previews before install, permission-prompt bypass security fix, /resume lists background sessions, /model session-only (d for default), usage credits rename, 75s startup hang fix, plugin dependency enforcement, projected context cost in /plugin, worktree.bgIsolation: "none", fast mode Opus 4.7 default, new claude agents dispatch flags, SKILL.md root-level plugin surfacing, hook terminalSequence, claude agents --cwd, Rewind summarize, subagent_type case-insensitive, plugin folder warnings, agent view (Research Preview), /goal command, hook args exec form + continueOnBlock, settings.autoMode.hard_deny, CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL, MCP /clear disappear fix, 40+ UI fixes, worktree.baseRef setting, effort level in hooks, CLAUDE_CODE_SESSION_ID in Bash env, CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN, MCP memory fix (10GB+ RSS), subagent skills fix, 40+ bug fixes, Worktree isolation, background agents, ConfigChange hook, Fast mode Opus 4.6, 1M context, claude.ai MCP connectors, remote-control, auto-memory, /copy command, HTTP hooks, worktree config sharing, ultrathink re-introduced, InstructionsLoaded hook, 4 security fixes, Agent model override restored, 12x SDK token cost reduction, /context actionable suggestions, modelOverrides setting, 1M context Opus 4.6 default for Max/Team/Enterprise, MCP elicitation, PostCompact hook, /effort command, Opus 4.6 64k/128k output tokens, allowRead sandbox setting, /branch command, StopFailure hook, streaming line-by-line, --console auth flag, SessionEnd fix, enterprise retry fix, rate_limits statusline field, effort frontmatter for skills, --channels MCP research preview, --bare flag, worktree session resume fix, MCP query collapsing, managed-settings.d/ drop-in, CwdChanged/FileChanged hooks, transcript search, credential scrubbing, PowerShell tool Windows preview, conditional hooks if field, MCP headersHelper multi-server env vars, headless AskUserQuestion hooks, X-Claude-Code-Session-Id header, Jujutsu/Sapling VCS exclusions, @ mention token reduction, Read tool compact format, Cowork Dispatch fix, PermissionDenied hook, thinking summaries off by default, "defer" PreToolUse permission, CLAUDE_CODE_NO_FLICKER, /powerup interactive lessons, PowerShell hardened permissions, SSE linear-time performance, MCP 500K result override, disableSkillShellExecution, plugin bin/ executables, Edit tool shorter anchors, interactive Bedrock wizard, forceRemoteSettingsRefresh, /cost per-model breakdown, interactive /release-notes, Linux sandbox apply-seccomp fix, Bedrock Mantle support, high effort default for API/enterprise users, Bedrock auth fix, NO_FLICKER focus view (Ctrl+O), refreshInterval status line, 30+ bug fixes, Vertex AI wizard, Monitor tool, CLAUDE_CODE_PERFORCE_MODE, Bash security hardening, subprocess PID namespace sandboxing, /team-onboarding command, OS CA cert store trust by default, /ultraplan auto-cloud-environment, 40+ bug fixes, PreCompact hook blocking, EnterWorktree path param, plugin monitors, /proactive alias, WebFetch CSS/JS stripping, /doctor status icons, thinking hints sooner, ENABLE_PROMPT_CACHING_1H, /recap session context, built-in slash commands via Skill tool, /undo alias, rotating extended-thinking indicator, /tui fullscreen command, push notification tool, --resume resurrects scheduled tasks, /focus command, autoScrollEnabled config, session recap for telemetry-disabled, 30+ bug fixes, Opus 4.7 xhigh effort, /ultrareview cloud code review, /less-permission-prompts skill, Auto mode for Max subscribers, plan files named after prompts, read-only bash glob patterns no prompt, interactive /effort slider, many bug fixes, native binary spawning, sandbox.network.deniedDomains, security hardening exec wrappers, crash fix permission dialog, /resume 67% faster, inline thinking progress, sandbox dangerous-path security fix, agent frontmatter hooks via --agent, many terminal and UI bug fixes, default effort high for Pro/Max on Opus 4.6+Sonnet 4.6, native bfs/ugrep on macOS/Linux, /model persistence across restarts, Opus 4.7 1M context fix, 15+ bug fixes, vim visual mode, /usage merged from /cost+/stats, custom named themes, hooks invoke MCP tools, DISABLE_UPDATES env var, wslInheritsWindowsSettings, 15+ bug fixes, /config settings persist to settings.json, --from-pr multi-platform support, agent frontmatter honors tools+permissionMode, blockedMarketplaces security fix, TaskList ordering fix, 30+ bug fixes, Windows no longer requires Git Bash (PowerShell fallback), claude ultrareview CI subcommand, ${CLAUDE_EFFORT} in skills, alwaysLoad MCP option, plugin prune, PostToolUse output replacement for all tools, ANTHROPIC_BEDROCK_SERVICE_TIER, PR URL in /resume search, OAuth 401 hotfix, gateway /v1/models listing in /model picker, claude project purge, OAuth paste code for WSL2/SSH/containers, security fix allowManagedDomainsOnly/allowManagedReadPathsOnly, Windows PowerShell 7 as primary shell, 40+ bug fixes, EnterWorktree branch from local HEAD fix, --plugin-dir .zip support, --channels console auth, /mcp tool count per server, parallel bash tool call fix, sub-agent prompt cache fix, 35+ bug fixes, --plugin-url flag, CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE, Ctrl+R all-projects history restored, skillOverrides fix, 1h cache TTL fix, OAuth refresh race fix, 20+ bug fixes, VS Code Windows activation fix, Mantle auth fix - [2.0.x Series (Nov 2025 - Jan 2026)](#20x-series-november-2025---january-2026) — Opus 4.5, Claude in Chrome, Background agents - [Breaking Changes Summary](#breaking-changes-summary) - [Milestone Features](#milestone-features) --- ## 2.1.x Series (January-May 2026) ### v2.1.154 (2026-05-28) > Opus 4.8, dynamic workflows orchestrating hundreds of background agents, lean system prompt as default, 30+ bug fixes. - **New (Model)**: Opus 4.8 is available and defaults to high effort; use `/effort xhigh` for your hardest tasks - **New (Model)**: Fast mode on Opus 4.8 at 2x the standard rate for 2.5x the speed - **New**: Dynamic workflows: Claude can orchestrate work across tens to hundreds of background agents in one session; run `/workflows` to monitor runs - **New**: The lean system prompt is now the default for all models except Haiku, Sonnet, and Opus 4.7 and earlier - **Changed**: `/simplify` now runs a cleanup-only review (reuse, simplification, efficiency, altitude) and applies the fixes, instead of running the full `/code-review --fix` bug-hunting review - **Changed**: `/effort` slider labels renamed from "Speed"/"Intelligence" to "Faster"/"Smarter" - **New**: `claude agents`: type `! ` to run a shell command as a background session you can attach and detach from; also available as `claude --bg --exec ''` - **New**: `claude agents`: `/logout` now signs you out instead of being sent to a background session - **New**: `←←` to open the agents view now works on Bedrock, Vertex, Foundry, and with telemetry disabled - **New**: Claude in Chrome: pick which connected browser to use via `/chrome` → "Select browser…", or in-chat when multiple browsers are connected - **New**: Plugins can declare `defaultEnabled: false` in `plugin.json` or a marketplace entry; enable with `/plugin` or `claude plugin enable` - **New**: The `/plugin` Discover tab pins plugins matching the current directory with a "suggested for this directory" annotation - **New**: Streaming tool execution always enabled, including on Bedrock/Vertex/Foundry (previously behind a feature flag) - **New**: Stdio MCP server subprocesses receive `CLAUDE_CODE_SESSION_ID` and `CLAUDECODE=1` in their environment - **New**: `claude mcp list`/`get` now show unapproved `.mcp.json` servers as `⏸ Pending approval` instead of auto-approving - **Improved**: Auto-mode classifier detection of data exfiltration improved, particularly for bulk repository transfers - **Deprecated**: `CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE` (removed 2026-06-01); use `/model claude-opus-4-6[1m]` then `/fast on` - **Fixed (VSCode)**: Claude Code processes not shutting down cleanly when VS Code closed on Windows - **Fixed**: 30+ fixes including orphaned `--bg-pty-host` processes spinning at 100% CPU after daemon exit, number key shortcuts not working below the divider in option dialogs, `worktree.baseRef: "head"` resolving to wrong HEAD when spawning subagents from inside a linked worktree, intermittent rendering corruption in VS Code from thinking spinner colors, plan file names containing `[Image #N]`/`[Pasted text #N]` placeholders, phantom expand affordance on short ANSI-colored lines, invalid `allowedMcpServers`/`deniedMcpServers` entry discarding all managed-settings policy, API 400 errors on models without effort parameter when `CLAUDE_CODE_ALWAYS_ENABLE_EFFORT` is set, Windows update failure showing generic error, auto mode blocking actions when safety classifier ran out of output tokens while reasoning - **Breaking**: `CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE` deprecated (removed 2026-06-01) - **Breaking**: `/simplify` behavior changed: now cleanup-only review, not full code-review fix --- ### v2.1.153 (2026-05-28) > `/model` saves as default by default (IDE parity), `skipLfs` for plugin marketplace, `claude agents` autocomplete improvements, 25+ bug fixes. - **Changed**: `/model` now saves your selection as the default for new sessions (matching IDE behavior); press `s` in the picker to switch current session only, reversing the 2.1.144 behavior where session-only was the default and `d` set the default - **New**: `skipLfs` option for `github`/`git` plugin marketplace sources to skip Git LFS downloads during clone and update - **New**: Status line commands receive `COLUMNS` and `LINES` environment variables so scripts can size output to the terminal width - **New**: `claude agents` dispatch input autocomplete now suggests native slash commands and bundled skills, not just project skills - **New**: `claude agents` PR column shows `PR #N` for a single PR or `N PRs` for multiple - **New**: `claude doctor` shows the result of your last update attempt; one-time notice when npm global install can't auto-update (with `/doctor` listing fixes) - **Changed (macOS)**: Background agents now appear as "Claude Code" in Privacy & Security, keeping permission grants across upgrades - **Fixed**: 25+ fixes including stateful MCP servers without optional GET SSE reconnect-looping (regression from 2.1.147), API gateway receiving user's Anthropic OAuth credential instead of gateway token, subagent `Agent` tool frontmatter MCP servers ignoring `--strict-mcp-config`/enterprise managed policies, `Agent` tool with `subagent_type: 'claude'` silently discarding outputs written to gitignored paths, Windows PowerShell installer reporting success when installation actually failed, `claude update` installing latest instead of configured release channel's version, excessive memory when resuming sessions by transcript file path, stream-json mode hang on stdin closed without EOF, malformed `file://` links not clickable, `--help` unwrapped on narrow terminals, MCP tool progress in collapsed view, `/bg` response continuing in background instead of dropping, multiple background session fixes (clipboard/copy in tmux, /rename immediate update, IME candidate window position, 256-color terminal background bleed, zombie session entries after exiting `claude agents` with Remote Control), Windows update rollback restoration - **Breaking**: `modelPicker:setAsDefault` keybinding renamed to `modelPicker:thisSessionOnly` in `keybindings.json` (the `d` action was replaced by `s`) --- ### v2.1.152 (2026-05-27) > `/code-review --fix`, `disallowed-tools` frontmatter for skills, `MessageDisplay` hook, auto mode opt-in removed, 35+ bug fixes. - **New**: `/code-review --fix` now applies review findings to your working tree after the review; `/simplify` now invokes `/code-review --fix` - **New**: Skills and slash commands can set `disallowed-tools` in frontmatter to remove tools from the model while the skill is active - **New**: `/reload-skills` command re-scans skill directories without restarting the session - **New**: `SessionStart` hooks can return `reloadSkills: true` to make newly installed skills available in the same session, and can set the session title via `hookSpecificOutput.sessionTitle` on startup and resume - **New**: `MessageDisplay` hook event lets hooks transform or hide assistant message text as it is displayed - **New**: `pluginSuggestionMarketplaces` managed setting so admins can allowlist org marketplaces whose plugins may be suggested via context-aware tips - **New**: `--fallback-model` switches to a configured fallback for the rest of the session when the primary model is not found, instead of failing every request - **New (Vim)**: `/` in NORMAL mode opens reverse history search (like Ctrl+R), matching bash/zsh vi-mode behavior - **Improved**: `/usage` breakdown now includes large session files; files scanned with a streaming read so memory usage stays flat - **Improved**: Thinking summaries in the collapsed group stay readable for at least 3 seconds, render as markdown, and cap at 10 lines (Ctrl+O shows full thinking) - **Improved**: Fullscreen mode "Thinking for Ns" indicator counts up live while the model is thinking - **Changed**: Auto mode no longer requires opt-in consent - **Fixed**: 35+ fixes including terminal styling degrading in long sessions, sandbox warning missing in condensed startup, loading spinner state across tool calls, focus mode spurious hidden-message count, link click inside tool result collapsing the section, markdown table cell border color bleeding from inline code, plugin MCP servers with same command but different env vars being deduplicated, `/doctor` errors for stale `enabledPlugins` entries, plugin git-branch updates silently stopping, remote MCP servers failing with egress proxy, effort-change dialog appearing with no messages or same effective effort, Agent tool description with `--bare`, background worker crash after stale permission prompt cancellation, `cache_creation_input_tokens` reporting as 0 when API uses nested breakdown, `PushNotification` false negative in SDK-hosted sessions, sessions stuck after model/login switch left stale thinking-block signatures in history --- ### v2.1.150 (2026-05-23) > Internal infrastructure improvements — no user-facing changes. --- ### v2.1.149 (2026-05-23) > `/usage` per-category breakdown, GFM task list checkboxes, two security fixes, 20+ bug fixes. - **New**: `/usage` now shows a per-category breakdown of what drives your limits usage — skills, subagents, plugins, and per-MCP-server cost - **New**: Markdown output renders GFM task list checkboxes (`- [ ] todo` / `- [x] done`) natively instead of plain bullets - **New (Enterprise)**: `allowAllClaudeAiMcps` managed setting to load claude.ai cloud MCP connectors alongside `managed-mcp.json` - **Security**: PowerShell permission bypass fixed — built-in `cd` functions (`cd..`, `cd\`, `cd~`, `X:`) changed the working directory undetected, letting later commands read outside the workspace - **Security**: Sandbox write allowlist in git worktrees was covering the entire main repository root instead of only the shared `.git` directory (with `hooks/` and `config` denied) - **Fixed**: `/diff` detail view can now be scrolled with keyboard (arrows, `j`/`k`, `PgUp`/`PgDn`, `Space`, `Home`/`End`) - **Fixed**: PowerShell prefix/wildcard allow rules (e.g. `PowerShell(dotnet.exe build *)`) now pre-approve native executables and scripts - **Fixed**: Permission-analysis gap where parser trusted stale variable-tracking values for `PWD`/`OLDPWD`/`DIRSTACK` across `cd`/`pushd`/`popd` - **Fixed**: `find` in Bash tool exhausting the macOS system file/vnode table on large directory trees - **Fixed**: 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; failures now reported in `/doctor` and debug log - **Fixed**: 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**: 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 - **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**: Renaming a Remote Control session from claude.ai or the Claude mobile app not updating the local session name for `claude --resume` - **Fixed**: Race where a just-submitted prompt could appear twice in up-arrow history - **Fixed**: "Jump to bottom" pill in fullscreen mode not dismissing immediately after tap - **Improved**: `/feedback` reports now include the conversation before context compaction, making issues from earlier in long sessions easier to triage --- ### v2.1.148 (2026-05-22) > Hotfix: Bash tool exit code 127 regression from 2.1.147. - **Fixed**: Bash tool returning exit code 127 on every command (regression introduced in 2.1.147) --- ### v2.1.147 (2026-05-22) > Pinned background sessions (Ctrl+T), /code-review --comment for inline GitHub PR comments, improved auto-updater, 30+ bug fixes. - **New**: Pinned background sessions — `Ctrl+T` in `claude agents` pins a session so it stays alive when idle, auto-restarts in place to apply CC updates, and is shed under memory pressure only after non-pinned sessions - **New**: `/code-review --comment` — post findings as inline GitHub PR comments - **Improved**: Auto-updater now retries transient network failures, reports specific error categories and OS error codes on failure, and shows the current version when an update fails - **Fixed**: Prompt history no longer records consecutive duplicate entries - **Fixed**: Hook `if` conditions like `PowerShell(git push*)` now match correctly (only `PowerShell(*)` worked before) - **Fixed**: Pasted text now delivered as actual content instead of `[Pasted text #N]` placeholder - **Fixed**: Plugin component counts in `claude plugin details` and `/plugin` were doubled when paths overlapped default directories - **Fixed**: Slash commands followed by a tab or newline no longer treated as unknown commands - **Fixed**: Shell snapshot no longer drops user functions whose names start with a single underscore - **Fixed**: Plugin agents declaring multiple `Agent(...)` types in `tools:` frontmatter now retain all entries - **Fixed**: PowerShell tool no longer drops output for commands relying on the default formatter - **Fixed**: Windows "Yes, and don't ask again" for PowerShell script invocations now writes a rule that matches on subsequent runs - **Fixed**: Full-screen strobing in attached background sessions on Windows Terminal while streaming - **Fixed**: On Windows, removing a background-job worktree no longer follows NTFS junctions into the main repo - **Fixed**: `/effort` slider now opens at the current effort level (was always starting at wrong level) - **Fixed**: Several spacing and layout glitches in `/plugin`, `/status`, `/mobile`, `/sandbox`, `/permissions` menus - **Fixed**: 10+ additional fixes: stale/doubled rows in agent view with CJK on Windows, stripped images prompting repeated re-reads, rare scroll-settle hang on Windows, `&` in `!` command output, unknown slash commands now show an error in headless/SDK mode, `/help` rendering on small terminals --- ### v2.1.146 (2026-05-21) > /code-review command (renamed from /simplify), AskUserQuestion restored in auto mode, 15+ bug fixes. - **Changed**: `/simplify` renamed to `/code-review` with optional effort level (e.g. `/code-review high`) - **Fixed**: 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 Microsoft Store (regression in v2.1.124) - **Fixed**: MCP `resources/list`, `resources/templates/list`, and `prompts/list` now return all pages on paginating servers - **Fixed**: `/background` no longer refuses sessions whose only typed input was a skill or custom slash command - **Fixed**: Backgrounded sessions no longer re-prompt for tool permissions already granted with "don't ask again" - **Fixed**: `/theme` color editor and "New custom theme" dialogs now respond to Esc - **Fixed**: `CLAUDE_CODE_SUBAGENT_MODEL` now forwarded to child processes in multi-agent sessions - **Fixed**: `forceLoginOrgUUID` and `forceLoginMethod` managed-settings policies enforced against third-party-provider and API-key sessions - **Fixed**: 10+ additional fixes: Windows GNOME Terminal paste, background daemon spawn fallback, Windows background session worktree removal, Agent SDK uncaught exception at end of streaming, diff rendering performance for large file edits --- ### v2.1.145 (2026-05-20) > claude agents --json for scripting, /plugin previews before install, tab title shows awaiting-input count, security fix for Bash permission-prompt bypass, 20+ bug fixes. - **New**: `claude agents --json` — list all live Claude sessions as JSON for scripting (tmux-resurrect, status bars, session pickers) - **New**: `agent_id` and `parent_agent_id` attributes added to `claude_code.tool` OTEL spans; background subagent spans now nest under dispatching Agent tool span - **New**: `/plugin` Discover and Browse screens now preview a plugin's commands, agents, skills, hooks, and MCP/LSP servers before installation - **New**: `claude agents` terminal tab title shows awaiting-input count so an alt-tabbed window indicates when an agent needs attention - **New**: Slash command and @-mention suggestion list supports mouse hover and click in fullscreen mode - **New**: Stop and SubagentStop hook input now includes `background_tasks` and `session_crons` fields - **New**: Status line JSON input now includes GitHub repo and PR information when detected - **Security**: Fixed permission-prompt bypass where bare variable assignments to non-allowlisted environment variables in Bash commands were auto-approved - **Fixed**: MCP paginated `resources/list`, `resources/templates/list`, and `prompts/list` dropping items past page 1 - **Fixed**: MCP prompt slash commands now show the missing argument name and expected usage instead of raw server validation errors - **Fixed**: Read tool now returns a truncated first page with "PARTIAL view" notice instead of a hard error when whole-file read exceeds token limit - **Fixed**: Task lists no longer rendered in random order when several tasks are created at once - **Fixed**: Agent Teams teammates with non-ASCII names no longer fail every API call (invalid header encoding) - **Fixed**: `/review` no longer errors on repos with Classic Projects (deprecated `projectCards` GraphQL query removed) - **Fixed**: `claude plugin validate` now flags `skills:` entries pointing at a file instead of a directory - **Fixed**: Skill with `context: fork` no longer repeatedly re-invokes itself in an infinite loop --- ### v2.1.144 (2026-05-19) > /resume lists background sessions, /model session-only (d for default), usage credits rename, fixed 75s startup hang, terminal rendering fixes, 40+ bug fixes. - **New**: `/resume` now lists background sessions started via `claude --bg` or agent view alongside interactive ones, marked with `bg` - **New**: Elapsed duration shown in background subagent completion notifications (e.g. "Agent completed · 3h 2m 5s") - **Changed**: `/model` now changes the model for the current session only — press `d` in the picker to set a default for new sessions - **Changed**: "extra usage" renamed to "usage credits" across CLI copy; `/extra-usage` is now `/usage-credits` (old name still works) - **Fixed**: Startup no longer hangs up to 75s when `api.anthropic.com` is unreachable — side-channel API calls now time out after 15s - **Fixed**: Terminal rendering corruption self-heals on missed window-resize events; progressive glitch in long sessions cleared; VS Code spinner uses fewer colors to reduce glitches - **Fixed**: macOS background sessions crashing with "exit 1 before init" under Full Disk Access-protected folders (regression in 2.1.143) - **Fixed**: MCP servers with paginated `tools/list` now return all pages (was silently dropping tools past page 1) - **Fixed**: File descriptor exhaustion in skill directories — non-`.md` files no longer trigger skill reloads - **Fixed**: 40+ additional fixes: `/branch` after worktree entry, Escape in AskUserQuestion notes field, Bedrock/Vertex Opus 1M context picker, remote login with `forceLoginMethod`, background session scroll on Windows, and more --- ### v2.1.143 (2026-05-16) > Plugin dependency enforcement, projected context cost in /plugin marketplace, worktree.bgIsolation: "none", PowerShell -ExecutionPolicy Bypass by default, stop hook block cap, 30+ bug fixes. - **New**: Plugin dependency enforcement — `claude plugin disable` refuses when another enabled plugin depends on the target, with a copy-pasteable disable-chain hint; `claude plugin enable` force-enables transitive dependencies - **New**: Projected context cost (per-turn and per-invocation token estimates) in the `/plugin` marketplace browse pane - **New**: `worktree.bgIsolation: "none"` setting — lets background sessions edit the working copy directly without `EnterWorktree` (useful for repos where worktrees are impractical) - **New**: PowerShell tool now passes `-ExecutionPolicy Bypass` by default — opt out with `CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY=1` - **Improved**: Background sessions now preserve the model and effort level set after waking from idle - **Improved**: Shift+Tab in attached agent sessions now includes auto mode in the cycle - **Fixed**: Stop hooks that block repeatedly no longer loop forever — turn ends with a warning after 8 consecutive blocks (override via `CLAUDE_CODE_STOP_HOOK_BLOCK_CAP`) - **Fixed**: Esc/Ctrl+C now cancels a pending `/loop` wakeup while Claude is idle between iterations - **Fixed**: `/goal` evaluator no longer fires while background shells or delegated subagents are still running - **Fixed**: `NO_COLOR`/`FORCE_COLOR` in `settings.json` env now apply to subprocesses only (no longer strips Claude Code's own UI colors) - **Fixed**: `claude agents --allow-dangerously-skip-permissions` now makes bypass mode available in the permission cycle (was incorrectly defaulting sessions to bypass mode) - **Fixed**: 20+ additional fixes: background session model+effort preservation after retire/wake, Windows event-loop with network-drive working directories, `claude --bg --dangerously-skip-permissions` persisting across retire/wake, background color bleed on 256-color terminals, stale fragment rendering on Windows Terminal --- ### v2.1.142 (2026-05-15) > Fast mode upgraded to Opus 4.7 by default, new claude agents dispatch flags, root-level SKILL.md plugin support, /plugin shows LSP servers, MCP_TOOL_TIMEOUT fix, 25+ bug fixes. - **New**: 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 to Opus 4.6 - **New**: `claude agents` gains dispatch flags: `--add-dir`, `--settings`, `--mcp-config`, `--plugin-dir`, `--permission-mode`, `--model`, `--effort`, and `--dangerously-skip-permissions` to configure background sessions - **New**: Plugins with a root-level `SKILL.md` and no `skills/` subdirectory are now automatically surfaced as a skill - **New**: `/plugin` details pane and `claude plugin details` now show LSP servers a plugin provides - **New**: `/web-setup` warns before replacing an existing GitHub App connection - **Fixed**: `MCP_TOOL_TIMEOUT` now correctly raises the per-request fetch timeout for remote HTTP and SSE MCP servers (was capped at 60 seconds regardless of the configured value) - **Fixed**: Background sessions now recognize pre-existing git worktrees (was blocking Edit while `EnterWorktree` refused to create a duplicate) - **Fixed**: Daemon now exits cleanly after binary upgrade (e.g. `brew upgrade`) — was causing dispatched agents to crash-loop on the deleted path - **Fixed**: Background agents no longer crash-loop when Claude-in-Chrome extension is connected without a shared tab - **Fixed**: Clicking links in an attached `claude agents` session — headless browser shim no longer applies while attached - **Fixed**: `claude agents` "v to open in editor" now uses your shell's `$EDITOR`/`$VISUAL` instead of the daemon's default editor - **Fixed**: `claude agents` deadlock on Windows with network-drive working directories; Ctrl+C now works during startup - **Fixed**: `claude --bg --dangerously-skip-permissions` now persists across retire/wake - **Fixed**: Plugins using `skills: ["./"]` no longer show a false "path escapes plugin directory" error - **Fixed**: Plugin cache cleanup no longer deletes the active plugin version directory when no installation metadata is present - **Improved**: Reactive compaction: first summarize attempt 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" message --- ### v2.1.141 (2026-05-14) > Hook terminalSequence output field, claude agents --cwd, Rewind "Summarize up to here", 50+ bug fixes. - **New**: Hook `terminalSequence` field in JSON output — emit desktop notifications, window titles, and bells from hooks without needing a controlling terminal - **New**: `CLAUDE_CODE_PLUGIN_PREFER_HTTPS` — clones GitHub plugin sources over HTTPS instead of SSH (useful in environments without a GitHub SSH key) - **New**: `ANTHROPIC_WORKSPACE_ID` environment variable for workload identity federation — scopes the minted token to a specific workspace - **New**: `claude agents --cwd ` — scope the session list to a specific directory - **New**: `/feedback` can now include recent sessions (last 24h or 7 days) for issues spanning more than the current session - **New**: Rewind menu: "Summarize up to here" — compress earlier context while keeping recent turns intact - **Improved**: Auto mode permission dialog now explains when a `permissions.ask` rule caused the prompt - **Improved**: "View diff in your IDE" option restored on file-edit permission prompts when an IDE is connected - **Improved**: Background agents launched via `/bg` or `←←` now preserve current permission mode instead of reverting to default - **Improved**: `claude agents` — agents that finish work but leave a background shell running now move to Completed - **Improved**: Spinner warms to amber after 10 seconds to signal Claude is still working during long thinking periods - **Improved**: Plugin menu navigation — `→`/Tab switch tabs, `↑` moves to the tab strip, tab headers and search box clickable in fullscreen - **Fixed**: Bedrock `awsCredentialExport` now always runs when configured (was skipped when ambient AWS credentials resolved), fixing cross-account access - **Fixed**: Plugin MCP servers with unset config variables now show a "config issue" message with a fix-it hint instead of a generic connection failure - **Fixed**: MCP HTTP/SSE servers returning 403 on connect now show "needs auth" instead of "failed" - **Fixed**: Remote MCP servers no longer disconnect unnecessarily when the optional server-events stream fails to reconnect — tool calls continue over POST - **Fixed**: Remote Control MCP connectors failing with 401 when worker session token rotated mid-session - **Fixed**: Remote Control no longer re-enrolls a trusted device when the server rejects a stale token — loops through `/login` properly - **Fixed**: 40+ additional fixes: markdown table cell-wrap regression, Ctrl+C in vim INSERT/VISUAL mode, alternative `chat:submit` keybindings, `voice:pushToTalk` custom keybindings, Windows Alt+V image paste, `/tui` with running background shells, `/model` changing autocompact threshold in other sessions, transcript view letter shortcuts after mouse click --- ### v2.1.140 (2026-05-13) > Agent tool subagent_type case-insensitive matching, plugin folder warnings, targeted bug fixes. - **Improved**: `Agent` tool `subagent_type` matching now case- and separator-insensitive — `"Code Reviewer"` resolves to `code-reviewer`, `"backend_architect"` to `backend-architect` - **Improved**: Updated agent color palette - **Improved**: 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` - **Fixed**: `/goal` silently hanging when `disableAllHooks` or `allowManagedHooksOnly` is set — now shows a clear message - **Fixed**: Symlinked settings hot-reload regression — symlinked 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 (allows more startup 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**: Windows event-loop stall 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 --- ### v2.1.139 (2026-05-12) > Agent view (Research Preview), /goal command, hook exec form + continueOnBlock, 40+ bug fixes. - **New**: Agent view (Research Preview) — `claude agents` opens a single list of all sessions (running, blocked on you, or done). Each row shows the session status, last response preview, and time since last interaction. Navigate with left arrow from any session or launch directly from the terminal. Select a session to peek at the last turn and reply inline without fully attaching; press Enter to attach. Background any session with `/bg`, or launch directly to the background with `claude --bg [task]`. Available on Pro, Max, Team, Enterprise, and API plans. - **New**: `/goal` command — set a completion condition; Claude keeps working across turns until met, with live elapsed/turns/tokens overlay panel - **New**: `/scroll-speed` command to tune mouse wheel scroll speed with live preview - **New**: `claude plugin details ` — shows plugin component inventory and projected per-session token cost - **New**: Transcript view navigation: `?` for shortcuts, `{`/`}` to jump between user prompts, `v` to toggle shortcut panel - **New**: Hook `args: string[]` field (exec form) — spawns command directly without a shell, path placeholders need no quoting - **New**: Hook `continueOnBlock` config option for `PostToolUse` — set `true` to feed rejection reason back to Claude and continue the turn - **New**: MCP stdio servers now receive `CLAUDE_PROJECT_DIR` in environment; plugin configs can reference `${CLAUDE_PROJECT_DIR}` in commands - **Improved**: Compaction prompt now asks the model to preserve sensitive user instructions - **Fixed**: `/mcp` Reconnect picks up `.mcp.json` edits without a restart; shows HTTP status + URL when reconnect fails - **Fixed**: Deadlock where expired credentials + `forceRemoteSettingsRefresh` blocked `claude auth login/logout/status` - **Fixed**: `autoAllowBashIfSandboxed` not auto-approving commands with shell expansions like `$VAR` and `$(cmd)` - **Fixed**: Unbounded MCP SSE memory growth — response bodies now capped at 16 MB per SSE frame - **Fixed**: `Skill(name *)` wildcard permission rules now work as prefix match (matching `Bash(ls *)` behavior) - **Fixed**: Settings hot-reload not detecting edits to symlinked `~/.claude/settings.json` - **Fixed**: 30+ additional fixes: hook terminal corruption, plugin dependency stale count, mouse wheel speed in Cursor/VS Code, MCP resources from disconnected servers in autocomplete, CJK/emoji border overflow, bash history up-arrow, multi-image paste --- ### v2.1.138 (2026-05-11) > Internal fixes. - **Fixed**: Internal fixes (no user-visible changes) --- ### v2.1.137 (2026-05-11) > [VSCode] Fixed extension failing to activate on Windows. - **Fixed**: VS Code extension failing to activate on Windows --- ### v2.1.136 (2026-05-11) > settings.autoMode.hard_deny, CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL, MCP /clear disappear fix, 40+ UI/terminal bug fixes. - **New**: `settings.autoMode.hard_deny` — auto mode classifier rules that block unconditionally regardless of user intent or allow exceptions - **New**: `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` to re-enable the session quality survey for enterprises capturing responses via OpenTelemetry - **Fixed**: MCP servers (`.mcp.json`, plugins, claude.ai connectors) silently disappearing after `/clear` in VS Code extension, JetBrains plugin, and Agent SDK - **Fixed**: MCP OAuth refresh tokens lost when multiple servers refresh concurrently — no more daily re-authentication for multi-server setups - **Fixed**: Rare login loop where a concurrent credential write could overwrite a freshly-rotated OAuth token and force re-login - **Fixed**: 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 - **Fixed**: WSL2: image paste from Windows clipboard now works via 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 - **Improved**: Visual consistency across slash command dialogs — standardized footer hints, spacing, arrow-key styling; dialog frame appears immediately during loading - **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**: `@` file picker not matching files created mid-session, and not finding files in directories with 100+ entries - **Fixed**: 30+ additional UI/terminal fixes: failed tool calls expand in fullscreen, Backspace/Ctrl+Backspace swap fix, `/usage` weekly reset date display, CJK terminal overflow, `/insights` crash on malformed tool calls, renderer crash on collapsibility change, shell-integration lock files not respecting `CLAUDE_CONFIG_DIR`, trailing whitespace in copied output, plugin uninstall case-insensitivity, `AskUserQuestion` multi-select array fix, `CronList` missing qualifiers, MCP tool results invisible on content-block returns --- ### v2.1.133 (2026-05-08) > worktree.baseRef setting, effort level in hooks, subagent skills fix, 15+ bug fixes. > **Breaking**: `worktree.baseRef` defaults to `fresh` (branches from `origin/`), reverting 2.1.128 behavior where `EnterWorktree` used local HEAD. Set `worktree.baseRef: "head"` in settings to restore prior behavior. - **New**: `worktree.baseRef` setting (`fresh` | `head`) — `fresh` (default) branches from `origin/`; `head` keeps local HEAD including unpushed commits. Applies to `--worktree`, `EnterWorktree`, and agent-isolation worktrees - **New**: `sandbox.bwrapPath` / `sandbox.socatPath` managed settings (Linux/WSL) to specify custom bubblewrap and socat binary locations - **New**: `parentSettingsBehavior` admin-tier key (`first-wins` | `merge`) to let admins opt SDK `managedSettings` into policy merge - **New**: Hooks receive active effort level via `effort.level` JSON field and `$CLAUDE_EFFORT` env var in Bash subcommands - **Improved**: Focus mode behavior and memory usage (background workers released under memory pressure) - **Fixed**: Subagents not discovering project/user/plugin skills via the Skill tool - **Fixed**: Parallel sessions dead-ending at 401 after refresh-token race wiped shared credentials - **Fixed**: `HTTP(S)_PROXY` / `NO_PROXY` / mTLS not respected for full MCP OAuth flow (discovery, client registration, token exchange, refresh) - **Fixed**: Read/Write/Edit denied on mapped network drives via `--add-dir` / SDK `additionalDirectories` - **Fixed**: Remote Control stop/interrupt from claude.ai not fully canceling the CLI session (queued messages stalled after interrupting stuck tool) - **Fixed**: `/effort` in one session unexpectedly changing effort level of other concurrent sessions - **Fixed**: `claude --help` now lists `--remote-control` flag - **Fixed**: VS Code extension: `claudeCode.claudeProcessWrapper` failing with "Unsupported platform" when extension build doesn't bundle a Claude binary --- ### v2.1.132 (2026-05-08) > CLAUDE_CODE_SESSION_ID in Bash env, CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN opt-out, MCP memory fix, 20+ terminal/TUI fixes. - **New**: `CLAUDE_CODE_SESSION_ID` env var now passed to Bash tool subprocess environment (matches `session_id` in hook JSON input) - **New**: `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1` to opt out of the fullscreen alternate-screen renderer and keep output in the terminal's native scrollback - **New**: "Pasting…" footer hint while a Ctrl+V image paste is being read from the clipboard - **Fixed**: Unbounded memory growth (10GB+ RSS) when a stdio MCP server writes non-protocol data to stdout - **Fixed**: External SIGINT (`kill -INT`, IDE stop button) not running graceful shutdown — terminal modes now restored and `--resume` hint printed - **Fixed**: `--resume` failing with `no low surrogate in string` when tool error truncation split an emoji; pre-corrupted sessions sanitized on load - **Fixed**: `--permission-mode` flag ignored when resuming a plan-mode session with `-p --continue`/`--resume`; plan mode not re-applied after `ExitPlanMode` within the same session - **Fixed**: Fullscreen mode showing blank screen after laptop sleep/wake or Ctrl+Z/`fg` until next keystroke - **Fixed**: Cursor landing mid-grapheme on Ctrl+E/A/K/U/arrow keys with Indic conjuncts or ZWJ emoji wrapping across lines - **Fixed**: Vim operators corrupting text with decomposed (NFD) accented characters - **Fixed**: Pasting text starting with `/` silently swallowing input or triggering unknown-command reply - **Fixed**: Stray escape sequences in prompt when focus events or mouse-tracking reports interleave with bracketed paste - **Fixed**: Mouse wheel scrolling too fast in Cursor and VS Code 1.92–1.104 (upstream xterm.js bug); scroll-wheel runaway in JetBrains IDE 2025.2 - **Fixed**: `/usage` Ctrl+S hanging when copying stats screenshot to clipboard on Linux/X11 - **Fixed**: `/terminal-setup` showing contradictory error in Windows Terminal (Shift+Enter is natively supported) - **Fixed**: `/effort` picker not reflecting `CLAUDE_CODE_EFFORT_LEVEL` env var override - **Fixed**: `/status` showing wrong default model for some users - **Fixed**: Slash command autocomplete popup capped at ~3–5 visible commands instead of scaling with terminal height - **Fixed**: Statusline `context_window` token counts showing cumulative session totals instead of current context usage - **Fixed**: Alt+T (thinking toggle) not working on macOS 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**: MCP servers failing `tools/list` silently showing 0 tools — now retries once and shows "connected · tools fetch failed" in `/mcp` - **Fixed**: Unauthorized claude.ai MCP connectors showing as "failed" instead of "needs auth"; headless `-p` mode no longer retries non-transient 4xx failures - **Fixed**: Bedrock and Vertex 400 errors when `ENABLE_PROMPT_CACHING_1H` is set --- ### v2.1.131 (2026-05-06) > VS Code extension Windows activation fix, Mantle auth fix. - **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 --- ### v2.1.129 (2026-05-06) > --plugin-url flag, CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE, Ctrl+R all-projects history restored, skillOverrides fix, 20+ bug fixes. - **New**: `--plugin-url ` flag to fetch a plugin `.zip` archive from a URL for the current session - **New**: `CLAUDE_CODE_FORCE_SYNC_OUTPUT=1` env var to force-enable synchronized output on terminals where auto-detection fails (e.g. Emacs `eat`) - **New**: `CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE`: when set, Homebrew or WinGet installations run the upgrade command in the background and prompt to restart - **Changed**: Plugin manifest `themes` and `monitors` declarations should now go under `"experimental": { ... }` — top-level still works but `claude plugin validate` will warn - **Changed**: Gateway `/v1/models` discovery is now opt-in via `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1` (was automatic in 2.1.126–2.1.128) - **Improved**: Ctrl+R history picker defaults to all projects again (pre-2.1.124 behavior) — press Ctrl+S to narrow to current project or session - **Improved**: Third-party deployments (Bedrock, Vertex, Foundry, `ANTHROPIC_BASE_URL` gateway) no longer see spinner tips pointing at first-party Anthropic surfaces - **Fixed**: `skillOverrides` setting now works: `off` hides from model and `/`, `user-invocable-only` hides from model only, `name-only` collapses description - **Fixed**: `claude_code.pull_request.count` OTel metric now counts PRs/MRs created via MCP tools (not just shell commands) - **Fixed**: Policy refusal error messages now include 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 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 (~1.6k tokens wasted per call) - **Fixed**: `/agents` Library list arrow-key navigation — highlighted agent stays visible when list exceeds 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 with stored OAuth credentials lacking `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 honored for in-project paths - **Fixed**: `deniedMcpServers` patterns with `*://` scheme wildcard not matching mixed-case hostnames - **Fixed**: Harmless WebSocket warning logged as error in `--debug` during voice mode - **Fixed**: [VSCode] `/clear` not clearing the conversation context and displayed transcript --- ### v2.1.128 (2026-05-05) > EnterWorktree branch from local HEAD, --plugin-dir .zip support, --channels console auth, /mcp tool count, parallel bash tool fix, sub-agent prompt cache fix, 35+ bug fixes. - **Fixed**: `EnterWorktree` now creates the new branch from local HEAD as documented — unpushed commits are no longer dropped when branching - **New**: `--plugin-dir` accepts `.zip` plugin archives in addition to directories - **New**: `--channels` now works with console (API key) authentication — managed orgs must set `channelsEnabled: true` in managed settings - **Improved**: `/mcp` shows tool count for each connected server and flags servers that connected with 0 tools - **Improved**: Reconnecting MCP servers no longer flood the conversation with full tool-name lists on every reconnect — re-announced tools are summarized by server prefix - **Improved**: SDK hosts receive a persistent `localSettings` suggestion for Bash permission prompts, so "Always allow" writes to `.claude/settings.local.json` - **Improved**: Bare `/color` (no args) now picks a random session color - **Improved**: `/model` picker collapses duplicate Opus 4.7 entries; current Opus shows as "Opus" instead of "Opus 4.7" - **Improved**: Subprocesses (Bash, hooks, MCP, LSP) no longer inherit `OTEL_*` env vars — OTEL-instrumented apps run via Bash no longer pick up the CLI's own OTLP endpoint - **Fixed**: Parallel shell tool calls — a failing read-only command (grep, git diff, ls) no longer cancels sibling calls - **Fixed**: Sub-agent progress summaries missing the prompt cache (~3× `cache_creation` reduction) - **Fixed**: Sessions on 1M-context models with a smaller autocompact window falsely blocked with "Prompt is too long" - **Fixed**: MCP stdio servers receiving corrupted arguments when `CLAUDE_CODE_SHELL_PREFIX` is set and an argument contains spaces or shell metacharacters - **Fixed**: `/plugin update` never detecting new versions of npm-sourced plugins - **Fixed**: MCP: `workspace` is now a reserved server name — existing servers with that name are skipped with a warning - **Fixed**: Markdown link labels lost on terminals without OSC 8 hyperlink support — links now render as `label (url)` - **Fixed**: Tab navigation in `/config` stranding focus — the tab header stays focused so arrows and Esc keep working - **Fixed**: Fenced code blocks inside list items carrying leading whitespace into the clipboard on copy-paste - **Fixed**: MCP tool results dropping images when the server returns both structured content and content blocks - **Fixed**: Terminal progress indicator (OSC 9;4) flickering off between tool calls - **Fixed**: 20+ additional terminal, clipboard, and session management bug fixes --- ### v2.1.126 (2026-05-01) > Gateway /v1/models listing in /model picker, claude project purge, OAuth paste code for WSL2/SSH, Windows PowerShell 7 as primary shell, security fix, 40+ bug fixes. - **New**: `/model` picker now lists models from your gateway's `/v1/models` endpoint when `ANTHROPIC_BASE_URL` points at an Anthropic-compatible gateway - **New**: `claude project purge [path]` deletes all Claude Code state for a project (transcripts, tasks, file history, config entry) — supports `--dry-run`, `-y/--yes`, `-i/--interactive`, and `--all` - **Improved**: `--dangerously-skip-permissions` now bypasses prompts for writes to `.claude/`, `.git/`, `.vscode/`, shell config files, and other previously-protected paths (catastrophic removal commands still prompt as a safety net) - **Improved**: `claude auth login` accepts the OAuth code pasted into the terminal when the browser callback can't reach localhost (WSL2, SSH, containers) - **Improved**: `claude_code.skill_activated` OpenTelemetry event now fires for user-typed slash commands with a new `invocation_trigger` attribute (`"user-slash"`, `"claude-proactive"`, or `"nested-skill"`) - **Improved**: Auto mode spinner now turns red when a permission check stalls, instead of looking like the tool is running - **Improved**: Windows — PowerShell 7 installed via Microsoft Store, MSI without PATH, or `.NET global tool` is now detected; when PowerShell tool is enabled, Claude treats PowerShell as the primary shell instead of defaulting to Bash - **Improved**: Read tool — removed the per-file malware-assessment reminder that caused spurious refusals on legacy models - **Security**: Fixed `allowManagedDomainsOnly` / `allowManagedReadPathsOnly` being ignored when a higher-priority managed-settings source lacked a `sandbox` block - **Fixed**: Pasting an image larger than 2000px no longer breaks the session — images are downscaled on paste, oversized images in history are automatically removed and the request retried - **Fixed**: OAuth login failing with timeout on slow or proxied connections, in IPv6-only devcontainers, and when the browser callback can't reach localhost - **Fixed**: "Stream idle timeout" error after waking Mac from sleep mid-request; background and remote sessions no longer falsely abort during long model thinking pauses - **Fixed**: Japanese/Korean/Chinese text rendering as garbled characters on Windows in no-flicker mode - **Fixed**: `Ctrl+L` clearing the prompt input — it now only forces a screen redraw, matching readline behavior - **Fixed**: Deferred tools (WebSearch, WebFetch, etc.) not available to skills with `context: fork` on their first turn - **Fixed**: Windows clipboard writes no longer expose copied content in process command-line arguments visible to EDR/SIEM telemetry; also fixes >22KB selections not reaching the clipboard - **Fixed**: Agent SDK hang when the model emits a malformed tool name in a parallel tool call batch - **Fixed**: `/plugin` Uninstall reporting "Enabled" instead of "Uninstalled" --- ### v2.1.123 (2026-04-29) > Hotfix: OAuth 401 retry loop when CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1. - **Fixed**: OAuth authentication failing with a 401 retry loop when `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` is set --- ### v2.1.122 (2026-04-28) > ANTHROPIC_BEDROCK_SERVICE_TIER env var, PR URL in /resume search, Vertex AI/Bedrock fixes, image resize fix, many bug fixes. - **New**: `ANTHROPIC_BEDROCK_SERVICE_TIER` environment variable to select a Bedrock service tier (`default`, `flex`, or `priority`) via `X-Amzn-Bedrock-Service-Tier` header - **New**: Pasting a PR URL into the `/resume` search box now finds the session that created that PR (GitHub, GitHub Enterprise, GitLab, and Bitbucket) - **Improved**: `/mcp` now shows claude.ai connectors hidden by a manually-added server with the same URL, with a hint to remove the duplicate - **Fixed**: `/branch` producing forks that fail with "tool_use ids were found without tool_result blocks" from rewound timelines - **Fixed**: `/model` not showing Effort option for Bedrock application inference profile ARNs - **Fixed**: Vertex AI / Bedrock returning `invalid_request_error: output_config: Extra inputs are not permitted` on title generation and structured-output queries - **Fixed**: Vertex AI `count_tokens` endpoint returning 400 errors for users behind proxy gateways - **Fixed**: `!exit` / `!quit` in bash mode terminating the CLI instead of running as a shell command - **Fixed**: Images sent to newer models being resized to 2576px instead of the correct 2000px maximum - **Fixed**: Remote control session idle status redrawing twice per second, flooding `tmux -CC` control pipes - **Fixed**: `ToolSearch` missing MCP tools that connected after session start in nonblocking mode - **Fixed**: A malformed hooks entry in `settings.json` no longer invalidating the entire file - **Fixed**: `spinnerTipsOverride.excludeDefault` not suppressing time-based spinner tips - **Fixed**: Assistant messages appearing blank in some sessions due to a stale view preference --- ### v2.1.121 (2026-04-27) > alwaysLoad MCP config, plugin prune, PostToolUse output replacement for all tools, critical memory leak fixes, many bug fixes. - **New**: `alwaysLoad` option in MCP server config — when `true`, all tools from that server skip tool-search deferral and are always available - **New**: `claude plugin prune` removes orphaned auto-installed plugin dependencies; `plugin uninstall --prune` cascades - **New**: Type-to-filter search box in `/skills` for finding a skill without scrolling - **New**: `PostToolUse` hooks can now replace tool output for all tools via `hookSpecificOutput.updatedToolOutput` (previously MCP-only) - **New**: Vertex AI: support X.509 certificate-based Workload Identity Federation (mTLS ADC) - **Improved**: Fullscreen mode: typing into the prompt no longer jumps scroll to the bottom after scrolling up - **Improved**: Dialogs that overflow the terminal are now scrollable with arrow keys, PgUp/PgDn, home/end, and mouse wheel - **Improved**: Clicking any line of a long URL wrapping across rows in fullscreen now opens the full URL - **Improved**: `--dangerously-skip-permissions` no longer prompts for writes to `.claude/skills/`, `.claude/agents/`, and `.claude/commands/` - **Improved**: `/terminal-setup` now enables iTerm2's "Applications in terminal may access clipboard" for `/copy` in tmux - **Improved**: MCP servers that hit a transient startup error now auto-retry up to 3 times - **Improved**: Terminal tab session title is now generated in your configured `language` setting - **Improved**: Claude.ai connectors with the same upstream URL are now deduplicated - **Improved**: LSP diagnostic summaries now expand on click/ctrl+o and show the expand hint - **Improved**: OpenTelemetry: added `stop_reason`, `gen_i.response.finish_reasons`, and `user_system_prompt` (gated behind `OTEL_LOG_USER_PROMPTS`) - **[VSCode]**: `/context` now opens a native token usage dialog; voice dictation respects `accessibility.voice.speechLanguage` - **Fixed**: Unbounded memory growth (multi-GB RSS) when processing many images in a session - **Fixed**: `/usage` leaking up to ~2GB of memory on machines with large transcript histories - **Fixed**: Memory leak when long-running tools fail to emit a clear progress event - **Fixed**: Bash tool becoming permanently unusable when the start directory is deleted or moved mid-session - **Fixed**: `--resume` crashing on startup in external builds - **Fixed**: `--resume` failing on large sessions when a transcript line was corrupted by an unclean shutdown - **Fixed**: `thinking.type.enabled is not supported` error with Bedrock application inference profile ARNs - **Fixed**: Microsoft 365 MCP OAuth failing with duplicate or unsupported `prompt` parameter - **Fixed**: Scrollback duplication when pressing Ctrl+L in non-fullscreen mode on tmux, GNOME Terminal, Windows Terminal, Konsole - **Fixed**: claude.ai MCP connectors silently disappearing on transient auth error at startup - **Fixed**: "Always allow" rules for built-in tools in remote sessions not surviving worker restarts - **Fixed**: `NO_PROXY` not respected for all HTTP clients when set via `managed-settings.json` on native build - **Fixed**: Managed settings approval prompt exiting the session even when accepted --- ### v2.1.120 (2026-04-24) > Windows no longer requires Git Bash, claude ultrareview CI subcommand, ${CLAUDE_EFFORT} in skills, many bug fixes. - **New**: Windows: Git for Windows (Git Bash) is no longer required — when absent, Claude Code uses PowerShell as the shell tool - **New**: `claude ultrareview [target]` subcommand to run `/ultrareview` non-interactively from CI or scripts; `--json` for raw output; exits 0 on completion or 1 on failure - **New**: Skills can reference the current effort level with `${CLAUDE_EFFORT}` in their content - **New**: `AI_AGENT` environment variable set for subprocesses so `gh` can attribute traffic to Claude Code - **Improved**: Faster session start when many claude.ai connectors are configured but not authorized - **Improved**: `claude plugin validate` now accepts `$schema`, `version`, and `description` at the top level of `marketplace.json` - **Improved**: Auto-compact in auto mode now displays `auto` (lowercase) instead of a misleading token value - **Improved**: Spinner tips recommending the desktop app or creating skills/agents are hidden when you already have them - **Improved**: Show a "use PgUp/PgDn to scroll" hint when the terminal sends arrow keys instead of scroll events - **Fixed**: Pressing Esc during a stdio MCP tool call closing the entire server connection (regression in 2.1.105) - **Fixed**: `/rewind` and other interactive overlays not responding to keyboard input after `--resume` - **Fixed**: Terminal scrollback duplication in non-fullscreen mode (resize, dialog dismiss, long sessions) - **Fixed**: `DISABLE_TELEMETRY` / `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` not suppressing usage metrics telemetry for API and enterprise users - **Fixed**: False-positive "Dangerous rm operation" permission prompts in auto mode for multi-line bash with pipe and redirect - **Fixed**: Long selection menus clipping below the terminal in fullscreen mode - **Fixed**: Write tool output collapsing instead of expanding when clicking "+N lines" in fullscreen - **Fixed**: Slash command picker jumping while typing; highlight now only matches contiguous substrings - **Fixed**: `/plugin` marketplace failing to load when one entry uses an unrecognized source format - **Fixed**: `find` in the Bash tool exhausting open file descriptors on large directory trees, causing host-wide crashes (macOS/Linux native builds) - **[VSCode]**: `/usage` now opens the native Account & Usage dialog; voice dictation respects the `language` setting --- ### v2.1.119 (2026-04-24) > /config settings persist to settings.json with override precedence, --from-pr supports GitLab/Bitbucket/GitHub Enterprise, agent frontmatter improvements, security fix for blockedMarketplaces, 30+ bug fixes. - **New**: `/config` settings (theme, editor mode, verbose, etc.) now persist to `~/.claude/settings.json` and participate in project/local/policy override precedence - **New**: `prUrlTemplate` setting to point the footer PR badge at a custom code-review URL instead of github.com - **New**: `CLAUDE_CODE_HIDE_CWD` environment variable to hide the working directory in the startup logo - **New**: `--from-pr` now accepts GitLab merge-request, Bitbucket pull-request, and GitHub Enterprise PR URLs - **Improved**: `--print` mode now honors the agent's `tools:` and `disallowedTools:` frontmatter, matching interactive-mode behavior - **Improved**: `--agent ` now honors the agent definition's `permissionMode` for built-in agents - **Improved**: PowerShell tool commands can now be auto-approved in permission mode, matching Bash behavior - **Improved**: `PostToolUse` and `PostToolUseFailure` hook inputs now include `duration_ms` (tool execution time, excluding permission prompts and PreToolUse hooks) - **Improved**: Subagent and SDK MCP server reconfiguration now connects servers in parallel instead of serially - **Improved**: Plugins pinned by another plugin's version constraint now auto-update to the highest satisfying git tag - **Improved**: Vim mode: Esc in INSERT no longer pulls a queued message back into the input; press Esc again to interrupt - **Improved**: Slash command suggestions now highlight the characters that matched your query; picker wraps long descriptions instead of truncating - **Improved**: `owner/repo#N` shorthand links now use your git remote's host instead of always pointing at github.com - **Security**: `blockedMarketplaces` now correctly enforces `hostPattern` and `pathPattern` entries - **Fixed**: Pasting CRLF content (Windows clipboards, Xcode console) inserting an extra blank line between every line - **Fixed**: Glob and Grep tools disappearing on native macOS/Linux builds when Bash tool is denied via permissions - **Fixed**: Scrolling up in fullscreen mode snapping back to the bottom every time a tool finishes - **Fixed**: Auto mode overriding plan mode with conflicting "Execute immediately" instructions - **Fixed**: `Agent` tool with `isolation: "worktree"` reusing stale worktrees from prior sessions - **Fixed**: `TaskList` returning tasks in arbitrary filesystem order instead of sorted by ID - **Fixed**: `/plan` and `/plan open` not acting on the existing plan when entering plan mode - **Fixed**: Skills invoked before auto-compaction being re-executed against the next user message - **Fixed**: Verbose output setting not persisting after restart; disabled MCP servers appearing as "failed" in `/status` - **Fixed**: `${ENV_VAR}` placeholders in `headers` for HTTP/SSE/WebSocket MCP servers not being substituted - **Fixed**: MCP OAuth `--client-secret` not sent during token exchange for `client_secret_post` servers - **Fixed**: `/skills` Enter key closing dialog instead of pre-filling `/` in the prompt - **Fixed**: Spurious "GitHub API rate limit exceeded" hints from PR titles mentioning "rate limit" - **Fixed**: Async `PostToolUse` hooks emitting no response writing empty entries to session transcript - **Fixed**: `@`-file Tab completion replacing the entire prompt when used inside a slash command with an absolute path ### v2.1.118 (2026-04-23) > Vim visual mode, /usage merging /cost+/stats, custom named themes, hooks invoke MCP tools directly, many bug fixes. - **New**: Vim visual mode (`v`) and visual-line mode (`V`) with selection, operators (d, y, c, >, <), and visual feedback - **New**: `/cost` and `/stats` merged into `/usage` — both old commands remain as typing shortcuts that open the relevant tab - **New**: Create and switch between named custom themes from `/theme`, or hand-edit JSON files in `~/.claude/themes/`; plugins can ship themes via a `themes/` directory - **New**: Hooks can now invoke MCP tools directly via `type: "mcp_tool"` in hook configuration - **New**: `DISABLE_UPDATES` env var completely blocks all update paths including manual `claude update` (stricter than `DISABLE_AUTOUPDATER`) - **New**: WSL on Windows can inherit Windows-side managed settings via `wslInheritsWindowsSettings` policy key - **Improved**: Auto mode `"$defaults"` sentinel — include in `autoMode.allow`, `autoMode.soft_deny`, or `autoMode.environment` to add custom rules alongside built-in list instead of replacing it - **Improved**: "Don't ask again" option added to auto mode opt-in prompt - **Improved**: `--continue`/`--resume` now find sessions that added the current directory via `/add-dir` - **Improved**: `/color` syncs the session accent color to claude.ai/code when Remote Control is connected - **Improved**: `/model` picker now honors `ANTHROPIC_DEFAULT_*_MODEL_NAME`/`_DESCRIPTION` overrides when using a custom `ANTHROPIC_BASE_URL` gateway - **Improved**: `claude plugin tag` to create release git tags for plugins with version validation - **Improved**: Auto-update skip due to version constraints now appears in `/doctor` and `/plugin` Errors tab - **Fixed**: `/mcp` menu hiding OAuth Authenticate/Re-authenticate for servers with `headersHelper`, and HTTP/SSE servers stuck in "needs authentication" after a transient 401 - **Fixed**: MCP OAuth tokens with no `expires_in` in response requiring re-authentication every hour - **Fixed**: MCP step-up authorization silently refreshing instead of prompting when `insufficient_scope` 403 names a scope already held - **Fixed**: macOS keychain race where concurrent token refresh could overwrite a freshly-refreshed OAuth token - **Fixed**: Credential save crash on Linux/Windows corrupting `~/.claude/.credentials.json` - **Fixed**: `/login` having no effect in sessions launched with `CLAUDE_CODE_OAUTH_TOKEN` env var - **Fixed**: Agent-type hooks failing with "Messages are required for agent hooks" for non-Stop events - **Fixed**: `prompt` hooks re-firing on tool calls made by an agent-hook verifier subagent - **Fixed**: `/fork` writing full parent conversation to disk per fork — now writes a pointer and hydrates on read - **Fixed**: Alt+K / Alt+X / Alt+^ / Alt+_ freezing keyboard input - **Fixed**: `plugin install` on an already-installed plugin not re-resolving a dependency at wrong version - **Fixed**: Subagents resumed via `SendMessage` not restoring their explicit `cwd` ### v2.1.117 (2026-04-22) > Default effort now `high` for Pro/Max on Opus 4.6 + Sonnet 4.6, native bfs/ugrep on macOS/Linux, Opus 4.7 1M context fix, /model persistence, 15+ bug fixes. - **Changed**: Default effort level changed to `high` for Pro/Max subscribers on Opus 4.6 and Sonnet 4.6 (was `medium`) - **Fixed**: Opus 4.7 sessions were computing `/context` percentage against a 200K window instead of the native 1M — causing inflated percentages and premature autocompact - **New**: Native macOS/Linux builds now use embedded `bfs` (search) and `ugrep` (grep) replacing the Glob/Grep tools — faster without an extra tool round-trip (Windows and npm-installed builds unchanged) - **Improved**: `/model` selections now persist across restarts even when the project pins a different model; startup header shows when the active model comes from a project or managed-settings pin - **Improved**: `/resume` now offers to summarize stale, large sessions before re-reading them (matching existing `--resume` behavior) - **Improved**: Faster startup when both local and claude.ai MCP servers are configured (concurrent connect now default) - **Improved**: `plugin install` on an already-installed plugin now installs any missing dependencies instead of stopping at "already installed"; dependency errors say "not installed" with an install hint - **Improved**: `cleanupPeriodDays` retention sweep now also covers `~/.claude/tasks/`, `~/.claude/shell-snapshots/`, and `~/.claude/backups/` - **Improved**: Agent frontmatter `mcpServers` are now loaded for main-thread agent sessions via `--agent` - **Improved**: OpenTelemetry `user_prompt` events now include `command_name` and `command_source` for slash commands; cost/token/API events include `effort` attribute when supported - **Fixed**: Plain-CLI OAuth sessions dying with "Please run /login" when access token expires mid-session — token now refreshed reactively on 401 - **Fixed**: `WebFetch` hanging on very large HTML pages (truncates input before HTML-to-markdown conversion) - **Fixed**: Crash when a proxy returns HTTP 204 No Content - **Fixed**: `/login` having no effect when launched with `CLAUDE_CODE_OAUTH_TOKEN` env var and that token expires - **Fixed**: Prompt-input undo (`Ctrl+_`) doing nothing immediately after typing, and skipping a state on each undo step - **Fixed**: `NO_PROXY` not being respected for remote API requests when running under Bun - **Fixed**: Bedrock application-inference-profile requests failing with 400 when backed by Opus 4.7 with thinking disabled ### v2.1.116 (2026-04-21) > Regression fix release: ends the six-week Triple Harness Incident (Mar 4–Apr 20, 2026). Also: /resume up to 67% faster on large sessions, inline thinking progress spinner, sandbox security fix, many bug fixes. - **Regression fix**: All three harness-level changes responsible for the six-week quality regression (effort defaults, thinking-budget clear, verbosity instruction) are reverted or fixed in this release — see [Triple Harness Incident](./known-issues.md#triple-harness-incident-effort-thinking-tokens-verbosity-mar-apr-2026) for the full timeline - **Improved**: `/resume` is up to 67% faster on sessions 40MB+ and handles sessions with many dead-fork entries more efficiently - **Improved**: Faster MCP startup when multiple stdio servers are configured; `resources/templates/list` is deferred to the first `@`-mention - **Improved**: Smoother fullscreen scrolling in VS Code, Cursor, and Windsurf; `/terminal-setup` now configures the editor's scroll sensitivity - **Improved**: Thinking spinner shows inline progress ("still thinking", "thinking more", "almost done thinking") replacing the separate hint row - **Improved**: `/config` search now matches option values (e.g., searching "vim" finds the Editor mode setting) - **Improved**: `/doctor` can now be opened while Claude is responding, without waiting for the current turn to finish - **Improved**: `/reload-plugins` and background plugin auto-update now auto-install missing dependencies from already-added marketplaces - **Improved**: Bash tool surfaces a hint when `gh` commands hit GitHub's API rate limit, so agents can back off instead of retrying - **Improved**: Usage tab shows 5-hour and weekly usage immediately and no longer fails when the usage endpoint is rate-limited - **Improved**: Agent frontmatter `hooks:` now fire when running as a main-thread agent via `--agent` - **Improved**: Slash command menu shows "No commands match" when filter has zero results, instead of disappearing - **Security**: Sandbox auto-allow no longer bypasses the dangerous-path safety check for `rm`/`rmdir` targeting `/`, `$HOME`, or other critical system directories - **Fixed**: Devanagari and other Indic scripts rendering with broken column alignment in the terminal UI - **Fixed**: `Ctrl+-` not triggering undo in terminals using the Kitty keyboard protocol (iTerm2, Ghostty, kitty, WezTerm, Windows Terminal) - **Fixed**: `Cmd+Left/Right` not jumping to line start/end in Kitty protocol terminals (Warp fullscreen, kitty, Ghostty, WezTerm) - **Fixed**: `Ctrl+Z` hanging the terminal when Claude Code is launched via a wrapper process (e.g., `npx`, `bun run`) - **Fixed**: Scrollback duplication in inline mode where resizing the terminal or large output bursts would repeat earlier conversation history - **Fixed**: Modal search dialogs overflowing the screen at short terminal heights, hiding the search box and keyboard hints - **Fixed**: Scattered blank cells and disappearing composer chrome in the VS Code integrated terminal during scrolling - **Fixed**: Intermittent API 400 error related to cache control TTL ordering that could occur when a parallel request completed during request setup - **Fixed**: `/branch` rejecting conversations with transcripts larger than 50MB - **Fixed**: `/resume` silently showing an empty conversation on large session files instead of reporting the load error - **Fixed**: `/plugin` Installed tab showing the same item twice when it appears under Needs attention or Favorites - **Fixed**: `/update` and `/tui` not working after entering a worktree mid-session --- ### v2.1.114 (2026-04-18) > Fixed crash in permission dialog when an agent teams teammate requested tool permission. - **Fixed**: Crash in the permission dialog when an agent teams teammate requested tool permission --- ### v2.1.113 (2026-04-18) > Native Claude Code binary spawning, sandbox.network.deniedDomains setting, security hardening, many bug fixes. - **New**: CLI now spawns a native Claude Code binary via a per-platform optional dependency instead of bundled JavaScript - **New**: `sandbox.network.deniedDomains` setting — block specific domains even when a broader `allowedDomains` wildcard would otherwise permit them - **Improved**: Fullscreen mode — `Shift+↑/↓` now scrolls the viewport when extending a selection past the visible edge - **Improved**: `Ctrl+A` and `Ctrl+E` now move to the start/end of the current logical line in multiline input (readline behavior) - **Improved**: Windows: `Ctrl+Backspace` now deletes the previous word - **Improved**: Long URLs in responses and bash output stay clickable when they wrap across lines (in terminals with OSC 8 hyperlinks) - **Improved**: `/loop` — pressing Esc now cancels pending wakeups; wakeups display as "Claude resuming /loop wakeup" for clarity - **Improved**: `/extra-usage` now works from Remote Control (mobile/web) clients - **Improved**: Remote Control clients can now query `@`-file autocomplete suggestions - **Improved**: `/ultrareview` — faster launch with parallelized checks, diffstat in the launch dialog, animated launching state - **Improved**: Subagents that stall mid-stream now fail with a clear error after 10 minutes instead of hanging silently - **Improved**: Bash tool — multi-line commands whose first line is a comment now show the full command in the transcript, closing a UI-spoofing vector - **Improved**: Running `cd && git …` no longer triggers a permission prompt when the `cd` is a no-op - **Security**: On macOS, `/private/{etc,var,tmp,home}` paths are now treated as dangerous removal targets under `Bash(rm:*)` allow rules - **Security**: Bash deny rules now match commands wrapped in `env`/`sudo`/`watch`/`ionice`/`setsid` and similar exec wrappers - **Security**: `Bash(find:*)` allow rules no longer auto-approve `find -exec`/`-delete` - **Fixed**: MCP concurrent-call timeout handling where a message for one tool call could silently disarm another call's watchdog - **Fixed**: Cmd-backspace / `Ctrl+U` to once again delete from the cursor to the start of the line - **Fixed**: Markdown tables breaking when a cell contains an inline code span with a pipe character - **Fixed**: Session recap auto-firing while composing unsent text in the prompt - **Fixed**: `/copy` "Full response" not aligning markdown table columns for pasting into GitHub, Notion, or Slack - **Fixed**: Messages typed while viewing a running subagent hidden from its transcript and misattributed to the parent AI - **Fixed**: `Bash dangerouslyDisableSandbox` running commands outside the sandbox without a permission prompt - **Fixed**: `/effort auto` confirmation now says "Effort level set to max" to match the status bar label - **Fixed**: The "copied N chars" toast overcounting emoji and other multi-code-unit characters - **Fixed**: `/insights` crashing with `EBUSY` on Windows - **Fixed**: Exit confirmation dialog mislabeling one-shot scheduled tasks as recurring — now shows a countdown - **Fixed**: Slash/@ completion menu not sitting flush against the prompt border in fullscreen mode - **Fixed**: `CLAUDE_CODE_EXTRA_BODY output_config.effort` causing 400 errors on subagent calls to models without effort support and on Vertex AI - **Fixed**: Prompt cursor disappearing when `NO_COLOR` is set - **Fixed**: `ToolSearch` ranking so pasted MCP tool names surface the actual tool instead of description-matching siblings - **Fixed**: Compacting a resumed long-context session failing with "Extra usage is required for long context requests" - **Fixed**: `plugin install` succeeding when a dependency version conflicts with an already-installed plugin — now reports `range-conflict` - **Fixed**: "Refine with Ultraplan" not showing the remote session URL in the transcript - **Fixed**: SDK image content blocks that fail to process crashing the session — now degrade to a text placeholder - **Fixed**: Remote Control sessions not streaming subagent transcripts - **Fixed**: Remote Control sessions not being archived when Claude Code exits - **Fixed**: `thinking.type.enabled is not supported` 400 error when using Opus 4.7 via a Bedrock Application Inference Profile ARN --- ### v2.1.111 (2026-04-16) > Claude Opus 4.7 xhigh effort level, /ultrareview cloud code review, /less-permission-prompts skill, Auto mode for Max subscribers. - **New**: Claude Opus 4.7 `xhigh` effort level — between `high` and `max`; available via `/effort`, `--effort`, and the model picker; other models fall back to `high` - **New**: Auto mode for Max subscribers on Opus 4.7 — no longer requires `--enable-auto-mode` - **New**: `/ultrareview` skill — runs comprehensive code review in the cloud using parallel multi-agent analysis; invoke without arguments for current branch, or `/ultrareview ` for a specific GitHub PR - **New**: `/less-permission-prompts` skill — scans transcripts for common read-only Bash and MCP tool calls, proposes a prioritized allowlist for `.claude/settings.json` - **New**: "Auto (match terminal)" theme option — follows your terminal's dark/light mode; selectable via `/theme` - **New**: `/effort` opens an interactive slider when called without arguments; arrow-key navigation + Enter to confirm - **Improved**: Plan files now named after your prompt (e.g. `fix-auth-race-snug-otter.md`) instead of purely random words - **Improved**: Read-only bash commands with glob patterns (e.g. `ls *.ts`) and commands starting with `cd &&` no longer trigger a permission prompt - **Improved**: `/setup-vertex` and `/setup-bedrock` show the actual `settings.json` path when `CLAUDE_CONFIG_DIR` is set, seed model candidates from existing pins on re-run, offer a "with 1M context" option - **Improved**: `/skills` menu now supports sorting by estimated token count — press `t` to toggle - **Improved**: `Ctrl+U` clears the entire input buffer (`Ctrl+Y` restores); `Ctrl+L` forces full screen redraw - **Improved**: Typo suggestions for near-miss `claude ` invocations (e.g. `claude udpate` → "Did you mean `claude update`?") - **Improved**: Headless `--output-format stream-json` includes `plugin_errors` on the init event; `OTEL_LOG_RAW_API_BODIES` env var emits full API bodies as OpenTelemetry log events - **Fixed**: Terminal display tearing (random characters, drifting input) in iTerm2 + tmux setups when terminal notifications are sent - **Fixed**: `@` file suggestions re-scanning entire project on every turn in non-git directories; only config files shown in freshly-initialized git repos with no tracked files - **Fixed**: LSP diagnostics from before an edit appearing after it, causing model to re-read already-edited files - **Fixed**: Tab-completing `/resume` immediately resuming an arbitrary titled session instead of showing the session picker - **Fixed**: `/clear` dropping the session name set by `/rename`, causing statusline to lose `session_name` - **Fixed**: Claude calling non-existent `commit` skill showing "Unknown skill: commit" for users without a custom `/commit` command - **Fixed**: 429 rate-limit errors on Bedrock/Vertex/Foundry incorrectly referencing status.claude.com - **Fixed**: Multiple additional issues — bare URLs unclickable when terminal wraps them across lines, feedback surveys appearing back-to-back, Windows `CLAUDE_ENV_FILE` and SessionStart hook env files now apply, drive-letter path permission rules correctly root-anchored - **Fixed**: Plugin error handling improvements — dependency errors distinguish conflicting/invalid/overly complex version requirements; stale resolved versions after `plugin update`; `plugin install` recovers from interrupted installs - **Reverted**: v2.1.110 cap on non-streaming fallback retries — it traded long waits for more outright failures during API overload --- ### v2.1.110 (2026-04-16) > /tui fullscreen command, push notification tool, --resume resurrects scheduled tasks, /focus command, 30+ bug fixes. - **New**: `/tui` command and `tui` setting — run `/tui fullscreen` to switch to flicker-free rendering within the same conversation - **New**: Push notification tool (`PushNotification`) — Claude can send mobile push notifications when Remote Control and "Push when Claude decides" config are enabled - **New**: `--resume`/`--continue` now resurrects unexpired scheduled tasks - **New**: `/focus` command — focus view is now toggled separately; `Ctrl+O` reverts to toggling between normal and verbose transcript only - **New**: `autoScrollEnabled` config — disable conversation auto-scroll in fullscreen mode - **New**: Option to show Claude's last response as commented context in the `Ctrl+G` external editor (enable via `/config`) - **Improved**: `/plugin` Installed tab — items needing attention and favorites appear at the top; disabled items hidden behind a fold; `f` to favorite - **Improved**: `/doctor` warns when an MCP server is defined in multiple config scopes with different endpoints - **Improved**: Session recap now enabled for users with telemetry disabled (Bedrock, Vertex, Foundry, `DISABLE_TELEMETRY`); opt out via `/config` or `CLAUDE_CODE_ENABLE_AWAY_SUMMARY=0` - **Improved**: Write tool informs the model when you edit proposed content in the IDE diff before accepting; Bash tool enforces documented maximum timeout - **Fixed**: MCP tool calls hanging indefinitely when server connection drops mid-response on SSE/HTTP transports - **Fixed**: Non-streaming fallback retries causing multi-minute hangs when API is unreachable - **Fixed**: `PermissionRequest` hooks returning `updatedInput` not being re-checked against `permissions.deny` rules; `setMode:'bypassPermissions'` now respects `disableBypassPermissionsMode` - **Fixed**: `PreToolUse` hook `additionalContext` dropped when the tool call fails - **Fixed**: stdio MCP servers that print stray non-JSON lines to stdout being disconnected on first stray line (regression in 2.1.105) - **Fixed**: Headless/SDK auto-title firing an extra Haiku request when `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` or `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` is set - **Fixed**: Garbled startup rendering in macOS Terminal.app and other terminals without synchronized output support - **Security**: Hardened "Open in editor" actions against command injection from untrusted filenames - **Fixed**: Multiple additional issues — high CPU usage in fullscreen, dropped keystrokes after relaunch, `/skills` menu not scrolling, Remote Control session renames not persisting, session cleanup not removing subagent transcripts --- ### v2.1.109 (2026-04-15) > Improved extended-thinking indicator with a rotating progress hint. - **Improved**: Extended-thinking indicator now shows a rotating progress hint for better visibility during long thinking phases --- ### v2.1.108 (2026-04-15) > 1-hour prompt cache TTL option, /recap session context feature, built-in slash commands discoverable via Skill tool, /undo alias for /rewind. - **New**: `ENABLE_PROMPT_CACHING_1H` env var — opt into 1-hour prompt cache TTL on API key, Bedrock, Vertex, and Foundry (`ENABLE_PROMPT_CACHING_1H_BEDROCK` deprecated but still honored); `FORCE_PROMPT_CACHING_5M` to force 5-minute TTL - **New**: `/recap` feature — provides context when returning to a session after a break; configurable in `/config`; force with `CLAUDE_CODE_ENABLE_AWAY_SUMMARY` if telemetry disabled - **New**: Model can now discover and invoke built-in slash commands like `/init`, `/review`, `/security-review` via the Skill tool - **New**: `/undo` is now an alias for `/rewind` - **New**: "verbose" indicator when viewing the detailed transcript (`Ctrl+O`) - **New**: Startup warning when prompt caching is disabled via `DISABLE_PROMPT_CACHING*` environment variables - **Improved**: `/model` now warns before switching models mid-conversation (next response re-reads full history uncached) - **Improved**: `/resume` picker defaults to sessions from the current directory; press `Ctrl+A` to show all projects - **Improved**: Error messages distinguish server rate limits from plan usage limits; 5xx/529 errors link to status.claude.com; unknown slash commands suggest closest match - **Improved**: Memory footprint for file reads, edits, and syntax highlighting reduced by loading language grammars on demand - **Fixed**: Paste not working in the `/login` code prompt (regression in 2.1.105) - **Fixed**: `DISABLE_TELEMETRY` subscribers falling back to 5-minute prompt cache TTL instead of 1 hour - **Fixed**: Bash tool producing no output when `CLAUDE_ENV_FILE` (e.g. `~/.zprofile`) ends with a `#` comment line - **Fixed**: `--resume ` losing session's custom name and color set via `/rename` - **Fixed**: Diacritical marks (accents, umlauts, cedillas) being dropped from responses when `language` setting is configured - **Fixed**: `--teleport` and `--resume ` precondition errors (dirty git tree, session not found) exiting silently --- ### v2.1.107 (2026-04-14) > Show thinking hints sooner during long operations. - **Improved**: Thinking hints now appear sooner during long operations for better real-time feedback --- ### v2.1.105 (2026-04-13) > EnterWorktree path parameter, PreCompact hook blocking, plugin background monitors, /proactive alias, WebFetch strips CSS/JS, /doctor with status icons and f-to-fix, and multiple bug fixes. - **New**: `path` parameter on `EnterWorktree` tool — switch into an existing worktree of the current repository - **New**: PreCompact hook support — hooks can block compaction by exiting with code 2 or returning `{"decision":"block"}` - **New**: Background monitor support for plugins via a top-level `monitors` manifest key — auto-arms at session start or on skill invoke - **New**: `/proactive` is now an alias for `/loop` - **Improved**: Stalled API streams now abort after 5 minutes of no data and retry non-streaming instead of hanging indefinitely - **Improved**: Network error messages show retry immediately instead of a silent spinner - **Improved**: `/doctor` layout with status icons; press `f` to have Claude fix reported issues - **Improved**: `WebFetch` strips `