←新闻详情

Claude Code:GitHub Releases更新于 11月7日 01:24

Claude Code v2.1.319 发布:调整 auto mode 网关行为并新增 MCP 任务后台支持

v2.1.319

AI 导读

Claude Code v2.1.319 调整了 auto mode 在关闭遥测或功能开关时的行为:服务器无法检查的调用会被询问或拒绝,不再回退到内置分类器,可用 CLAUDE_CODE_AUTO_MODE_SERVER=0 保持原行为。新版本支持终端中的 MCP 任务,MCP 服务器以任务方式执行工具调用时 Claude Code 会立即转入后台并在完成后告知 Claude,同时新增 CLAUDE_CODE_DISABLE_MCP_TASK_BACKGROUND 环境变量控制该行为。此外新增 permissions.denyInsteadOfPrompting 设置和 /claude-api latency-optimize 命令,并修复了 MCP 旧版握手连接失败、/diff 空白等多项问题。

正文

## What's changed

- Changed auto mode with telemetry or feature flags off, including behind LLM gateways: calls the server can't check are asked about or denied, with no fallback to the built-in classifier; set `CLAUDE_CODE_AUTO_MODE_SERVER=0` to keep using it (Bedrock, Vertex and Foundry are unchanged) - Changed auto mode behind an LLM gateway: `CLAUDE_CODE_AUTO_MODE_SERVER=1` turns on the server-side check even with `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` set; if managed settings set the latter, they must set the `1` too - Added support for MCP tasks in the terminal: when an MCP server runs a tool call as a task, Claude Code moves it to the background right away and tells Claude the result when it finishes - Added the `CLAUDE_CODE_DISABLE_MCP_TASK_BACKGROUND` environment variable to make Claude Code wait for an MCP task inside its tool call instead of moving it to the background right away - Added `permissions.denyInsteadOfPrompting` setting: a tool call that would wait on a permission prompt is denied and the turn continues, in terminal sessions, subagents and teammates - Added `/claude-api latency-optimize` to find where your Claude API code makes people wait and try faster settings against your eval - Added the `CLAUDE_CODE_DISABLE_FEATURE_FLAGS` environment variable, which stops feature-flag fetching without turning off telemetry; every flag then uses its built-in default - Added spend for today, this week and this month to `/usage` for developers behind a Claude apps gateway who have no spend limit, when the gateway runs this version or later - Added `admin.pooled_conflict_rule` and `admin.pooled_priority_order` to the Claude apps gateway, to set which pooled group budget pays first for a developer in several groups - Added an optional `login_notice` setting to the Claude apps gateway that shows an operator-defined message on the gateway's browser verification page and on Claude Code's sign-in screen - Added `CLAUDE_GATEWAY_LOG_FORMAT=json` to the Claude apps gateway: operational log lines become JSON with `severity`, `time` and `message`, for log collectors that read the level from a field - Added a Claude apps gateway boot warning for a case where another policy's `availableModels` also allows a custom model id that one policy lists by name - Added start-up warnings to the Claude apps gateway for policies with no `desktopHome` that rely on `coworkTabEnabled: false` or `chatSessionRetentionDays`, ahead of Claude Desktop's November 10 change - Added a warning when your claude.ai login ends and Claude Code continues on the sign-in from `ant auth login`, which bills usage to your Claude Console organization - Added a line at startup naming the Claude Console organization that is billed in a case where Claude Code uses the sign-in from `ant auth login` - Added an "Earlier in this session" row to `/tasks` that lists finished subagents, so you can reopen one and message it even after it leaves the list or you restart - Added a note to `/loop` confirmations in cloud sessions that a timer stops with its container, with an offer of a loop that survives - Fixed MCP servers on the older handshake failing to connect, or returning empty results, because Claude Code declared an extension that it only uses with newer servers - Fixed a long-running MCP tool call on a claude.ai connector sometimes never reporting its result after `--resume` - Fixed a session's diff failing to load on claude.ai and the mobile apps when the folder Claude Code runs in has a file or folder named `HEAD` - Fixed `/diff` showing "Diff unavailable" when a git repository has a file or folder named `HEAD` at its top level - Fixed the `/diff` pane opening blank in sessions where 64 or more turns edited files - Fixed slash commands typed after a leading space, tab or newline being sent to Claude as plain text instead of running - Fixed a request that kept failing with a 401 refreshing your login on every retry and causing 401s in your other sessions - Fixed `/context` sending its full visual grid to Claude on every later turn; Claude now reads only the table - Fixed `claude -p` exiting 0 in auto mode when its actions were refused because no safety check was available: text and JSON output now exit 1 - Fixed a case where Claude Code listed every project file at start on Linux for projects on a network file system (NFS, SMB, Lustre and similar) - Fixed a case where auto mode was wrongly refused when a client sent a model change and a request for auto mode back to back - Fixed `/status` showing "Auto mode server: Enabled" when the server-side review isn't reaching the session, for example behind an LLM gateway that drops it - Fixed Claude-drafted feedback, surveys and `/feedback` continuing to appear after the server refused feedback for your organization - Fixed Claude drafting feedback on third-party gateways, where it can't be sent - Fixed auto mode refusing actions without saying why when permission rules or `autoMode` settings are very large: it now explains and, unless `autoMode` deny rules are set, asks you in the terminal - Fixed a case where Bash deny and ask rules missed commands written with quoted words - Fixed subagent hand-back reports showing an internal marker and provenance note when expanded outside verbose mode - Fixed `claude -p --resume` with a prompt losing a deferred tool call when its MCP server is missing: the run now exits 1, keeps the call and refuses later input - Fixed a case where text was dropped from informational messages sent to SDK clients - Fixed a case where Agent SDK hosts got a generic exit-code error instead of a failed run's own error message when the disk was full - Fixed `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` re-running a turn that was interrupted in plan mode when the session resumes in another permission mode - Fixed edits to a settings file being ignored when made within a few seconds of Claude Code writing that file - Fixed a config file left at the legacy name hiding your setup with no warning: Claude Code now says on stderr when a home holds two config files, and which is in use - Fixed `~/.claude.json`, settings and edited files ending up empty or cut off when the disk fills during a save in a read-only folder or to a bind-mounted file (one session saving at a time) - Fixed Write ending the turn as a refusal when it couldn't read the file to overwrite - Fixed background Bash commands that finish almost instantly losing their output while being reported as completed - Fixed the Bash tool's diff of changed files missing a file that the command wrote just before it ended - Fixed a mistyped model name, such as `opus-5-5`, telling you to update Claude Code instead of suggesting the model you meant - Fixed a case where `NotebookEdit` changed the wrong cell when the notebook changed while a permission prompt was open - Fixed a ~0.5s hang after pressing Enter on the `/login` success screen: the dialog now dismisses immediately and the post-login refresh runs in the background - Fixed Ctrl+G not opening the external editor while typing an "Other" answer to a question in screen reader mode - Fixed Monitor's WebSocket watch failing with "could not resolve" behind a proxy when `CLAUDE_CODE_PROXY_RESOLVES_HOSTS` is set and the machine has no DNS of its own - Fixed `claude plugin eval` warnings suggesting `max: 0` for a tool that must not be called, which could never pass - Fixed background plugin auto-update not installing a dependency added by the updated plugin version - Fixed Cmd+click not opening links in Ghostty over tmux in sessions opened from the agents view - Fixed a mod's hot reload in `.claude/skills` missing a file that was deleted just after it appeared, and missing its return - Fixed `/rewind` failing with "No files were restored" when restoring code to a checkpoint from before `/branch` - Fixed the `/claude-api` skill saying Console web settings don't apply to Managed Agents sessions, and tightened its credential and permission examples - Fixed needless permission prompts for read-only commands wrapped in a plain `timeout DURATION`, such as `timeout 30 rg foo` - Fixed WebFetch describing claude.ai shared-chat links as empty pages; it now says shared chats can't be read and to paste the conversation instead - Fixed Artifact database calls being re-sent to artifacts without a database; errors now say whether republishing helps - Fixed a case where artifact database reads that save to a folder (`out_dir`) were refused - Fixed detailed beta tracing not presenting `CLAUDE_CODE_CLIENT_CERT` to collectors that require a client certificate - Fixed the OpenTelemetry `claude_code.session.count` metric counting Agent SDK `prewarm()` processes that were never claimed; a pre-started process now counts once, when it is claimed - Fixed `/clear` killing running commands of background agents, teammates and workflows that keep running, and foreground subagents of background agents and teammates - Fixed a terminal whose Claude apps gateway sign-in had expired sending telemetry and managed-settings requests that the gateway refused and logged as `invalid_token` - Fixed the agents view appearing to send a reply to a background session waiting on a permission prompt; the reply now stays in the box with a hint to open the session and answer - Fixed agent view removing a draft saved by another agent view in the same directory when exiting - Fixed a case where agent view came back with another agent view's input text after restarting itself for an update - Fixed the agents view preview cutting off long commands, results and status lines without an ellipsis, and dropping `**`, backticks and tags from commands waiting for approval - Fixed Claude in Chrome reporting the extension as not connected when the connection dropped mid-action; Claude now checks the page before repeating an action that may have run - Fixed Remote Control sessions still showing "Limit reached" on other devices after a usage limit was lifted outside the session - Fixed the file card sometimes missing in the Claude iOS app when Claude sent a single file - Fixed self-hosted runner sessions failing with no explanation when the server keeps refusing to renew model access: the runner now retries sooner and posts a warning in the session - Fixed `/permissions` in cloud sessions replying only that it isn't available; it now says where the session's rules live and how to change them - Fixed cloud sessions losing session-scoped deny and ask permission rules, such as those a PermissionRequest hook adds, when the session moves to a new worker - Fixed mod hot-reloading turning off for the session when you typed three messages instead of answering its question in a cloud session - Fixed background tasks that keep running after `/clear` disappearing from the task list in Claude Code on the web until another task started or ended - Fixed hidden commands appearing in the slash command menu of cloud sessions on mobile and web - Fixed a case where `/rewind` could restore or delete a file through a directory symlink - Fixed a case where a `sed` command could skip the permission check in accept-edits and auto mode - Fixed a case where `CLAUDE_CODE_AUTO_MODE_SERVER=1` in managed settings was ignored behind an LLM gateway when the gateway's URL is set only there and server-managed settings can't be fetched - Fixed a Bash permission bypass where a crafted environment prefix could hide part of a command from permission checks - Fixed a case where deny and ask rules, hook matchers and `disallowedTools` entries written with a claude.ai connector's terminal name (`mcp__claude_ai_Slack`) were ignored in Claude Desktop (takes effect once Claude Desktop includes this version) - Fixed a sandbox escape when creating a worktree - Fixed self-hosted runners: `--trust-workspace false` now also stops hooks in the repository's settings files and skills from running - Fixed a case where idle background sessions started through a shell-exported LLM gateway left the gateway after an update - Fixed help links in `/status` and the auto mode billing notice opening only part of the address when they wrap - Fixed a case where certificate errors behind a TLS-inspecting proxy persisted when `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` was set. With it set, Claude Code now makes a TLS handshake with the configured API host after a certificate failure, through your http:// proxy if one is set; it sends no API request - Fixed `claude remote-control` exiting silently with status 0 when a first-run question gets no answer (scripts, services, batch jobs, Ctrl+C); it now says why and exits 1 - Fixed `claude remote-control` ignoring a piped `y` that has no newline after it at the first-run question; it now counts as a yes - Fixed `/rename` reporting plain success when the new name could not be saved to the session transcript; it now warns that the new name may not last - Fixed `${CLAUDE_PLUGIN_ROOT}` not being substituted in a plugin-provided `subagentStatusLine` command, which can now reference the plugin's own scripts - Fixed `claude plugin update` and `/plugin` "Update now" not installing dependencies added by the new plugin version - Fixed subagents being told after compaction to expect a completion notice for background agents they neither started nor took over - Fixed a case where a background agent's later report was lost silently: the notification now says it was refused and how to ask for it - Improved config saves on Windows: Claude Code waits longer for a file another program has open, so a kill during a save is less likely to leave `~/.claude.json` empty - Improved Claude in Chrome after a brief disconnect: it waits up to 6 seconds for the session's own browser to return before picking another - Improved Claude in Chrome: `javascript_tool` results of up to 60,000 characters now stay in the conversation instead of being saved to a file - Improved `claude purge` and the clean-up of old sessions to retry a folder that could not be fully deleted, and to report it as an error if it remains - Improved the refusal for a path outside the working directories on macOS and Windows: when only its letter case differs from a path inside them, the message names that spelling - Improved the contrast of faint gray secondary text, such as hints, details in `/stats`, `/model` and `/sandbox`, and rejected-action messages - Improved the artifact database error when an update targets a document that does not exist, and when the service pauses repeated refused writes - Improved the Claude apps gateway's warnings about a failed upstream call: each now names the upstream, not only its provider - Improved the Claude apps gateway's spend limit error: it reads "spend limit reached · resets Dec 1", then `admin.blocked_message` if one is set - Improved the `/model` picker: older models are now grouped under a "More models" row instead of being listed after the current ones - Improved `/context` at the terminal so the table Claude reads stays short: each list keeps its 10 largest rows, and MCP tools that load on demand share one row per server until they're called - Improved `/usage` in cloud sessions: it now links to Settings → Usage on claude.ai in a case where plan limits can't be shown - [VSCode] Improved the confirmation for removing a plugin marketplace: it now checks which of its plugins are installed at that moment - Changed MCP tasks to work in the terminal without feature-flag fetching (Bedrock, Vertex, Foundry, LLM gateways, `DISABLE_TELEMETRY`); set `CLAUDE_CODE_DISABLE_MCP_TASKS=1` to turn them off - Changed auto mode so that a project's settings files or a plugin can no longer switch its server-side check back on once you have switched it off outside the project - Changed Monitor's WebSocket watch to follow a rule on every Bash command: a deny refuses it, and under an ask rule an allow on Monitor, bypass mode or auto mode no longer skips the prompt - Changed `CLAUDE_CODE_PROXY_RESOLVES_HOSTS` so that settings files can no longer set it where the host manages the network; set it in the process environment - Changed a session's exact Bash or PowerShell ask rule to be refused, not asked about, when a broader deny rule covers the command - Changed the Bash tool to ask for permission before running `which` with flags outside a lookup/display set - Changed `--add-dir` directories to register plugin marketplaces only once that directory's own trust dialog has been accepted - Changed nested skill loading: with the Bash sandbox on, skills in `.claude/skills` folders below the starting folder load only if you start Claude Code there or `/cd` there - Changed self-paced `/loop` to end when a turn finishes without rescheduling, instead of scheduling a fallback wakeup; set `CLAUDE_CODE_LOOP_KEEPALIVE=1` to keep the old behavior - Changed PostToolUse hooks to run, with up to 10 seconds to finish, on tool calls that finish after a new message interrupts the turn - Changed what Claude is told after safeguards stop a subagent: retry with a narrower prompt or tell you, instead of doing the work itself - Changed cloud sessions to drop session-scoped allow rules at a move to a new worker when their deny and ask rules can't all be kept, so you may be asked again - Changed the automatic certificate repair behind a TLS-inspecting proxy: it no longer runs when `ALL_PROXY` is the only proxy variable set. Set `HTTPS_PROXY` to the proxy's http:// URL instead - Changed artifact database saves of rows others may have written: each file gets a hidden marker file, and existing files without one, earlier versions' exports among them, are left alone and reported - Updated `/claude-api managed-agents-onboard` templates to match the Claude Console: removed Performance tuner, renamed two, and turned off web search and fetch in five whose prompts don't use them - Removed `shortcuts_list` and `shortcuts_execute`, which listed and started shortcuts saved in the extension, from Claude Code's built-in Claude in Chrome tools - Gateway: Added startup warnings for upstreams that mix AWS GovCloud with other upstreams, and for base URL variables in the gateway's environment - Gateway: Added a start-up log warning when managed settings name an Amazon Bedrock guardrail in a header, which the gateway doesn't forward, and no `bedrock` upstream sets a `guardrail` - Gateway: Fixed Claude Desktop offering a web search tool that always failed when every upstream is Amazon Bedrock - Self-hosted runner: Fixed a runner started with `--use-anthropic-git-proxy` or `--configure-git` registering before a failed startup check made it exit; it now exits first - Self-hosted runner: Changed `CLAUDE_RUNNER_CHECKOUT_PATH` so that each repository in a session gets its own folder: a folder name already taken in the session gets `-2`, `-3`, … at the end - Self-hosted runner: Removed the end-of-session upload of a session's debug log; a failed session's log stays on the runner host unless `--remove-session-state` is set - [VSCode] Fixed prompts over 50,000 characters being cut off silently: the prompt now stays in the chat box with a notice, and a paste over the limit is refused with a notice - [VSCode] Fixed a click on the survey or "Report a problem" buttons sending the unfinished prompt - [VSCode] Fixed cloud sessions opened from the extension's Web tab bringing back turns that `/clear`, or Retry or Edit of a typed prompt, had removed - [VSCode] Fixed a deleted session's file coming back when that session was renamed in the extension - [VSCode] Fixed Claude carrying out an unapproved plan after a window reload: a step interrupted in plan mode now stops with a notice when the session comes back in another permission mode - [VSCode] Improved the "not signed in" message behind a Claude apps gateway: it now looks like an error and has a Sign in link - [VSCode] Changed links in Claude's replies that point at Claude sign-in, connector or API addresses to show as text with the address, instead of opening in the browser - [VSCode] Fixed a possible chat panel freeze when a dropped item's path contains a very long run of "/" characters - [VSCode] Fixed the `claude-vscode.toggleDictation` command starting dictation in every open Claude view at once; it now acts only in the view you are using, and a second press stops it - [VSCode] Fixed the chat panel slowing down while a reply with many unclosed `$$` math fences, each shorter than the last, streams in - [VSCode] Improved the chat panel's diagnostics tool for large workspaces: it leaves out files with no problems, returns compact JSON, and accepts an optional minimum severity - [Cloud sessions] Fixed scheduled tasks silently dropping a connector named memory: runs now keep it, mounted under that name plus a short suffix - [Cloud sessions] Fixed Send now on a waiting message in cloud sessions ending running background agents; they now keep running - [Cloud sessions] Improved the stalled-setup warning on self-hosted environments: its link now prefers your organization's default or an environment with a live runner, and names it - [Code Review] Changed unlinking a GitHub organization to also turn off its All repositories setting in Code Review; it stays off after you relink until you turn it back on - [Claude Tag] Fixed Claude Tag setup blocking launch when the channel list couldn't fully load; admins can now launch without picking a channel - [Claude Tag] Added a Claude Tag row to the Models admin page for Enterprise orgs with Claude Tag connected, linking to where its model defaults are managed - [Claude Tag] Fixed saving auto mode allow rules in Claude Tag admin settings overwriting another admin's changes; the save is now refused with a message

来源

Claude Code:GitHub Releases