有些公司會讓 Claude Code 透過自家閘道(gateway,把請求轉給模型的中間層)連到一批內部模型,開關是環境變數 CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY。以前這些模型在 /model 選單裡只有名字,看不出差別。現在閘道可以隨每個模型附一段 description,選單就照著顯示;沒附說明的仍寫「From gateway」。搭配的一項調整:這個發現動作即使你設了 CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC(關掉非必要對外連線)也照跑,因為它只問你自己的閘道、不對外。
問題修復
問完插話的問題,回主線的按鍵改了
/btw(by the way 的縮寫)讓你在不打斷主線任務的情況下,臨時問 Claude 一個小問題,問完再回到原本的答案。以前在這些側邊問答之間翻頁用 ←/→,跟其他地方的方向鍵功能容易撞。現在改成 Shift+←/Shift+→,也可以用 [/],一路翻過你最近幾個插話問題、再翻回正在進行的答案。另外修好一個卡點:在 claude agents(管理子代理的畫面)裡開著 /btw 面板時按 ← 原本沒反應,現在它會帶你回子代理清單,就算問答還沒結束也行;重新打開那個工作階段時,面板會再出現。
遠端遙控(Remote Control,讓你從手機或另一台裝置連進正在跑的 Claude Code)這批修的是「同意」跟「聽誰的」出錯的地方。以前不管是按 Esc、還是在 claude remote-control 選單裡按 n,用意都是拒絕連線,卻被系統當成「已經同意」記下來,導致下一次請求直接連上、不再問你。這次修好,真的按了拒絕才算數。另一個是從 Claude app 發起的遠端遙控工作階段,以前會忽略你在 app 裡選好的模型,逕自用這台機器的預設模型跑,現在會照你選的模型執行。
這版 VSCode(微軟程式編輯器)擴充套件整理側欄與操作。工作階段清單新增可收合的 ACCOUNT & USAGE、SESSION MANAGER、Ungrouped 區;前兩區有帳號、用量與詳情連結。輸入列模型膠囊可選模型,含 Effort 與 More models;命令選單可選含自訂的輸出風格。第三方供應商不再顯示 claude.ai 專用功能或殘留登入,用量也會先顯示上次記錄;Enable Remote Control for all sessions 對已開啟工作階段生效,螢幕報讀也修正。Delete session 改 Archive session,項目移入可收合的 Archived sessions,能 Unarchive;slash 指令與 MCP 伺服器改在可篩選視窗操作。
English
FEATURE
Fable 5.1 lands as the local default; gateways stay on Fable 5 for now
When you pick the Fable model in Claude Code, you now get the new Fable 5.1 (model id claude-fable-5-1), which has taken over as the default for the Fable line. It takes in a million tokens at once — the unit of text an AI weighs in a single pass — enough for the code of a whole large project in one go. Pricing is $10 per million input tokens and $50 per million output; cached content costs $0.25 per million to read again, so repeated questions about the same files are far cheaper. One transitional catch: sessions run through the official gateway (the middle layer that forwards requests to a model) still resolve fable and best to Fable 5, since gateways not yet configured for 5.1 reject it — pick Fable 5.1 in /model yourself.
FEATURE
Choose how times are shown, and in which time zone
Claude Code stamps a time at the end of every turn, and each message in the transcript — the plain-text record of the whole conversation — carries a timestamp too. That format used to be fixed. Now there are two settings: timeFormat sets the style and accepts 12-hour, 24-hour, 24-hour UTC, or an strftime pattern (codes like %H:%M that let you spell out the shape of the time yourself); timeZone sets which zone the clock is converted to. Add them in settings.json, for example:
Auto mode tightens three gates: cloud credentials, files outside your working directories, other people's artifacts
When you let Claude run a long stretch of work in auto mode — where it acts without checking each step with you — it now holds back three more kinds of action. First, a Containment Escape rule: fetching a cloud host's metadata credentials (a piece of information a cloud platform hands out in exchange for access), slipping past outbound-traffic limits, or reaching across tenants to read someone else's resources are no longer auto-approved unless your environment marks them as expected. Second, a one-time prompt the first time it wants to read a file outside your working directories; block it on the spot, or for good with {"permissions": {"blockReadsOutsideWorkingDirectories": true}} in settings.json. Third, in Cowork and claude.ai cloud sessions, reading an artifact (a file produced by a conversation) that is not yours now always asks you first, even in auto mode.
FEATURE
One environment variable forces every subagent onto the same model
When you have Claude fan out across several subagents — the helpers the main conversation dispatches to each do a slice of the work — each one may carry its own assigned model: some set at dispatch time, some hard-coded in an agent definition file. Switching them all to one model used to mean hunting each down. Now there is an environment variable, CLAUDE_CODE_SUBAGENT_MODEL_FORCE — a setting made at the system level and read when the program starts. Turn it on and the model named by CLAUDE_CODE_SUBAGENT_MODEL (or the main conversation's model if none is named) applies to every subagent, and those per-subagent choices are all ignored. Handy when you want to hold costs down, or keep a whole batch of work consistent, in one move.
FEATURE
Change effort for just this session, leaving your long-term setting alone
/effort tunes how long Claude thinks before answering — higher effort means deeper reasoning but slower and pricier; lower is the reverse. Using it used to change the setting for the long term, so every later session (one conversation from open to close) inherited it. Now the /effort menu has an s option: pick it and only the current session changes, and closing the window returns you to your own default — matching what /model has done for a while. Separately, when you move to a new model, the default-effort hold it ships with now locks only this session rather than permanently; and if you connected via Remote Control after picking an effort on claude.ai, that choice now applies during the hold.
FEATURE
Gateway-discovered models can now carry a description in the picker
Some companies let Claude Code reach a set of internal models through their own gateway — the middle layer that forwards requests to a model — switched on by the environment variable CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY. Those models used to appear in the /model picker as bare names with nothing to tell them apart. Now the gateway can attach a description to each one and the picker shows it; entries without one still read "From gateway". A paired change: this discovery step now runs even when you have set CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC (which turns off non-essential outbound calls), because it only queries your own gateway and reaches nothing outside.
BUGFIX
The keys for stepping through side questions have changed
/btw (short for by the way) lets you slip Claude a quick question without derailing the main task, then return to the original answer. Paging between these side exchanges used to be ←/→, which clashed with what the arrow keys do elsewhere. It is now Shift+←/Shift+→, or [/], stepping through your recent side questions and back to the live answer. A separate snag is fixed: with the /btw panel open inside a claude agents session (the screen for managing subagents), pressing ← did nothing; it now takes you back to the agents list even mid-answer, and the panel returns when you reopen that session.
BUGFIX
Two `/add-dir` changes: network paths refused, subfolders of the current directory accepted
/add-dir — along with --add-dir at startup and additionalDirectories in settings — brings an extra folder into Claude's working scope, loading that folder's skills, commands and agents with it. This release cleans up two faults pointing opposite ways. One is network paths: Windows UNC shares and /net/<host> automounts are now refused with a message before anything touches them, and Windows users should use a mapped drive letter instead. The other is a subfolder right under your current working directory, which /add-dir used to reject for no reason; it is now accepted, and its skills, commands and agents load just as --add-dir does at startup.
FEATURE
Setting `bypassPermissions` in a project folder no longer works
bypassPermissions is the most permissive mode, where Claude acts on almost anything without asking. It used to be enough to set defaultMode to "bypassPermissions" in a project's .claude/settings.json or .claude/settings.local.json, and opening that project dropped you into the mode. The trouble is that such files travel with the code, so anyone who hands you a project could decide your machine runs unguarded. Now that value is ignored at the project level and behaves like "auto". To really use the mode, set it in user or managed settings, or pass --permission-mode at each startup.
If your Claude Code is centrally configured by your company through managed settings, this batch fixes faults along that path. A policyHelper (the small program that checks company policy) shadowed at launch by cached settings used to wait until next launch to update; now it runs or exits as soon as the server reports that setting removed. Under managedSourcesBehavior: "merge", sandbox.credentials.awsPairs and sandbox.ripgrep are now taken whole from the highest source that sets them, not blended; timeoutMs and refreshIntervalMs above the timer maximum (2147483647) no longer fail outright, and are clamped instead. Diagnostics are clearer: refresh failures show in /status, declining prints why it exited, timeouts are reported as timeouts; the approval dialog also shows matching telemetry wording when the settings also touch tracing, raw API logging, or trace export.
BUGFIX
Stray credentials and leftover identities sent to cloud providers are cleaned up
For anyone running Claude Code through Bedrock, Vertex or Foundry, this batch fixes login details getting into outgoing requests. A doubly-listed custom Authorization header used to override your configured credential (Bedrock, Mantle, Vertex, WIF all affected); the Vertex setup wizard picked up a leftover profile from ~/.config/anthropic; the official gateway sent stray headers to Foundry, Vertex and Bedrock, and Foundry's Entra ID upstream failed to start when ANTHROPIC_FOUNDRY_API_KEY was set; API-key mode against a Foundry key sent a leftover Anthropic key alongside it. None of that happens now, and gateway sign-in and token refresh now verify the pinned TLS certificate too. Also, launching after a session expired now says "ended" and offers /login; the keyless Console sign-in now applies your organization's settings and /status shows the Organization.
BUGFIX
The permission-prompt batch: one old hint gone, several sneaky forms now caught
This group is all about whether Claude stops to ask you. On the surface, the Ctrl+E command-explanation line under Bash and PowerShell permission prompts is gone, and the Edit prompt's diff view — which had been miscounting the width of emoji and characters built from several code points, skewing the layout — now lines up. The substantive part is three holes closed: a permissions.ask rule (one that requires asking first) was skipped in auto mode when the matching command ran inside a long compound command or a subshell, running without a prompt; it is caught now. Certain [[ ]] conditionals that zsh parses differently from bash were auto-approved and now prompt. And Bash Read()/Edit() deny rules did not apply to a < file redirect or to reader commands like tac and egrep; now a deny rule matching any argument or redirect target refuses the whole command.
BUGFIX
Several ways background sessions failed to start are now closed off
Background sessions — work you hand Claude to run behind the scenes without taking over your current screen — get a batch of "would not start at all" fixes. On macOS npm installs that coincided with Claude Code self-updating, a background session would fail to open; so would one on Windows when a stale daemon lock file (a daemon is a service program that stays resident in the background) pointed at a reused process id. Another case: with a different Claude Code process downloading an npm update, opening a background session reported "Couldn't start the background service"; it now waits for that download to finish. Two cleanup fixes go with it: after a self-update, background sessions still running an older Claude Code binary used to pile up instead of retiring, and are now replaced; and cc-daemon-* folders left in the system temp directory after an interrupted daemon start are now swept by the cleanupPeriodDays retention pass.
BUGFIX
The background session list gets several bookkeeping fixes
This batch fixes claude agents (the screen for managing background sessions) and the CLI misremembering which session is in what state. A session's state.jsondetail field kept repeating its own original dispatch prompt after a scheduled wake-up instead of updating to the new state. Re-prompting a finished background session should bring it back to the front, but it stayed stuck at its old spot under Completed; Completed now orders by the latest finish. Running claude --bg from a directory that was just deleted used to falsely report "backgrounded" and leave a crashed session row; it now prints the reason and exits with code 1. --resume listed a backgrounded conversation twice, and --continue reopened its stalled pre-background copy; --continue now also opens finished background sessions. And claude --resume <session-id> --bg now continues that session under its own ID when nothing is running it, instead of quietly starting a copy — and announces it when a copy really is started.
BUGFIX
Background sessions respond more honestly to stop signals and status
This batch fixes background sessions not honestly reflecting their state when interrupted or watched. Stashing a prompt with Ctrl+S inside an opened background session used to lose it if that session went idle or was stopped and reopened; it now survives. Backgrounding a turn with ← or Ctrl+B while a subagent or other tool happened to be running would occasionally make the background session wrongly treat that tool as rejected when it should have re-run; it now re-runs correctly. Stopping a background command from the tasks panel or a connected client used to leave Claude uninformed; now it is told. Stopping a background subagent used to leave the monitors it had started (a monitor is a background watcher that notifies you when something finishes or times out) still running; now they stop with it. A background command detached from its shell with timeout or setsid used to survive stopping a task or exiting Claude Code; it now ends too. And claude agents used to say nothing about a background session waiting for you to approve a message from another session, or who sent it — it now shows this clearly.
BUGFIX
The claude agents view and subagent transcripts, fixed for visibility and continuity
This batch is about visibility and continuity in claude agents (the screen for managing subagents) and subagent transcripts. Opening a subagent's session with ← from this view used to always inherit the original session's permission mode, overriding the target directory's own defaultMode and that agent's permissionMode; it now follows the target's settings. keybindings.json rebinds of Ctrl+G were ignored inside claude agents; its Ctrl+S / Ctrl+T are now rebindable through a new Agents context. Switching to another subagent's transcript often froze or crawled the usage counter in the corner; it now updates live, for background subagents and teammates too. claude agents --json used to briefly switch the terminal to raw mode and undo another program's terminal settings on exit; it no longer does. A subagent cut off mid-stream by a computer sleep, dropped connection, or server error used to stop at that incomplete response; it now automatically continues. Resuming a subagent you had stopped from its transcript view used to leave the main agent uninformed that you did so; now it is told. A subagent whose transcript grew past 5 MB (common after reading many images) used to fail to resume or message with "No transcript found"; that now works.
BUGFIX
Five ways the prompt cache was going stale, fixed together
The prompt cache — remembering conversation content already sent once so the same content is not recomputed or rebilled next time — is a time- and money-saver by design, and this batch fixes several ways it was quietly going stale. Remote Control connecting mid-session used to re-send the Bash tool definition, and that alone missed the cache; it no longer does. Sessions with an advisor model set (an extra model consulted to help the main model decide) used to miss the cache on background requests — compaction, /recap, prompt suggestions — resending the full conversation uncached each time; they now hit the cache. Rewinding a conversation back to empty made /model and /effort show an extra cache warning; it no longer does. Long screenshot-heavy sessions missed the cache on every turn once images exceeded the per-request size cap; that cap issue is fixed. /fork (spinning the current conversation off into a new background session) now keeps the original conversation's cache in that new session, by sending its worktree briefing — the message about the parallel copy of the project Git sets up — as a regular message instead of changing the system prompt.
BUGFIX
Two trust gaps in Remote Control are closed
Remote Control — connecting into a running Claude Code from your phone or another device — gets two fixes about consent and whose choice wins. Dismissing the consent prompt, whether by Esc or by pressing n at claude remote-control, was meant as a refusal, but the system recorded it as consent, so the next request connected straight in without asking again. That is fixed: a real refusal now counts as one. The other: a Remote Control session started from the Claude app used to ignore the model you had selected there and run on the machine's default instead; it now runs on the model you selected.
FEATURE
The MCP batch: blocked when it should be, cleaned up when it should be, errors now readable
MCP (Model Context Protocol, the standard that lets Claude connect to external tools) gets a batch of connection-management and error-logging fixes. /mcp's reconnect and enable used to still connect a settings-file MCP server that a managed MCP allow/deny list or strictPluginOnlyCustomization (restricting MCP to plugin-supplied servers only) loaded after startup should have blocked; now it is blocked as it should be. With strictPluginOnlyCustomization locking MCP to plugin-only servers, claude mcp remove used to leave a removed remote server's stored OAuth credentials behind; they are now cleaned up too. claude mcp add/remove used to hang or exhaust memory when a project's .mcp.json turned out to be a FIFO (a named pipe file) or a device-file symlink; it now fails fast with an actionable message. WebSocket MCP server connection failures used to log only the unreadable "[object ErrorEvent]"; the underlying error is logged now. And MCP connection and OAuth debug/error logs used to print credentials carried in a server's URL or request headers as-is; they are now redacted.
BUGFIX
Sandbox and worktree boundaries: routes that should be blocked, leftovers that should be flagged
Sandbox (the isolated environment keeping Claude's actions inside a safe boundary) and worktree get fixes for boundaries that were not holding, or leftovers nobody flagged. A trailing dot on a network host used to slip past a deniedDomains entry, and "don't ask again" kept re-prompting; both are now handled correctly. A plugin's declared component path, if it was a symlink reaching outside the plugin, could be used to read files outside it; such paths are now refused with an error. Worktree-isolated sessions used to reject Bash loops, $VAR reads, and heredocs that never touch git as too complex; they are now correctly allowed. Sandboxed git in a linked worktree used to lose write access to the shared .git directory after cd into a subdirectory; it no longer does. And /doctor now warns about a stale sandbox mask file left by a killed session.
BUGFIX
Settings reload used to miss or forget a few things
This batch fixes a few places where Claude Code did not "reload settings" thoroughly enough. Settings in a .claude/ folder created after startup used to be picked up only after a restart; now they take effect once created. With allowManagedPermissionRulesOnly (only managed rules take effect) turned on, --disallowedTools and session-level deny rules used to be dropped after the first settings reload; they are now kept. And telemetry (OTEL, the standard for reporting usage) values pushed through server-managed settings used to be ignored on a warm start (one that reuses an existing process rather than a full restart), desktop-app Code sessions included; they now apply.
BUGFIX
The terminal-UI batch: smoother rendering, a few stuck spots cleared
This batch makes the terminal UI run smoother in long conversations and clears a few stuck spots. Rendering is improved: less work to redraw each turn in long conversations, streaming no longer slows down as a reply grows, and background-agent updates no longer redraw the whole screen. The input box also redraws less per keystroke, cutting typing lag. Fixes: the working spinner used to stop turning — looking stuck — while a response streamed behind a slash-command panel, and no longer does; a phantom duplicate slash-command row used to appear below the in-flight turn while an auto-continued response streamed, and no longer does; fullscreen mode used to block clicking ! shell-command output to expand it, and now allows it; pasting ANSI-colored text (like a CI log) into a dialog such as /feedback used to crash, and no longer does. Also, emoji autocomplete now accepts the remaining GitHub/Slack shortcode aliases (:satisfied:, :telephone:, :collision:, and others).
FEATURE
The headless and long-stream batch: no more hanging up early, no more spinning quietly in place
This batch fixes headless mode (no terminal window, common in scripts or CI) and long-lived streams either not waiting when they should, or not stopping when they should. claude -p used to exit about 5 seconds after printing its final result even if a Monitor (a background watch task) the model had armed was still running; it now waits for that watch to actually fire or time out. Reading piped input with claude -p --input-format stream-json, if what came in was not valid JSONL (one JSON object per line), used to grow memory without bound; it now fails fast with a clear error. Sessions using the Proactive output style used to busy-loop with filler messages and repeated log reads instead of idling quietly while a background command or Monitor they had started was still running; they now idle honestly. On Bedrock and Bedrock Mantle with Opus 4.7 and later, long hidden-thinking phases (the model reasoning behind the scenes, invisible on screen) used to go silent and get cut by an idle timeout; the stream now carries progress events so it is not mistaken for unresponsive. And on the SDK-host side, liveness reporting is improved while a response is held open by gateway keep-alives, so long waits under a raised CLAUDE_STREAM_IDLE_TIMEOUT_MS are no longer mistaken for a hung session.
BUGFIX
The rest of this version's loose ends: scheduling, teammates, credentials, a few CLI touches
This card gathers the rest of this version's unrelated small fixes and touches. /schedule (the scheduling feature): a routine whose saved prompt was missing a message role used to fire at its scheduled time and run with nothing to do; it now runs properly. A teammate's (the peer role in multi-agent collaboration) permission request, if it landed just as the leader's mailbox write was briefly locked, used to get answered twice; now only once. Agent-team teammates in tmux or iTerm2 panes sometimes stayed open after acknowledging a shutdown request; they now actually close. Cloud sessions whose network proxy failed to start at launch used to lose git/GitHub credentials for the rest of the session; it now retries in the background and recovers. Three small CLI improvements: /code-review --comment can now post findings on GitLab merge requests via glab mr note instead of reporting the target as unsupported; an MCP elicitation (a request for more information from you) or permission ask queued behind another dialog now sends its idle desktop notification at the same delay as a visible one; claude self-hosted-runner --configure-git now also enables git push negotiation, so the first push of a new branch from a clone that has sat around for a while uploads only the new commits instead of the whole tree; and in verbose/transcript output, several async hook completion notices arriving together now appear on one line instead of flooding the screen one line per hook.
BUGFIX
The VSCode extension batch: sidebar tidy-up, model switching, accessibility fixes
This release's updates to the VSCode extension — Microsoft's code editor — center on tidying the side panel and clearing a few stuck spots. The session list gains collapsible ACCOUNT & USAGE and SESSION MANAGER headers holding the account email, the usage meter, and a link that opens the usage dialog; the input footer gains a model pill showing the current model and opening the picker, with an Effort row and a More models page; the Ungrouped section can now be collapsed; and the command menu can select an output style, custom ones included. Fixes: third-party provider deployments such as Bedrock and Vertex were still showing claude.ai-only features and a leftover login, now hidden; the usage meter that stayed blank after the panel loaded now shows the last known usage first; the Enable Remote Control for all sessions toggle now applies to already-open sessions; two screen-reader announcement bugs are corrected. Delete session is renamed Archive session, with archived items moving to a collapsible Archived sessions group at the bottom and an Unarchive action; the action menu now lists slash commands in a filterable dialog instead of inline, and the MCP servers dialog gained the same filter box.
原始 CHANGELOG
Original changelog新的 Fable 5.1 模型上場,本機變預設、閘道暫時還給 5
Added Claude Fable 5.1 (`claude-fable-5-1`), now the default Fable model — 1M context, $10/$50 per Mtok with $0.25/Mtok cache reads
Changed `fable` and `best` in Claude apps gateway sessions to keep resolving to Fable 5 for now, since gateways not yet configured for Fable 5.1 reject it; pick Fable 5.1 in `/model` to use it
Original changelog可以自訂時間怎麼顯示,還有用哪個時區
Added "Time format" (`timeFormat`) and `timeZone` settings: 12-hour, 24-hour, 24-hour UTC, or a strftime pattern for the turn-end clock and transcript-view timestamps
Original changelog自動模式收緊三道關卡:雲端憑證、工作目錄外的檔案、別人的產物
Added a Containment Escape rule to auto mode so cloud metadata-credential fetches, egress evasion, and cross-tenant reach are no longer auto-approved unless your environment marks them expected
Added a one-time prompt in auto mode before the first file read outside the working directories, with the option to block such reads (`permissions.blockReadsOutsideWorkingDirectories`)
Changed Cowork and claude.ai cloud sessions: reading an artifact that isn't yours now always asks you first, even in auto mode
Original changelog一個環境變數,強制所有子代理都用同一個模型
Added `CLAUDE_CODE_SUBAGENT_MODEL_FORCE` to apply `CLAUDE_CODE_SUBAGENT_MODEL` (or the main model) to every subagent, ignoring per-spawn and agent-definition model overrides
Original changelog改推理力度可以只改這次工作階段,不動長期設定
Added `s` in `/effort` to change effort for the current session only, matching `/model`
Changed `--effort` to lift a new model's default-effort hold for that session only rather than permanently; an effort picked on claude.ai for a Remote Control session now applies during the hold
Original changelog透過閘道發現模型時,選單會顯示每個模型的說明
Added support for a gateway-supplied `description` on discovered `/model` picker entries (`CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY`); entries without one still read "From gateway"
Changed gateway model discovery (`CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1`) to run even when `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` is set, since it only queries your gateway
Original changelog問完插話的問題,回主線的按鍵改了
Fixed `←` doing nothing in the `/btw` panel inside a `claude agents` session: it now returns to the agents list (even mid-answer), and the panel comes back when you reopen the session
Changed `/btw` history browsing from `←`/`→` to `Shift+←`/`Shift+→` (or `[`/`]`), stepping through your recent side questions and back to the live answer
Original changelog`/add-dir` 兩處調整:拒收網路路徑、接受目前目錄底下的資料夾
Fixed `/add-dir` rejecting a directory inside the current working directory; it now loads that directory's skills, commands, and agents like `--add-dir` does at startup
Changed `--add-dir`, `/add-dir`, and `additionalDirectories` to refuse network paths (UNC shares, `/net/<host>` automounts) with a message before touching them; on Windows use a mapped drive letter
Original changelog專案資料夾裡設 `bypassPermissions` 不再有效
Changed `defaultMode: "bypassPermissions"` in `.claude/settings.json` or `.claude/settings.local.json` to be ignored, like `"auto"`; set it in user or managed settings, or pass `--permission-mode`
Original changelog公司統一派下來的設定:更早生效、更會報錯、極端數值會被夾住
Fixed `policyHelper` `timeoutMs` and `refreshIntervalMs` values above the timer maximum (2147483647) causing failures or re-runs every millisecond; they are now clamped
Fixed the managed-settings approval prompt showing the generic warning instead of its telemetry wording when the settings also turn detailed tracing or raw API body logging off, or trace export on
Improved policy helper diagnostics — refresh failures now show in `/status`, declining the managed-settings dialog prints why Claude Code exited, and helper timeouts are reported as timeouts
Changed a `policyHelper` in MDM or `managed-settings.json` shadowed at launch by cached server-managed settings to run (or exit) as soon as the fetch reports them removed, not at the next launch
Changed `managedSourcesBehavior: "merge"` to take `sandbox.credentials.awsPairs` and `sandbox.ripgrep` whole from the highest managed source that sets them instead of combining the sources' values
Original changelog接雲端供應商時,多送出去的憑證與殘留身分都清乾淨了
Fixed a doubly-listed custom `Authorization` header overriding the configured credential on Bedrock, Mantle, Vertex, and WIF, and the Vertex setup wizard picking up a leftover Anthropic profile from `~/.config/anthropic`
Fixed Claude apps gateway sending stray host `Authorization` or profile headers to Foundry, Vertex, and Bedrock, and Foundry Entra ID upstreams not starting when `ANTHROPIC_FOUNDRY_API_KEY` is set
Fixed a leftover Anthropic API key or auth token being sent alongside your Foundry subscription key in API-key mode
Fixed launching Claude Code after a Claude apps gateway expired or revoked your session: it now says the session ended and offers `/login` instead of reporting a network error
Fixed the keyless Console sign-in ("Sign in with your Console account") not applying your organization's server-managed settings, and `/status` not showing the Organization for that sign-in
Changed Claude apps gateway sign-in and token refresh requests to verify the gateway's pinned TLS certificate, as the managed settings fetch already does
Original changelog權限確認框這一批:少了一行舊提示、對付得了幾種混淆寫法
Fixed a `permissions.ask` rule being skipped in auto mode when the matching command ran inside a compound command or subshell, letting it run without the confirmation prompt
Fixed Bash `Read()`/`Edit()` deny rules not applying to `< file` redirects and reader commands like `tac` and `egrep`; a deny rule on any argument or redirect target now refuses the command
Fixed Bash permission checks auto-approving certain `[[ ]]` conditionals that zsh parses differently from bash; these commands now prompt for approval
Fixed the Edit permission prompt's diff view rendering emoji and multi-code-point characters with incorrect widths
Removed the Ctrl+E command explanation on Bash and PowerShell permission prompts
Original changelog背景工作階段開不起來的幾種情形,這版都堵上
Fixed background sessions failing to start on macOS npm installs during a self-update, and on Windows when a stale daemon lock file pointed at a reused process id
Fixed background sessions failing to open with "Couldn't start the background service" while another Claude Code process was downloading an npm update; the start now waits for it
Fixed background sessions left running an older Claude Code binary piling up across auto-updates instead of being retired
Fixed leftover `cc-daemon-*` folders in the system temp directory after an interrupted background daemon start; the `cleanupPeriodDays` retention sweep now removes them
Original changelog背景工作階段的清單顯示,這批修對了幾個記錯的地方
Fixed a background session's `state.json` `detail` repeating its own dispatch prompt after a scheduled wake-up
Fixed `claude agents` keeping a background session you re-prompted buried in Completed after it finished again; Completed now orders by the latest finish
Fixed `claude --bg` from a directory that was just deleted reporting "backgrounded" and leaving a crashed session row; it now prints the reason and exits 1
Fixed `--resume` listing a backgrounded conversation twice and `--continue` reopening its stalled pre-background copy; `--continue` now also opens finished background sessions
Changed `claude --resume <session-id> --bg` to continue that session under its own ID when nothing is running it, instead of silently starting a copy; a copy is now announced
Original changelog背景工作階段對停止與通知的反應,這批修得更誠實
Fixed a prompt stashed with Ctrl+S inside an opened background session being lost when the session went idle or was stopped and then reopened
Fixed backgrounding a turn (`←` or Ctrl+B) while a subagent or other tool was running occasionally making the background session treat that tool as rejected instead of re-running it
Fixed Claude not being told when you stop a background command from the tasks panel or a connected client
Fixed stopping a background subagent leaving its monitors running
Fixed `claude agents` not saying that a background session is waiting for you to approve a message from another session, or who sent it
Fixed background commands that detach from their shell (for example under `timeout` or `setsid`) surviving a task stop or Claude Code exit
Original changelog`claude agents` 畫面與子代理逐字稿,這批修的是「看得到、跟得上」
Fixed sessions dispatched from an agent view opened with `←` always starting in the original session's permission mode, overriding the target directory's `defaultMode` and the agent's `permissionMode`
Fixed `keybindings.json` rebinds of Ctrl+G being ignored in `claude agents`; its Ctrl+S / Ctrl+T are now rebindable via the new `Agents` context
Fixed the token counter freezing or crawling after switching to another subagent's transcript, and made background subagents' and teammates' counters update live while a response streams
Fixed `claude agents --json` briefly switching the terminal to raw mode and undoing another program's terminal settings on exit
Fixed subagents stopping when a response was cut off mid-stream by a computer sleep, dropped connection, or server error; they now automatically continue instead of ending with an incomplete response
Fixed the main agent not being told when you resume a subagent you had stopped from its transcript view
Fixed resuming or messaging a subagent whose transcript had grown past 5 MB (for example after reading many images) failing with "No transcript found"
Original changelog五種讓提示快取失效的情形,這批一次修掉
Fixed Remote Control connecting mid-session re-sending the Bash tool definition, causing a prompt-cache miss
Fixed sessions with an advisor model set missing the prompt cache on background requests (compaction, `/recap`, prompt suggestions) and re-sending the full conversation uncached each time
Fixed `/model` and `/effort` showing a prompt-cache warning after rewinding a conversation back to empty
Fixed prompt-cache misses on every turn in long screenshot-heavy sessions once images exceeded the per-request size cap
Improved `/fork` to keep the original conversation's prompt cache in the new background session: its worktree briefing now arrives as a message instead of a system-prompt change
Original changelog遠端遙控的兩個信任漏洞補上了
Fixed dismissing the Remote Control consent prompt (Esc, or `n` at `claude remote-control`) counting as consent, so the next request connected without asking
Fixed Remote Control (`claude remote-control`) sessions started from the Claude app ignoring the selected model and running on the machine's default instead
Original changelogMCP 連線這批:該擋的擋住、該清的清乾淨、錯誤訊息看得懂了
Fixed `/mcp` reconnect and enable still connecting a settings-file MCP server that a managed MCP allow/deny list or `strictPluginOnlyCustomization` loaded after startup should block
Fixed `claude mcp remove` leaving a remote server's stored OAuth credentials behind when `strictPluginOnlyCustomization` locks MCP to plugin-only servers
Fixed `claude mcp add/remove` hanging or exhausting memory when the project's `.mcp.json` is a FIFO or a device-file symlink; it now fails fast with an actionable message
Fixed WebSocket MCP server connection failures being logged as "[object ErrorEvent]" instead of the underlying error
Improved MCP connection and OAuth debug/error logs so credentials carried in a server's URL or request headers are redacted
Original changelog沙盒與工作樹的邊界,這批修的是「不該過去的路」跟「該提醒的殘留」
Added a `/doctor` warning for stale sandbox mask files left by a killed session
Fixed sandbox network hosts written with a trailing dot (`example.com.`): a `deniedDomains` entry didn't block the host inside the sandbox, and "don't ask again" for such a host kept prompting
Fixed plugins being able to read files outside their own directory through a declared command, agent, skill, hooks or other component path that is a symlink; such paths are now refused with an error
Fixed worktree-isolated sessions refusing Bash loops, `$VAR` reads, `"$(…)"` and heredocs that never touch git as "too complex to verify that it stays inside the worktree"
Fixed sandboxed git commands in a linked worktree losing write access to the repository's common `.git` directory after `cd` into a subdirectory
Original changelog設定重新載入這幾個環節,以前會漏掉或忘記已經變了
Fixed settings in a `.claude/` folder created after startup not being picked up until restart
Fixed `--disallowedTools` and session deny rules being dropped after the first settings reload when `allowManagedPermissionRulesOnly` is enabled
Fixed telemetry (OTEL) settings pushed through server-managed settings being ignored on warm starts, including desktop-app Code sessions
Original changelog終端機畫面這一批:跑起來更順、幾個卡格的地方修好了
Improved rendering performance: less re-render work per turn in long conversations, streaming no longer slows down as the reply grows, and background-agent updates no longer re-render the whole screen
Improved prompt input responsiveness by reducing per-keystroke rendering work
Fixed the working spinner stopping while a response streams behind a slash-command panel
Fixed a phantom duplicate slash-command row rendering below the in-flight turn while a command's auto-continued response streamed
Fixed fullscreen mode not letting you click `!` shell command output to expand it
Fixed a crash when pasting ANSI-colored text (e.g. a CI log) into dialogs like `/feedback`
Improved emoji autocomplete to accept the remaining GitHub/Slack shortcode aliases (`:satisfied:`, `:telephone:`, `:collision:`, …)
Original changelog無頭模式與長時間串流這批:不再提早掛斷、不再悶著頭空轉
Fixed `claude -p` exiting about 5 seconds after its final result while a Monitor the model armed was still running; it now waits for the watch to fire or time out
Fixed unbounded memory growth when non-JSONL data is piped into `claude -p --input-format stream-json`; it now fails fast with a clear error
Fixed Proactive output style sessions busy-looping with filler messages and repeated log reads instead of idling while a background command or Monitor they started is still running
Fixed Bedrock and Bedrock Mantle requests going silent during long hidden-thinking phases on Opus 4.7 and later, which let idle timeouts cut the connection; the stream now carries progress events
Improved liveness reporting to SDK hosts while a response is held open by gateway keep-alives, so long waits under a raised `CLAUDE_STREAM_IDLE_TIMEOUT_MS` are not mistaken for a hung session
Original changelog這版剩下的零散修復:排程、隊友、憑證、幾個 CLI 小改進
Fixed `/schedule` routines whose prompt was saved without a message role and then ran with nothing to do
Fixed a teammate permission request being answered twice when the leader's mailbox write was briefly locked
Fixed agent-team teammates in tmux/iTerm2 panes sometimes staying open after acknowledging a shutdown request
Fixed cloud sessions losing git/GitHub credentials for the rest of the session when the session's network proxy failed to start at launch; it now retries in the background and recovers
Improved `/code-review --comment` to post findings on GitLab merge requests via `glab mr note` instead of reporting the target as unsupported
Improved notifications: an MCP elicitation or permission ask queued under another dialog now sends its idle desktop notification at the same delay as a visible ask
Improved `claude self-hosted-runner --configure-git` to also enable git push negotiation, so the first push of a new branch from a stale clone uploads only the new commits instead of the whole tree
Improved verbose/transcript output: async hook completion notices that arrive together now appear on one line instead of one line per hook
Original changelogVSCode 擴充套件這一批:側邊欄整理、模型切換、無障礙修正
[VSCode] Added collapsible ACCOUNT & USAGE and SESSION MANAGER section headers to the session list panel, with the account email, the usage meter, and a View details link opening the usage dialog
[VSCode] Added a model pill to the input footer that shows the current model and opens the model picker, with an Effort row and a "More models" page
[VSCode] Added a collapse toggle to the Ungrouped section of the session list
[VSCode] Added output style selection to the command menu, including custom styles
[VSCode] Fixed third-party provider deployments (Bedrock, Vertex, and others) still showing claude.ai-only features (remote sessions, dictation, usage) and calling claude.ai with a leftover login
[VSCode] Fixed the session list panel's usage meter staying blank after the panel loads; it now shows the last known usage immediately
[VSCode] Fixed the "Enable Remote Control for all sessions" toggle so turning it on or off applies to sessions that are already open, not only to new ones
[VSCode] Fixed screen reader announcements: a control character before a fence or heading no longer drops visible lines from speech, and bold markers spanning a heading are no longer mis-paired
[VSCode] Changed the action menu to list slash commands in a filterable "Slash commands" dialog instead of inline; picking one runs it; the MCP servers dialog gained the same filter box
[VSCode] Changed "Delete session" to "Archive session": archived sessions move to a collapsible "Archived sessions" group at the bottom of the list with an Unarchive action