Added to the Claude apps gateway: with `pricing:` set in `gateway.yaml`, signed-in Claude Code clients receive the same rates through managed settings, so `/cost` and telemetry match the spend meter
Added a startup warning for gateways when `access_control.allow_cidrs` is empty, and a one-time warning the first time a request arrives from a public address
Added the gatewayInternalNetworks managed setting, letting administrators allow `/login` to a Claude apps gateway on their organization's own public IPv4 block
Addedclaude self-hosted-runner --remove-session-state (default off): delete each session's per-session directories under `<base-dir>/_sessions/` when the session ends
AddedconfigDirectory to the output of `claude auth status --json`
Added--json to `claude plugin install`, `uninstall`, `update`, `enable` and `disable`, and `errorDetails`/`noteDetails` to each row of `claude plugin list --json`
Added browser-tab icons for published artifacts, chosen by Claude to match each page
VSCodeAdded Left and Right arrow keys to change where an always-allow permission rule is saved, for keyboard and screen reader users
VSCodeAdded a "Claude Code: Focus last message" command that moves keyboard focus to the newest message in the conversation, for keyboard and screen reader users
Claude TagAdded a link from a Slack channel's configure page back to the organization's Claude in Slack admin settings
Code ReviewAdded a note under the still-open findings list in follow-up reviews: resolving a finding's thread, not just replying to it, stops later reviews from counting it as open
~changed 10
Changed the system prompt on Bedrock, Vertex and Foundry to deliver environment, model and settings details as attachments, matching first-party sessions
ChangedBedrock, Vertex and Foundry sessions to keep the tool list byte-stable across a conversation (late-connecting tools load deferred instead of rewriting it), matching first-party sessions
Changed the task-tracking tools (TaskCreate/Get/Update/List, TodoWrite) to be offered only on Claude 3.x, Opus 4.0–4.7, Sonnet 4.0–4.6, Haiku 4.5; set `CLAUDE_CODE_ENABLE_TODO_TOOLS=1` elsewhere
Changed the artifact data-edit permission prompt in the terminal to a card that shows the document count and who can open the artifact
Changed local Cowork sessions set to skip all approvals: the Artifact tool now refuses a local file outside the session's folders, or behind a symlink, instead of reading it without asking
Changed plain WebFetch deny and ask rules to no longer apply to Artifact tool reads and updates; use an `Artifact` rule (or `WebFetch(domain:claude.ai)`) to block or gate them
VSCodeChanged the Manage plugins dialog to apply installs, enables, disables and uninstalls to open sessions without a restart
VSCodeChanged some artifact permission prompts to omit the "don't ask again" choice, matching the terminal
Claude TagChanged memory in public channels: each channel now keeps its own notes, and Claude no longer recalls notes it saved in other public channels; workspace notes stay shared
↑improved 16
Improvedfullscreen mode: adding or removing a prompt line (Shift+Enter) now repaints as fast as typing a character instead of re-rendering the visible transcript
Improved--continue / `--resume`: the conversation appears immediately instead of waiting for SessionStart hooks, and the first message no longer re-reads the whole transcript
Improved responsiveness during tool-heavy turns by no longer redrawing the transcript for a hidden per-tool-batch reminder
Improved startup time in projects with `.claude/workflows/` scripts: listing them no longer parses each script
Improvedauto mode denials: the message Claude receives now names the rule that blocked the action and asks Claude to try a safer method and finish unrelated work before stopping to ask you
ImprovedClaude in Chrome: long page reads now stay inline instead of being saved to a file and read back
Improved the MEMORY.md truncation warning to say how many lines were cut and where the cut starts
Improved the terminal permission prompt for artifacts: it now leads with the ask's question
Improved the prompt footer: an editor or `/diff` selection now shows inside the prompt input, and fullscreen mode shows Remote Control status in the header instead of the footer
Improved the "Usage credits required for 1M context" message to say that usage credits turned on mid-session take effect after restarting Claude Code
Improved/plugin: installing, enabling or disabling a plugin now takes effect when you close the menu; `/reload-plugins` is no longer needed afterwards
Claude Code on the webImproved routine creation from a conversation: when the new routine has no connectors, Claude now says so and how to add them instead of only confirming it
Claude TagImproved how Claude explains a blocked action: it now says whether a permission check, its own decision to confirm first, or missing access stopped it
Claude TagImprovedreply speed: Claude now runs several read-only lookups (searching Slack, reading a thread, finding people) at once instead of one after another
Claude TagImprovedformatting of comparisons: sentence-length comparisons now come as lists instead of wide tables that scroll sideways, and long table cells wrap
Claude TagImproved the message shown when your Claude account is in a different organization than the Slack workspace: it now explains how to connect the workspace to your org
✓fixed 59
Fixed every turn failing with HTTP 400 on third-party Anthropic-compatible endpoints (`ANTHROPIC_BASE_URL`) since 2.1.265: a regex in the Artifact tool's input schema that those endpoints reject
Fixed WebFetch hanging indefinitely on a server that keeps the response open without finishing; a fetch now fails after 300 seconds. Set `CLAUDE_CODE_WEBFETCH_DEADLINE_MS` to override the deadline (0 turns it off)
Fixed a respawned in-process teammate picking up tools or a system prompt from a same-named agent file in a folder you have not trusted
Fixed sustained high CPU usage: a busy loop in long-running idle sessions no longer pins a CPU core, and rapid terminal focus reports during a session recap no longer keep the CPU high
Fixed Claude sometimes replying "your message came through empty" after an MCP tool call
Fixed deny and ask permission rules on symlinked directories (`/etc`, `/tmp`, `/var` on macOS; `/bin` on Linux) not applying when a path was given by its real location, and Bash commands ignoring deny rules written on a symlinked path spelling
Fixed a case where a Read or Edit deny rule did not apply when an `env -C`, `eval` or similar command the permission checker cannot analyze was on the same line
Fixed plugin and marketplace errors showing a token or password from a git source URL
Fixed/mcp and `/plugin` server details, `claude mcp list`/`get`, and MCP login errors showing secrets resolved from `${VAR}` placeholders in MCP configs
Fixed prompt caching and extended thinking breaking mid-session for SDK sessions using `excludeDynamicSections`: the first message is no longer re-rendered each request
Fixed entitled users being told a model is restricted after restart or in the Desktop Code tab when a cached model-access denial was stale
Fixed a running session silently switching to the organization's default model when another Claude Code process refreshed a stale model-access entry
Fixed long-context 429s on Fable models showing the usage-credits consent prompt instead of the 1M-context message on Pro and Team plans
Fixed workload identity federation via a profile (as claude-code-action configures it): processes sharing the profile could fail mid-run with `401 … jti reused`
Fixed MCP server OAuth sign-in failing with "No available ports for OAuth redirect" when the local callback port range can't be bound
Fixed the conversation summary produced by `/compact` and auto-compact mangling text that contained `$` sequences
Fixed resuming a conversation that ended with `/compact`: its restored-file notes now load in the same order on every resume
FixedSDK prompt suggestions, side questions and `/rename` sending the conversation from before a compaction
Fixed@ file and `/` command suggestions not appearing after recalling a previous prompt with the up arrow and editing it
Fixedclaude agents: pressing ← again at a natural pace to go back to the agent list no longer gets ignored until you pause for over a second
Fixedclaude agents session delete getting stuck when a worktree can't be removed: the message names the cause and next step, and for a git worktree ctrl+x again deletes the directory anyway
Fixed background agent and workflow rows in the agents panel expanding to many lines when their text contained line breaks
Fixed Claude in Slack sessions losing their Slack tools when org managed settings set an MCP allowlist
Fixed Claude in Chrome asking to allow the host "https" when a navigation URL had a scheme but a host that could not be parsed
Fixed the spinner wrapping onto several lines when the current task's label is long; the label and the "Next:" task line now stay within one terminal row
Fixed the /bug and `/feedback` description field showing no cursor when the terminal's native cursor is enabled
FixedRemote Control sessions served by `claude remote-control` showing a generated name instead of their session title in `ListAgents`
Fixedclaude plugin validate rejecting plugin paths whose directory name begins with two dots, which the plugin loader accepts
Fixed plugins silently skipping a default monitors file or root SKILL.md that could not be checked
Fixed WebFetch's error for localhost and other dotless hostnames to explain why the URL is refused and suggest curl
Fixed PermissionRequest hooks not firing in `--print` mode
Fixed policy-helper warnings not printing on headless (`-p`) runs
Fixed/resume listing a `/fork` background session under its parent's name instead of its own `⑂` fork name
Fixed/remote-control and other claude.ai-gated commands to suggest `/login` when signed out instead of showing a Claude for Enterprise migration message
Fixed/autofix-pr and other cloud-session commands saying to retry or install the Claude GitHub App when no GitHub account is connected; they now point to `/web-setup` or the web connect page
Fixed cloud-session commands such as `/teleport` and `/remote-env` to explain when an organization policy turns them off, instead of answering "Unknown command"
VSCodeFixed the session list, settings toggles, and chat tabs when `CLAUDE_CONFIG_DIR` is set in a settings file or the `environmentVariables` setting
VSCodeFixed the model pill, model picker and command menu going blank in open tabs for a few seconds after a login, logout or account switch
VSCodeFixed Auto disappearing from the mode picker in new-tab or just-reloaded conversations when a project or local setting overrides the model named in `~/.claude/settings.json`
VSCodeFixed session names reverting to the last prompt after a window reload when a SessionStart hook is configured
VSCodeFixed the footer's model pill and Remote Control pill waiting for the new tab's Claude process to start when another tab in the window is already up
VSCodeFixed a second Claude process running through its full startup when a session tab's launch arrived more than half a second after its config read
VSCodeFixed resuming a session from the session list ignoring `claudeCode.preferredLocation: "sidebar"` (it always opened a panel), and programmatic opens resetting that setting to "panel"
VSCodeFixedWindows issues: the WSL install prompt no longer appears on machines without WSL installed, and IDE diagnostics are now returned correctly for Windows files when WSL is installed
VSCodeFixed the custom style builder saving a User level style in a folder the CLI does not read when `CLAUDE_CONFIG_DIR` is set through settings
Claude Code on the webFixed cloud sessions running longer than about six hours silently losing files saved to persisted session folders; saves now persist for up to a day
Claude TagFixed the admin settings page hanging on a loading skeleton or going blank after a transient load failure; a section that fails to load now shows a Retry button
Claude TagFixed a Slack Enterprise Grid channel losing its Claude settings (repository, environment, access) after a Slack admin moved it to another workspace
Claude TagFixed@Claude !restart in a thread with its own session sometimes also posting a contradictory "this thread is handled by the channel session" notice
Claude TagFixed Markdown links whose URL is wrapped in angle brackets showing as literal bracket text in Slack instead of a clickable link
Claude TagFixed a workspace guest's top-level @mention in a channel where guests may use Claude sometimes getting a "your Slack account isn't connected" reply instead of an answer
Claude TagFixed a channel's long-running session being replaced with a fresh one mid-conversation; the scheduled refresh now waits until the channel and its threads are quiet
Claude TagFixed channel-settings cards clicked more than once telling the proposing session the change was refused after it had already applied; the outcome is now sent once
Code ReviewFixed reviews sometimes ending as incomplete when one of the agents verifying a finding failed midway; the review now replaces that agent and reaches a verdict
Code ReviewFixed a push-triggered review that was queued behind a running review still posting after the pull request had been converted to draft
Code ReviewFixed reviews ignoring a directory's CLAUDE.md conventions when the PR edited a root file (e.g. README.md) that only shares a name with a file that CLAUDE.md lists