Source Intelligence
Sweep 28 Aug 2026 · 00:00Z Build v2.1.250 478 read Stable v2.1.236 Latest v2.1.250 Next v2.1.250 Feeds RSS JSON llms.txt

DisclaimerUnofficial, and not affiliated with Anthropic. Nearly all of this is read straight out of what ships: npm bundles, captured prompts, published docs. Anthropic's own notes go in verbatim, marked as theirs. The rest is my reading, and every entry carries the strings behind it. If one looks wrong, vote it down and say why.

Page history

Claude Code changelog

changelog

15 recorded changes 5992 lines First seen Last changed Upstream

History

changelog Changed · +4 / -0 lines

This page is larger than the 256 KiB this site keeps, so one side of the diff below stops where the stored text does.

from line 6
 
 Run `claude --version` to check your installed version.
 
+<Update label="2.1.250" description="August 28, 2026">
+  * Bug fixes and reliability improvements
+</Update>
+
 <Update label="2.1.248" description="August 27, 2026">
   * Added `--restricted` (or `CLAUDE_CODE_RESTRICTED=1`): removes the built-in tools that run commands or code and `WebFetch` (unless named in `--tools`), keeps file tools inside the working directory, refuses `bypassPermissions`, and ignores user, project and local settings files
   * Added `experimental.cacheTtl` (`"5m"` or `"1h"`) to agent frontmatter: a per-agent prompt cache TTL used when no subagent TTL setting is configured
from line 2083
   * Fixed the Bash tool returning exit code 127 on every command for some users (a regression introduced in 2.1.147)
 </Update>
 
-<Update label="2.1.147" description="May 21, 2026">
-  * Pinned background sessions (`Ctrl+T` in `claude agents`) now stay alive when idle, are restarted in p
+<Update label="2.1.147" description="May 21, 202

changelog Changed · +52 / -0 lines

This page is larger than the 256 KiB this site keeps, so one side of the diff below stops where the stored text does.

from line 6
 
 Run `claude --version` to check your installed version.
 
+<Update label="2.1.248" description="August 27, 2026">
+  * Added `--restricted` (or `CLAUDE_CODE_RESTRICTED=1`): removes the built-in tools that run commands or code and `WebFetch` (unless named in `--tools`), keeps file tools inside the working directory, refuses `bypassPermissions`, and ignores user, project and local settings files
+  * Added `experimental.cacheTtl` (`"5m"` or `"1h"`) to agent frontmatter: a per-agent prompt cache TTL used when no subagent TTL setting is configured
+  * Added `claude self-hosted-runner --client-label <label>` (or `SELF_HOSTED_RUNNER_CLIENT_LABEL`) to override the label the runner registers with (default: hostname)
+  * Added server-managed settings diagnostics: a startup warning when the settings fail to load, and a `/doctor` and `/status` line explaining a load failure or why they weren't fetched (Bedrock/Vertex/third-party provider, custom `ANTHROPIC_BASE_URL`)
+  * Added a warning in `/web-setup` when the GitHub CLI token lacks the `workflow` scope, since pushes to very large repositories can be rejected without it
+  * Added `/usage-credits` for Enterprise organizations billed through AWS Marketplace, self-serve Enterprise, and Enterprise trials, so members can request a higher usage limit from their admin
+  * Added cross-session messaging (`SendMessage` / `ListAgents`) between sessions on the same machine on Bedrock, Vertex, and Foundry, and when telemetry is disabled
+  * Fixed a prompt-cache miss (and lost extended-thinking context) roughly once an hour in long sessions, caused by tool definitions being re-rendered after an OAuth token refresh
+  * Fixed the `ScheduleWakeup` tool definition changing between a session and its `--resume` when the account had entered usage overage, causing a full prompt-cache miss on the resumed session's first turn
+  * Fixed Claude Desktop and Cowork sessions disappearing after 30 days: the transcript cleanup now keeps desktop-written sessions while they are in the app (unless org policy manages retention); the new `desktopSessionCleanupPeriodDays` setting caps the exemption
+  * Fixed being sent to the login screen when another Claude Code process held the token refresh lock while the session token had expired; the request now fails with a retryable error instead
+  * Windows: Fixed the `claude agents` list not responding to the keyboard after detaching from a session, or when launched in a terminal tab left in win32-input-mode
+  * Fixed the recommended Console sign-in in `/login` failing with an OAuth error before showing a sign-in URL on machines where it can't be used (for example when `ANTHROPIC_API_KEY` or an API key helper is set); it now falls back to the API-key sign-in
+  * Fixed model names in `/model` and fast-mode switch notices to render as code, so suffixes like `[1m]` display literally instead of as a link
+  * Fixed `claude agents` skipping the workspace trust prompt when the `CI` environment variable is set
+  * Fixed `claude agents` crashing on launch when the PR-status cache held a malformed entry
+  * Fixed agent view resurrecting a weeks-old background session after the machine was off: such a session now shows as stopped at its real end, and opening it asks before resuming its saved conversation
+  * Fixed agent view sometimes opening an older conversation, and dropping the typed prompt, when starting a new session
+  * Fixed `claude agents`: opening a stopped session that you already resumed in another terminal no longer starts a second process on that conversation; the row now says it is open in a terminal
+  * Fixed `claude agents` and `claude rm` refusing to delete a session ("has commits that are not pushed anywhere") when its worktree branch was already merged into your checked-out default branch (e.g. local `main`) but not yet pushed
+  * Fixed background sessions waiting silently when a `PermissionRequest` or `PreToolUse` hook prints an invalid answer: the `claude agents` row now names the hook and the schema error
+  * Fixed hooks silently treating a stdout `{…}` object that isn't valid JSON as plain text; it's now reported as a hook error with the parse message
+  * Fixed `/mcp` listing a project `.mcp.json` entry that declares the claude.ai connector type under the trusted "claude.ai" heading; it now appears under its real scope
+  * Fixed MCP servers whose `headersHelper` supplies the `Authorization` header falling into OAuth discovery on a 401 instead of re-running the helper and retrying the call as documented
+  * Fixed `/login` to a Claude apps gateway hanging when the managed-settings security approval dialog was required
+  * Fixed gateway model discovery (`CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY`) never running when `apiKeyHelper` is the only credential
+  * Fixed `claude logs` leaving mouse tracking, bracketed paste and the alternate screen switched on in the terminal it was run from
+  * Fixed the trust dialog's list of repo permission rules showing a garbled character when a long rule was cut off in the middle of an emoji
+  * Fixed the permission mode indicator staying hidden behind the "Press Ctrl-C again to exit" hint when you press shift+tab right after ctrl+c
+  * Fixed `/ultrareview` and locally seeded cloud sessions uploading uncommitted edits to `prod.env`-style and `*.tfvars` files, or to editor swap, temp, and backup copies of credential files (e.g. `key.pem.tmp`, `id_rsa.swo`); they now stay on your machine
+  * Fixed Remote Control sessions occasionally never showing a permission prompt or the latest messages on the connected device after the CLI silently reconnected
+  * Fixed cloud sessions occasionally failing at startup when the container's session credentials were not yet readable
+  * Fixed `claude remote-control` rejecting its own flags (e.g. `--spawn`, `--name`) when a global flag or a wrapper-injected option precedes the subcommand
+  * Fixed startup warnings (e.g. "N MCP servers need authentication") rendering one column right of the rest of the transcript
+  * Fixed a backgrounded worktree session losing its checkout: the background session now holds the worktree's lock while it runs, so cleanup and `git worktree remove` leave it alone
+  * Fixed @-mentions of other sessions not matching names typed with non-Latin characters (for example Korean entered through an IME)
+  * Fixed an invalid `crossSessionInbound` value being silently ignored: it now warns and holds cross-session messages (user settings) or refuses them (managed settings) until fixed
+  * Fixed rate-limit, usage, and fast-mode messages telling you to run `/usage-credits` when that command isn't available for your organization (e.g. hidden with `DISABLE_EXTRA_USAGE_COMMAND`)
+  * \[VSCode] Fixed a chat tab getting stuck on "No conversation found" when its session was never saved; it now starts a new conversation instead
+  * Improved the Workflow tool's prompt footprint: its description is now about 1k tokens instead of 5.7k, with the script-writing reference moved into a bundled `workflow-authoring` skill
+  * Improved the prompt-footer PR badge to check GitHub less often while the pull request is unchanged; a push or a `gh pr` command still refreshes it right away
+  * Improved managed settings: client-side timeout, MCP startup-mode, and stream-watchdog env vars no longer trigger the settings-approval prompt
+  * Improved `/ultrareview <PR#>` to check before launch that the GitHub account connected to your Claude account can access the repository, and to explain how to fix it, instead of failing after the cloud session starts
+  * Improved cross-session messaging: falls back to a private per-user `/tmp` directory when the default one can't be used, and the notice and `/status` name the directory to fix
+  * Changed shift+enter in the agent view dispatch input to insert a newline (matching the prompt); ctrl+enter now dispatches and attaches
+  * Changed `/loop`: self-paced dynamic mode and the no-prompt autonomous default are now always available, including on Bedrock/Vertex/Foundry
+  * Changed Anthropic telemetry export failures to log at debug level as `[Anthropic telemetry]` instead of `[3P telemetry] OTEL diag error`, so they are not mistaken for your OTel collector failing
+  * Changed cross-session messaging in Linux user namespaces: root-equivalent trust for unmapped owners is limited to canonical system directories
+  * Changed `SendMessage` from a subagent to another session: the result now notes that any reply is delivered to the parent session's conversation, not to the subagent
+</Update>
+
 <Update label="2.1.247" description="August 26, 2026">
   * Added the `SendFeedback` tool: when something goes wrong in a session, Claude can draft a feedback report for you to review and send from `/feedback` (turn off with the `feedbackDrafts` setting)
   * Added `{id, text, cooldownSessions, priority}` entries, `tipsFile`, and `label` to `spinnerTipsOverride`, so organizations can rotate their own tips alongside the built-in ones
from line 2080
 </Update>
 
 <Update label="2.1.147" description="May 21, 2026">
-  * 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
-  * 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 `&amp;`, 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
-</Update>
-
-<Update label="2.1.145" description="May 19, 2026">
-  * 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
-</Update>
-
-<Update label="2.1.144" description="May 19, 2026">
-  * 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 AskUserQuesti
+  * Pinned background sessions (`Ctrl+T` in `claude agents`) now stay alive when idle, are restarted in p

changelog Changed · +36 / -0 lines

This page is larger than the 256 KiB this site keeps, so one side of the diff below stops where the stored text does.

from line 6
 
 Run `claude --version` to check your installed version.
 
+<Update label="2.1.247" description="August 26, 2026">
+  * Added the `SendFeedback` tool: when something goes wrong in a session, Claude can draft a feedback report for you to review and send from `/feedback` (turn off with the `feedbackDrafts` setting)
+  * Added `{id, text, cooldownSessions, priority}` entries, `tipsFile`, and `label` to `spinnerTipsOverride`, so organizations can rotate their own tips alongside the built-in ones
+  * Added a tip on Bash permission prompts pointing to auto mode, with a one-keystroke "Yes, and switch to auto mode" option
+  * Added `/claude-api cost-optimize` to profile an existing project's Claude API spend and work through cost levers (caching, token hygiene, batch, effort, model choice) one measured change at a time
+  * Updated the `/claude-api` skill with Admin API coverage (organization members, invites, workspaces, API keys, rate limit reports, workload identity federation, CMEK)
+  * Fixed fast arrow-key + Enter sequences acting on the row above the one you navigated to in history search, `/config`, `/mcp`, `/skills`, background tasks, and `/model`
+  * Fixed sub-agents dying on a first-call model 404: they now use the session's fallback model chain, and the error returned to the parent includes the error type, status, request id, and model
+  * Fixed a hook or background agent that printed megabytes of error output being able to overflow the conversation and wedge the session on "Prompt is too long"
+  * Fixed Ctrl keyboard shortcuts not firing under non-Latin (e.g. Cyrillic) keyboard layouts in kitty-protocol terminals
+  * Fixed text like `<35;150;7M` being inserted into the prompt when a mouse report arrived split across reads right after the escape prefix
+  * Fixed the Bash sandbox's after-command cleanup deleting a dotfile-managed `~/.claude/settings.json` symlink (nix/home-manager, stow) when it is repointed outside the sandbox's writable area
+  * Fixed `/terminal-setup` overwriting your entire Zed `keymap.json` instead of merging in its keybinding
+  * Fixed `/rename` silently confirming when the session registry could not be updated; it now says other sessions may still show the old name
+  * Fixed `/compact` and "Summarize from here" in sessions started with `--agent` summarizing under the default system prompt instead of the conversation's own
+  * Fixed a background session showing "opening…" forever in `claude agents` after its terminal host process died; the row now fails within seconds with the reason, and Enter restarts it
+  * Fixed unbounded memory growth when a hook's or background task's output file could not be written; the file now notes where output was lost
+  * Fixed `/install-github-app` over SSH: the copy shortcut now says how the sign-in URL was copied instead of always claiming success, and the URL appears immediately when no browser can open
+  * Fixed shell commands carried over from the foreground logging an internal error or showing a misleading `[exited with code -1]` line when they finish in background sessions
+  * Fixed a version-less marketplace plugin's live cache directory being deleted and recreated on a second-scope install, which could disrupt a running session using it
+  * Fixed Remote Control sessions started with `/remote-control` not reporting the working-tree diff to connected clients
+  * Fixed self-hosted runner sessions reporting `running` before Claude Code had started, which could trigger a premature "Claude is waiting for your input" notification from the Claude desktop app
+  * Fixed first-run setup exiting with "Unable to connect to Anthropic services" when managed settings configure Claude apps gateway sign-in and Anthropic endpoints are unreachable
+  * Fixed cloud sessions (Claude Code on the web, desktop and mobile apps) sometimes showing the previous permission mode when you switch modes right after sending a message
+  * Fixed cloud sessions going silent when the session's container restarts between turns while a background agent, shell, or monitor is still running — the resumed session now reports the lost work
+  * Improved plugin marketplace hardening: names containing control or invisible characters are rejected, and marketplace-supplied text in `/plugin` and `claude plugin` output is escape-safe
+  * Improved Bedrock, Vertex, and Foundry sessions (and any with telemetry disabled): Claude is now told when a configured MCP server failed to connect, instead of concluding its tools don't exist
+  * Changed Sonnet 5's default auto-compact window to its full 1M context, so sessions on the 1M window now auto-compact at about 967K tokens instead of about 934K
+  * Changed cross-session peer messages to collapse by default to a one-line `Message from @<sender>: <first line>` preview; Ctrl+O expands the full body
+  * Changed terminal hyperlinks in rendered markdown: link targets that point at a network or automounter path, contain a control character, or lead with an invisible character now render as plain text
+  * Changed the prompt-footer PR badge to skip its GitHub re-check on terminal refocus when the last check is under a minute old
+  * Changed analytics to stay off from startup, not only after login, when managed settings force gateway login or a custom OAuth deployment is configured
+  * Changed Claude apps gateway sign-in requests to identify Claude Code (a `surface=claude_code` device-authorization parameter and a `claude-code/<version>` User-Agent)
+  * Changed organization sign-in enforcement to exit at start when the administrator's managed settings cannot be read, even if host-supplied or per-user Windows registry settings exist
+</Update>
+
 <Update label="2.1.246" description="August 25, 2026">
   * Added a startup warning for Bash allow rules with a wildcard before the subcommand (e.g. `Bash(git * main)`), since they also match options inserted before the subcommand
   * Added an Auto mode tab to `/permissions` for viewing and editing auto mode classifier rules
from line 2100
   * 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 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.
-</Update>
-
-<Update label="2.1.143" description="May 15, 2026">
-  * 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-cl
+  * Fixed pressing Escape in the AskUserQuesti

changelog Changed · +64 / -0 lines

This page is larger than the 256 KiB this site keeps, so one side of the diff below stops where the stored text does.

from line 6
 
 Run `claude --version` to check your installed version.
 
+<Update label="2.1.246" description="August 25, 2026">
+  * Added a startup warning for Bash allow rules with a wildcard before the subcommand (e.g. `Bash(git * main)`), since they also match options inserted before the subcommand
+  * Added an Auto mode tab to `/permissions` for viewing and editing auto mode classifier rules
+  * Added the turn's completion time to the end-of-turn duration line, e.g. `✻ Sautéed for 23s · done 6:05 PM`
+  * Fixed fullscreen mode showing a blank transcript after resizing the terminal and jumping to the bottom until the next keypress
+  * Fixed a severe transcript slowdown when a diff contained a very long single line (e.g. a base64 string); such lines now render truncated with a marker
+  * Fixed erratic fullscreen scrolling when positioned at an earlier message, including jump-to-bottom getting stuck mid-transcript
+  * Fixed background sessions failing to open after 45 seconds when Claude Code's starting directory had been deleted, the machine had slept, or the host is slow to start processes
+  * Fixed background sessions failing to open with "Couldn't start the background service … EACCES" when another Claude Code process was re-installing the npm package at that moment
+  * Fixed markdown rendering being disabled for a whole message when its first 500 characters contained no markdown, and for `+`/`N)` lists and setext headings
+  * Fixed MCP tool calls interrupted by an incoming message in headless/remote sessions being reported to the model as "completed with no output" instead of an explicit interrupted error
+  * Fixed MCP tool arguments being sent as JSON strings when the parameter's schema is empty (`{}`), instead of their real type
+  * Fixed a command interrupted mid-run showing as "Ran 1 shell command" with no sign it was cut
+  * Fixed pressing ← or running `/background` during a dynamic workflow restarting its finished subagents; it now asks first and says how many subagents would restart
+  * Fixed opening a just-started session in `claude agents` while its worker was still booting (common on Windows) stopping it with "was stopped while the respawn was in flight"
+  * Fixed `claude agents` listing a backgrounded named session twice; backgrounding the same conversation again now numbers the new row (e.g. `my-session (2)`)
+  * Fixed the background retention sweep removing git worktrees under `.claude/worktrees/` that you created yourself when an old background-session record pointed at them
+  * Fixed auto mode tool calls being denied as "temporarily unavailable" on very large sessions by scaling the safety-check deadline with prompt size
+  * Fixed the plugin cache creating duplicate SHA-named directories for the same plugin
+  * Fixed plugin skills whose frontmatter `name` already includes the `<plugin>:` prefix showing it doubled in the slash menu (e.g. `/plugin:plugin:skill`)
+  * Fixed `claude plugin update` failing for an installed plugin given its bare name (only the fully-qualified name worked)
+  * Fixed plugin installation failing when `plugin.json` was saved with a UTF-8 byte-order mark (BOM)
+  * Fixed `/reload-plugins` reporting 0 skills for plugins that define skills under `skills/*/SKILL.md`
+  * Fixed hook error messages showing a literal `${CLAUDE_PLUGIN_ROOT}` instead of the resolved plugin path
+  * Fixed `/rename` replacing the theme's prompt border color (including a custom theme's `promptBorder`) with the default cyan; the border now keeps your theme's color unless you pick one with `/color`
+  * Fixed custom theme diff colors (`diffAdded`/`diffRemoved` and their dimmed variants) being ignored in diffs and the `/theme` preview
+  * Fixed a `keybindings.json` binding with an unknown action name silently deadening that key; it is now skipped so the default binding keeps working, and a warning is logged under `--debug`
+  * Fixed `/stats` activity heatmap showing each day's activity one cell off (Sunday's count under Monday) in timezones east of UTC
+  * Fixed `/fork` from an already-forked or backgrounded session starting the new session with an empty conversation
+  * Fixed prompts beginning with `/--` (e.g. Lean doc comments) being rejected as an unknown slash command instead of being sent to Claude
+  * Fixed the `@` file picker staying open after the typed text stopped matching a real path
+  * Fixed the status line's cost and duration resetting to zero after navigating to the agents view and back
+  * Fixed fullscreen mode moving keyboard focus onto the control under the pointer when you clicked the terminal window only to bring it back into focus
+  * Fixed path completion failing when the completion token or working directory contained a null byte
+  * Windows/macOS: Fixed headless sessions not cleaning up stale entries in `~/.claude/sessions` left by sessions that exited uncleanly
+  * Fixed the UI stopping with a render error on the first tool call when a third-party Anthropic-compatible endpoint (`ANTHROPIC_BASE_URL`) streams a `tool_use` block without an `id`
+  * Fixed the Write tool reporting "Out of memory" or freezing for a long time after overwriting a very large existing file, even though the file had been written
+  * Fixed `claude plugin install <name>` exiting silently (or hanging in a terminal) instead of reporting an error when `~/.claude/plugins/known_marketplaces.json` is empty or corrupted
+  * Fixed resumed sessions failing every turn with a 400 when the saved history contains tool blocks the Anthropic API does not accept (typically written by a third-party API proxy)
+  * Fixed `curl -fsSL https://claude.ai/install.sh | bash` failing with "Raw mode is not supported" for some Team/Enterprise users with server-managed settings
+  * Fixed sessions that ended in plan mode resuming outside plan mode in the VS Code extension, and in `claude -p --continue`/`--resume` with a permission prompt tool, when no permission mode was set
+  * Fixed the `Notification` hook not firing while the sandbox "Network request outside of sandbox" permission prompt is waiting
+  * Fixed Bash permission checks to always require approval for malformed commands with a dangling `&&` or `||` operator
+  * Fixed `--strict-mcp-config` sessions prompting to approve `.mcp.json` servers they would never load, which left background sessions waiting at startup
+  * Fixed telemetry and metrics requests to Anthropic carrying the API key configured for a third-party gateway (`ANTHROPIC_BASE_URL`); a credential is now only sent to its own host
+  * Fixed a visible API error on the first prompt after idle when `apiKeyHelper` returns short-lived JWTs: an expired cached token is now refreshed before sending, and 401/403 auth errors retry quietly
+  * Fixed memory growing with session length in the fullscreen and Ctrl+O transcript views: each rendered message row no longer retains a full copy of the transcript-wide tool lookups
+  * Fixed `/ultrareview` runs and cloud sessions launched at the same time from one repository (e.g. from several worktrees) sometimes starting with another launch's uncommitted changes
+  * Fixed the task progress count (e.g. `3/5`) shown for background cloud sessions such as `/autofix-pr` occasionally missing a task
+  * Fixed Remote Control sessions keeping their placeholder name in claude.ai and the Claude app until the second prompt; the auto-generated title now appears after the first prompt
+  * Fixed MCP tools marked `requiresUserInteraction` still offering "Yes, and don't ask again" in their permission prompt; the option wrote an allow rule the tool then ignored
+  * Fixed the self-hosted runner ending its live sessions or exiting when a work-poll response is malformed (e.g. an intercepting proxy's HTML page); it now retries the poll
+  * Improved `/cd`: the new directory's project settings, hooks, `.mcp.json` servers (behind the usual approval prompt), skills, and agents now take effect right after the move instead of on `--resume`
+  * Improved Bash tool latency on bash shells by replaying snapshot functions without a base64 subshell per function
+  * Improved subagent results: a subagent that stops at its `maxTurns` limit now returns its output marked as partial, with a hint to continue it via `SendMessage`, instead of appearing finished
+  * Improved non-interactive sessions (`-p`, SDK, cloud sessions) to automatically continue a response cut off mid-stream by a server error, connection loss, or stall instead of ending with an error
+  * Improved attribution of usage telemetry to your organization for workload identity federation sessions, events sent while `apiKeyHelper` runs at startup, and after a login token expired while idle
+  * Changed `/code-review` so Claude can also start it on its own on Bedrock, Vertex AI, and Foundry, through the Claude apps gateway, and when telemetry or non-essential traffic is disabled
+  * `/goal`: Changed idle sessions to start at most three check-ins on long-running background work per goal; your next message allows three more
+  * Changed `claude install` and `claude update` to defer a pending managed-settings consent prompt to the next interactive session instead of prompting mid-command
+  * Changed OpenTelemetry plugin events for plugins synced from claude.ai: `plugin_id_hash` now reflects the plugin's real marketplace, and `enabled_via` is `admin-install` for admin-installed plugins
+  * Fixed the command sandbox's filesystem configuration not respecting `--setting-sources`
+</Update>
+
 <Update label="2.1.245" description="August 25, 2026">
   * Fixed a crash on startup on Linux distributions that ship glibc 2.44 (for example Arch Linux, CachyOS and Fedora Rawhide)
 </Update>
from line 2111
   * 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
-</Update>
-
-<Update label="2.1.142" description="May 14, 2026">
-  * 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
-</Update>
-
-<Update label="2.1.141" description="May 13, 2026">
-  * 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
+  * Fixed right-cl

changelog Changed · +67 / -0 lines

This page is larger than the 256 KiB this site keeps, so one side of the diff below stops where the stored text does.

from line 6
 
 Run `claude --version` to check your installed version.
 
+<Update label="2.1.245" description="August 25, 2026">
+  * Fixed a crash on startup on Linux distributions that ship glibc 2.44 (for example Arch Linux, CachyOS and Fedora Rawhide)
+</Update>
+
+<Update label="2.1.243" description="August 25, 2026">
+  * Added a Loops breakdown to `/usage`: per-loop run count, total tokens, tokens per run, and last run, so runaway or chatty `/loop` tasks are easy to spot
+  * Added `modelPicker` setting: curate the `/model` picker with an ordered, labeled list of models (any id spelling, including Vertex/Bedrock ids), appended to or replacing the built-in lineup
+  * Added `promptCacheTtl` and `subagentPromptCacheTtl` settings so API-key and cloud-provider users can keep a 1-hour prompt cache on the main conversation while subagents stay at 5 minutes
+  * Added `modelPricing` managed setting so an organization's contracted per-model rates and discount multiplier are used for `/cost`, the status line, and telemetry cost figures instead of list price
+  * Added a keyless sign-in under `/login` → Anthropic Console: "Sign in with your Console account" (recommended) alongside creating an API key, so organizations that don't allow API keys can sign in
+  * Added a `Skipped sources` line to `/status` that lists managed settings sources (for example `managed-settings.json`) present but not applied because a higher-precedence managed source is active
+  * Added a `managed` marker in `/mcp` and `/plugins` on claude.ai connectors whose authentication is managed by your organization
+  * Added a tip pointing claude.ai users who haven't connected GitHub for Claude Code on the web to `/web-setup`
+  * Added a `/status` line showing whether GitHub is connected for Claude Code on the web (Pro/Max), pointing to `/web-setup` when it isn't
+  * Added the model (and effort level) each subagent ran on to `/tasks` and the agent detail dialogs
+  * Fixed remote MCP servers in non-interactive (`-p`) and SDK sessions never recovering after a dropped connection; they now reconnect automatically or report as failed
+  * Fixed MCP server sign-in started from the desktop app failing with "Invalid redirect URI" on servers that support client ID metadata documents (for example Linear)
+  * Fixed auto mode staying unavailable at startup when a temporary server-side disable was cached and later flag fetches failed
+  * Fixed auto mode tool calls being denied as "temporarily unavailable" after about a minute of waiting when the API was briefly overloaded and asked the client to retry
+  * Fixed the `/model` picker silently ignoring an Ultracode selection; picking Ultracode now applies it to the current session
+  * Fixed `/resume` only listing the 50 most recent sessions; the picker now loads more as you scroll
+  * Fixed cloud sessions resuming after a mid-turn restart with a pending hook or background-task notification re-sent as the prompt instead of the normal continuation message
+  * Fixed cross-session messaging silently turning off inside user namespaces and rootless containers after the 2.1.232 socket-directory hardening
+  * Fixed text that hangs outside its container (for example the sign-in URL in `/login`) losing its leading columns when another part of the screen repaints
+  * Fixed `spellcheck` not underlining a misspelled word typed directly after an emoji
+  * Fixed background subagents not waking when their last background Bash task completes
+  * Fixed sessions going silent for 10+ minutes when the Anthropic API never starts a response: the request now times out after \~3 minutes, retries once, then shows `API Error: No response from API`
+  * Fixed auth, model-availability, and other client-generated error messages rendering like model output instead of as error lines
+  * Fixed workload identity federation in CI: processes in one job share the exchanged token instead of re-exchanging the single-use token; a rejected exchange fails fast with the server's message
+  * Fixed server-managed `companyAnnouncements` not showing at startup in a session that began with signing in (for example the first launch after `/logout`)
+  * Fixed hook `if` conditions like `Bash(cat *)` firing on unrelated Bash commands when the command contained `$()` or backtick command substitution followed by more arguments
+  * Fixed plugin dependencies declared with a `marketplace` field never resolving when both plugins are loaded together via `--plugin-dir`
+  * Fixed `/reload-plugins` keeping the LSP tool after the last LSP plugin is disabled; it now also warns before an LSP plugin change that would re-read the conversation
+  * Fixed `--agents` silently ignoring invalid JSON or invalid agent definitions; it now exits with a clear error, like `--mcp-config`
+  * Fixed `/status` showing "Found invalid entries in: ." with no filename when `~/.claude.json` has an invalid MCP server entry
+  * Fixed `/clear` removing the `/rename` session name from the prompt bar even though the name was kept for the new session
+  * Fixed Ctrl+R history search and up-arrow history breaking when `~/.claude/history.jsonl` contains a malformed entry
+  * Fixed Ctrl+\[ not leaving vim INSERT mode in terminals that encode modified keys (modifyOtherKeys / kitty protocol)
+  * Fixed the local IDE connection being routed through `HTTPS_PROXY` (and sometimes failing) when `localhost` was listed in `NO_PROXY` but not lowercase `no_proxy`; both casings are now honored
+  * Fixed sandbox network-violation details being dropped from the Bash tool result when the blocked command still exited 0 (for example `curl` printing the proxy's 403 page)
+  * Fixed the status line `rate_limits` fields and `/usage` still showing a rate-limit window's pre-reset usage percentage after the window reset while the session was idle
+  * Fixed `claude --teleport <session>` exiting on uncommitted changes instead of offering to stash them and continue, as the session picker already does
+  * Fixed `/web-setup` repeatedly asking you to log in when an older GitHub CLI (without `gh auth token`) was already authenticated
+  * Fixed Claude in Chrome losing its connection to Claude Code after an auto-update cleaned up the version it was set up with; the native host now launches via the stable `claude` launcher
+  * \[VSCode] Fixed sessions started before feature flags were first fetched (for example right after install) opening in the default permission mode instead of auto mode or your configured default mode
+  * \[VSCode] Fixed Focus view sections you expanded collapsing on their own during subagent tool activity
+  * Improved startup time: sandbox and MCP bring-up no longer block the first frame, bare launches skip subcommand registration, and workflow discovery, settings, and trust-store work is cheaper
+  * Improved native install and auto-update download size: the binary is now zstd-compressed (about 75 MB instead of 340 MB on Linux x64)
+  * Improved attribution of usage telemetry to your organization for sessions that authenticate with `ANTHROPIC_AUTH_TOKEN` directly against the Anthropic API, so its data-handling settings apply
+  * Improved native binary size: about 2 MB smaller by storing the bundled skill and prompt text more compactly
+  * Improved memory usage of native builds: code is now loaded on demand instead of keeping the whole bundle resident (roughly 40–70 MB less memory per session)
+  * Improved peak memory usage in long-running sessions (the runtime now garbage-collects sooner as the heap grows)
+  * Improved `/login` over SSH: the sign-in URL appears immediately, pressing `c` reports how the URL was copied instead of always claiming success, and a hint explains how to select text in fullscreen
+  * Improved the error when effort `xhigh`/`max` is used with thinking turned off: it now names the level, the setting that disabled thinking, and `/effort high` as the fix
+  * Improved `/loop`: consecutive wake-ups where Claude has nothing to do now fold into a single line in the terminal instead of printing each one
+  * Changed the sandboxed Bash tool prompt to no longer list allowed network hosts, so Claude attempts requests (and you can approve new hosts) instead of assuming unlisted hosts are blocked
+  * Updated the `/model` picker and the bundled `claude-api` skill to show Sonnet 5's $2/$10 per Mtok pricing as its standard list price rather than a limited-time promo
+  * Changed computer use on macOS so clicking the desktop, Dock, or a Finder window requires granting Finder via the access dialog, like any other app
+  * Changed `/model`, `/fast`, and `/effort` to also run immediately instead of queueing until the turn ends on Bedrock, Vertex, and Foundry and when telemetry is disabled
+  * Fixed `claude remote-control` exiting and stranding attached Remote Control sessions when the server drops its environment mid-session; it now recovers
+  * Fixed Remote Control sessions served by `claude remote-control` sometimes getting stuck after it was stopped and restarted, for Team and Enterprise members without an admin or owner role
+  * Changed the cross-session messaging inbox socket to close connections that send no complete line within 30 seconds; scripts posting to it should connect once their data is ready
+  * Improved the notice when resuming a conversation whose Remote Control is held by another terminal: it now says sessions on other machines can't be seen from, or reach, this one
+  * \[VSCode] Improved history trimming in long sessions: older tool-activity rows are dropped first so your messages and Claude's replies stay visible
+  * \[VSCode] Improved attribution of the extension's own usage telemetry to your organization when you are signed in with a Claude account, so its data-handling settings apply
+</Update>
+
 <Update label="2.1.241" description="August 23, 2026">
   * Bug fixes and reliability improvements
 </Update>
from line 2124
   * 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
-</Update>
-
-<Update label="2.1.140" description="May 12, 2026">
-  * 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`.
-</Update>
-
-<Update label="2.1.139" description="May 11, 2026">
-  * 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](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 pl
+  * Fixed

changelog Changed · +4 / -0 lines

This page is larger than the 256 KiB this site keeps, so one side of the diff below stops where the stored text does.

from line 6
 
 Run `claude --version` to check your installed version.
 
+<Update label="2.1.241" description="August 23, 2026">
+  * Bug fixes and reliability improvements
+</Update>
+
 <Update label="2.1.240" description="August 22, 2026">
   * Bug fixes and reliability improvements
 </Update>
from line 2139
   * 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` picke
+  * Fixed pl

changelog Changed · +4 / -0 lines

This page is larger than the 256 KiB this site keeps, so one side of the diff below stops where the stored text does.

from line 6
 
 Run `claude --version` to check your installed version.
 
+<Update label="2.1.240" description="August 22, 2026">
+  * Bug fixes and reliability improvements
+</Update>
+
 <Update label="2.1.239" description="August 21, 2026">
   * Cost estimates (`/cost`, status line, `--max-budget-usd`) now include the 1.1× US-only-inference premium for data-residency workspaces
   * Added the one-time fullscreen renderer offer on Bedrock, Vertex, Foundry and other previously excluded setups; new installs there now start in fullscreen
from line 2136
   * 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 `/model` picke

changelog Changed · +62 / -0 lines

This page is larger than the 256 KiB this site keeps, so one side of the diff below stops where the stored text does.

from line 6
 
 Run `claude --version` to check your installed version.
 
+<Update label="2.1.239" description="August 21, 2026">
+  * Cost estimates (`/cost`, status line, `--max-budget-usd`) now include the 1.1× US-only-inference premium for data-residency workspaces
+  * Added the one-time fullscreen renderer offer on Bedrock, Vertex, Foundry and other previously excluded setups; new installs there now start in fullscreen
+  * Added `/claude-api upgrade` to migrate Python projects from `anthropic` 0.x to 1.x, and updated the skill's Python reference for 1.x (timeouts use `anthropic.Timeout`, not `httpx.Timeout`)
+  * Cloud sessions: plugins synced from claude.ai now show as `name@synced`, work with `claude plugin enable/disable <name>@synced`, and never override a same-named plugin you installed
+  * Alpine/musl builds: native image paste, clipboard, and audio-capture add-ons now load (musl-built binaries instead of glibc ones refused by the runtime)
+  * The usage-limit message shown when your monthly spend limit is already used up now also says when your session or weekly limit resets
+  * Fixed Bedrock streaming behind proxies that strip the response Content-Type header, which silently doubled billed API calls by re-running every turn non-streaming
+  * Fixed Claude Code hanging at startup behind an HTTPS proxy when using Bedrock with an SSO profile and `awsAuthRefresh` — the credential pre-check now honors `HTTPS_PROXY`
+  * Fixed a raw crash dump when starting Claude Code from a directory that no longer exists; it now prints a clear message
+  * Fixed Edit and Write calls pausing for about 5 seconds in JetBrains IDE terminals when the Claude Code plugin is connected
+  * Fixed a race where pressing Esc with a prompt queued could let the next turn finish early, leaving the session idle while Claude was still working and letting a later resubmit repeat actions
+  * Fixed WebFetch retaining expired page content in memory for the whole session instead of the intended 15 minutes
+  * Fixed cloud sessions (Claude Code on the web, desktop and mobile apps) resuming out of plan mode after an idle worker restart
+  * Fixed MCP elicitation forms taller than the terminal being clipped in fullscreen mode: the form now fits the window, with hidden fields reachable by scrolling and Accept/Decline always visible
+  * Fixed remote MCP servers staying failed after a transient 5xx on a mid-session reconnect in cloud sessions or via SDK `setMcpServers()`
+  * Fixed custom session titles disappearing from `/resume` after more than \~64 KB of conversation was written following the rename
+  * Fixed `claude -c`/resume picking up sessions from a different directory whose path differed only by characters like `_`, `-`, or `.`
+  * Fixed `/resume` and the agents view showing a session as recently changed (and reordering it) when only its file was touched or it was merely reopened
+  * Fixed `/resume` in all-projects mode telling you to `cd` into a deleted directory (e.g. a removed worktree); such sessions now resume in the current directory
+  * Fixed the `dark-ansi` theme rendering expanded tool results in fullscreen mode with text the same color as the background
+  * Fixed the fullscreen renderer prompt reappearing on every launch when it could never be answered; it now stops after being shown on three launches
+  * Fixed `.worktreeinclude` patterns starting with `**/` silently matching nothing when the target lived in a gitignored directory
+  * Fixed agents, skills, and commands whose `.md` file starts with a UTF-8 BOM being silently ignored
+  * Fixed `/insights` echoing literal `<message>` tags in its response on some models
+  * Fixed marketplace `metadata.pluginRoot` having no effect: bare plugin source names now resolve under it as the docs describe
+  * Fixed mouse movement in browser-based terminals inserting text like `"35;150;7M"` into the prompt when a mouse report arrived split across writes
+  * Fixed custom theme overrides for the effort/ultracode status badge colors being ignored
+  * Fixed OpenTelemetry trace fragmentation: tool executions deferred by a `PreToolUse` hook now resume in the original turn's trace instead of starting a new trace
+  * Fixed vim mode in the agent view: Escape now switches to NORMAL mode and keeps your text instead of clearing the prompt
+  * Fixed the `selection:copy` keybinding silently dropping a text selection that had been extended with Shift+Arrow keys
+  * Fixed the `/voice` startup tip still appearing after voice dictation was enabled via the `voice.enabled` setting
+  * Fixed shell-mode (`!`) Tab completion dropping the `./` from a `./script` path, which left a command the shell couldn't run
+  * Fixed fullscreen mode answering a permission prompt or pressing a button when you clicked the terminal window only to bring it back into focus
+  * Fixed slash-command panels (e.g. `/config`, `/model`) in fullscreen mode covering the latest messages; the conversation now stays pinned above the panel
+  * Fixed the `/workflows` detail dialog overflowing the terminal and losing its header off-screen when opened while Claude is still responding
+  * Fixed the Linux sandbox making a nonexistent `.git/config.worktree` unreadable, which broke every sandboxed git command in repos with `extensions.worktreeConfig` set
+  * Fixed hooks failing with "posix\_spawn ENOENT" after the session's working directory was deleted; they now run from the project root or home directory instead
+  * Fixed `claudeMdExcludes` not excluding a symlinked `.claude/rules` file when the pattern names the rules directory or the symlink rather than its target
+  * Fixed runaway session-title syncing to Remote Control when two Claude Code processes shared one background job's state (2.1.232 regression); title updates are now deduplicated and rate-limited
+  * Fixed sessions whose title starts with `/` being unaddressable by `SendMessage` and shown as "(untitled)" in `ListAgents`
+  * Fixed Ctrl+W, Ctrl+U, Ctrl+K, Option+Backspace, Option+D and vim `df`/`dt` leaving a broken `[Pasted text #N]` placeholder when the cursor was inside it
+  * Fixed masked (password-style) inputs such as the login code field letting their text be pasted back with Ctrl+Y elsewhere or saved to prompt history when cleared with double Esc
+  * Fixed Ctrl+Backspace deleting one character instead of a word in search boxes
+  * Fixed a request rejected by an organization policy check being re-sent before the rejection was shown
+  * Improved the reminder shown after compaction so a skill's original arguments are not re-run as a new request
+  * Long file paths on tool-use rows now truncate in the middle to stay on one line
+  * Remote sessions keep sending keep-alives while a long `SessionStart` or `Setup` hook runs, so the container is not idle-reaped mid-hook
+  * `/goal`: repeat check-ins on long-running background work now back off (30 min, then 1 h, then every 2 h) instead of repeating every 30 minutes
+  * `/goal`: resuming a session from the `claude --resume` picker now restores its active goal
+  * `ListAgents` now tells a session its own name (the one peers use to message it), and `SendMessage` to your own name says so instead of "no agent named …"
+  * `ListAgents` and `/list-agents` now list your live teammates (previously only subagents and other sessions appeared, so a reachable teammate looked absent)
+  * `keybindingFlavor: "readline"` now also matches Bash for word keys: Alt+F and Ctrl/Option+→ stop at the end of the word, Alt+D deletes to it (Ctrl+Y pastes it back), and punctuation separates words
+  * Persistent retry mode (`CLAUDE_CODE_RETRY_WATCHDOG`) now fails immediately on organization spend-limit and out-of-credits errors instead of waiting indefinitely for a reset
+  * Claude in Chrome: `/clear` now closes the session's Chrome tab group, and empty groups are closed on `/resume` and when Claude Code exits
+  * Remote sessions: images uploaded from mobile now include their saved file path, so Claude can copy them into files it creates
+  * Claude Code on the web: requests from Bash and other tools to non-API anthropic.com hosts (e.g. www, docs) now go through the session's network proxy, so your environment's allowed domains apply
+  * Remote Control: clearer message and `claude doctor` wording when Remote Control isn't enabled for your account
+  * Windows: cross-session messaging is now available, so Claude Code sessions across your machines can message each other with `SendMessage` and find each other with `ListAgents`, as on macOS and Linux
+  * \[VSCode] "View usage" in the usage-limit banner now sits inline with the warning text instead of floating mid-banner
+</Update>
+
 <Update label="2.1.238" description="August 20, 2026">
   * Added a `keybindingFlavor` setting: set it to `"readline"` to make Ctrl+W in the prompt delete back to the previous whitespace, as in Bash; the default (`"classic"`) is unchanged
   * Plugin marketplaces: `headersHelper` on a url marketplace or a catalog entry runs a command that mints HTTP headers (e.g. a short-lived token) for catalog and same-origin archive fetches
from line 2133
   * 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`
-</Update>
-
-<Update label="2.1.138" description="May 9, 2026">
-  * Internal fixes
-</Update>
-
-<Update label="2.1.137" description="May 9, 2026">
-  * \[VSCode] Fixed extension failing to activate on Windows
-</Update>
-
-<Update label="2.1.136" description="May 8, 2026">
-  * 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 <name>` 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
-</Update>
-
-<Update label="2.1.133" description="May 7, 2026">
-  * Added `worktree.baseRef` setting (`fresh` | `head`) to choose whether `--worktree`, `EnterWorktree`, and agent-isolation worktrees branch 
+  * 

changelog Changed · +42 / -0 lines

This page is larger than the 256 KiB this site keeps, so one side of the diff below stops where the stored text does.

from line 6
 
 Run `claude --version` to check your installed version.
 
+<Update label="2.1.238" description="August 20, 2026">
+  * Added a `keybindingFlavor` setting: set it to `"readline"` to make Ctrl+W in the prompt delete back to the previous whitespace, as in Bash; the default (`"classic"`) is unchanged
+  * Plugin marketplaces: `headersHelper` on a url marketplace or a catalog entry runs a command that mints HTTP headers (e.g. a short-lived token) for catalog and same-origin archive fetches
+  * A catalog entry's `headersHelper` runs only when you install or update that plugin, after its command is shown; `claude plugin install/update` ask `[y/N]` (or pass `-y`)
+  * Added `claude self-hosted-runner --defer-shutdown-max-min <minutes>`: on SIGTERM, keep serving attached sessions, park what is left after that many minutes, then exit
+  * Added `claude self-hosted-runner --proxy-authorization-command` / `--proxy-authorization-file` for egress proxies that require a freshly issued `Proxy-Authorization` header on every connection
+  * Fixed unbounded memory growth in long interactive sessions: subagent tool results are now released once they leave the recent display window
+  * Fixed custom, project, and plugin output styles drifting back to the default voice mid-session
+  * Fixed `CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION=true` not keeping prompt suggestions on when your account is near, but not over, its usage limit
+  * Fixed worktree-isolation Bash refusals telling you to remove a redirect when the command had none
+  * Fixed self-hosted runners occasionally being removed by the server after a single slow or lost poll request, handing their healthy session to another runner
+  * Fixed MCP elicitation dialogs showing nothing for URLs longer than 4,096 characters, and permission prompts dropping the "don't ask again" option when the project path didn't fit the terminal width
+  * Fixed leftover `/tmp/claude-*-cwd` files when a Bash command is killed, times out, or is interrupted
+  * Fixed held Backspace being ignored on terminals that send Ctrl+H for Backspace when keystrokes arrive in large bursts (slow SSH/mosh links)
+  * Fixed text-wrapping in permission prompt diffs: lines containing wide multi-code-point characters (such as emoji) or tabs are no longer clipped
+  * Fixed killing a suspended (Ctrl+Z) session sometimes leaving the terminal in bracketed-paste mode with the cursor hidden
+  * Fixed stdio MCP servers receiving a `server/discover` request before `initialize`, forcing lazy servers to start their backend on every session open
+  * Fixed a proxy's refusal of a connection being reported as a generic network error instead of naming the proxy
+  * Fixed the `/model` and `/effort` cache-miss warning appearing when the prompt cache had already expired
+  * Fixed per-task Stop from the Remote Control tasks panel doing nothing on CLI-hosted sessions
+  * Fixed remote sessions exiting when a client delivered a user message without a valid role
+  * Fixed Remote Control sessions started by `claude remote-control` inheriting session-scoped environment variables from the launching shell
+  * Fixed a Remote Control session whose process crashed staying unavailable until `claude remote-control` was restarted; it can now be reused when you next message it
+  * Fixed Remote Control messages sent from the web or Desktop while Claude is mid-turn disappearing from the transcript after the turn finishes
+  * Fixed Remote Control model picks made on a phone or web not updating the model shown in the terminal
+  * Fixed Remote Control disconnecting with "login expired" when a brief network hiccup delays renewing your sign-in; it now retries and stays connected
+  * Fixed Remote Control reporting a failed reconnect on sign-out; signing out now ends the session with a clear message
+  * Fixed `ListAgents`/`SendMessage` reporting "Remote Control is not connected" in sessions run by `claude remote-control` (server mode) or Desktop/IDE hosts; they now list and reach Remote Control peers
+  * Fixed `ListAgents` and `SendMessage` exposing the idle worker that the agent view pre-warms for your next background session; it now appears only once a task claims it
+  * Cross-session messaging: sending to a session on this machine that refuses inbound messages (e.g. `crossSessionInbound: "refuse"`) now reports "refused" to the sender instead of a silent success
+  * Cross-session messaging: a session whose inbox drops your messages (rate limit or full queue) now tells your session, instead of the messages vanishing silently
+  * Improved startup: bare `claude` starts sooner on macOS
+  * Improved Bash tool permission checking for zsh-specific syntax in shell conditionals
+  * Improved Remote Control connection resilience: brief HTTP 403 refusals from a network edge, VPN, or proxy are now tolerated for up to 3 minutes, with the refusing party named when a block persists
+  * Improved startup responsiveness: the automatic update check now runs about 10 seconds after launch instead of competing with startup for CPU
+  * Updated the bundled `claude-api` skill for the Managed Agents Aug 19 release: web search/fetch domain settings and memory stores on self-hosted sandboxes
+  * Changed Ctrl+L and Cmd+K in fullscreen to always just repaint — the double-press `/clear` shortcut was removed, and 1-row nvim terminals no longer trigger automatic `/clear` loops
+  * Changed `claude mcp list` and `claude mcp get` to show disabled servers as `⊘ Disabled` instead of connecting to them for a health check
+  * MCP `headersHelper` in a project `.mcp.json`, and inline MCP servers in project or `--add-dir` agent files, now require that folder's trust dialog to have been accepted (also under `claude -p`)
+  * MCP `headersHelper` from a project `.mcp.json`, plugin, or agent file runs without inherited credential env vars; user, managed and claude.ai-scope helpers now run from the Claude config dir
+</Update>
+
 <Update label="2.1.237" description="August 20, 2026">
   * Fixed prompt caching for sessions using an LLM gateway or custom base URL
   * Added a built-in "Concise" output style: Claude leads with results and skips preamble and narration, while doing the work just as thoroughly. Select it under Output style in /config.
from line 2162
 </Update>
 
 <Update label="2.1.133" description="May 7, 2026">
-  * Added `worktree.baseRef` setting (`fresh` | `head`) to choose whether `--worktree`, `EnterWorktree`, and agent-isolation worktrees branch from `origin/<default>` or local `HEAD`. **Note:** the default `fresh` changes `EnterWorktree`'s base back to `origin/<default>` (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
-</Update>
-
-<Update label="2.1.132" description="May 6, 2026">
-  * 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 
+  * Added `worktree.baseRef` setting (`fresh` | `head`) to choose whether `--worktree`, `EnterWorktree`, and agent-isolation worktrees branch 

changelog Changed · +5 / -0 lines

This page is larger than the 256 KiB this site keeps, so one side of the diff below stops where the stored text does.

from line 6
 
 Run `claude --version` to check your installed version.
 
+<Update label="2.1.237" description="August 20, 2026">
+  * Fixed prompt caching for sessions using an LLM gateway or custom base URL
+  * Added a built-in "Concise" output style: Claude leads with results and skips preamble and narration, while doing the work just as thoroughly. Select it under Output style in /config.
+</Update>
+
 <Update label="2.1.236" description="August 19, 2026">
   * Added `ANTHROPIC_DEFAULT_MODEL` environment variable: sets the model new sessions start on, while a `/model` pick still overrides it and persists across restarts (unlike `ANTHROPIC_MODEL`)
   * Added `notify_when_idle` to cross-session `SendMessage`: ask another Claude Code session on this machine to send one notice when it next goes idle — opt-in, one-shot, no polling (macOS and Linux)
from line 2167
   * 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
-</Update>
-
-<Update label="2.1.131" description="May 6, 2026">
-  * 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
-</Update>
-
+  * Fixed Bedrock and Vertex 400 errors