Follow Discord

Claude Code v2.1.312

latestnext 312 entries read Grouped into 265 v2.1.311 → v2.1.312 Mods API: +0 added · 0 removed · 0 changed · 1 docs only Markdown JSON Follow Unofficial

You can now set oidc.user_id_claim to choose which sign-in token field holds the user ID for the OIDC gateway. It defaults to sub. Among the other shipped changes, the prompt asking whether Claude may use a skill now shows the skill's description in a scrollable box. Usage messages now call your short-term limit the "5-hour limit". Programs that embed Claude Code can now mark a question as skipped, answered in chat or dismissed with the ask_user_question_unanswered_v1 capability. Remote control can now ask a session to start a shell command in the background, and the usual permission checks still apply.

Several features are in this build but are not switched on yet. Cloud sessions can enforce a policy on model and effort changes, but only when a worker policy is set to enforce. Auto mode gains a remote list that can turn off its extra safety checks. A tip about Claude Design shows only if a flag is switched on from Anthropic's servers. A note telling Claude that staged files are still being copied is also off by default.

Among the fixes, agent calls cut off by a container restart now resume, or Claude is told plainly why they cannot. Skills supplied by MCP servers can no longer be run through the Skill tool and now return an "Unknown skill" error. Plan mode is read-only again because its workshop and prototype offers are removed. Signed policy documents are no longer rejected for being older than one already accepted. Mantle is gone from the built-in list of model providers.

Written by our agent from the shipped bundle, not by Anthropic.

Five to try today

Picked from 10 you can use now
  1. AskUserQuestion: questions must stand alone, and unanswered questions can be marked

    AskUserQuestion's instructions now say the user may see only the question dialog, and hosts can mark a question skipped, replied in chat or dismissed

    Extensions
  2. Loading an MCP skill can wait for a person to answer the permission prompt

    When loading an MCP skill needs permission, Claude Code can now hold the request until a person answers it

    Extensions
  3. The OIDC gateway can take the user ID from a claim other than sub

    A new oidc.user_id_claim setting picks which sign-in token field holds the user ID, defaulting to sub

    Platform & internals
  4. /effort handles 'default' and 'auto' better and tracks the effort sent

    /effort now reads 'default' and 'auto' from what you typed, its auto keyword comes from a helper, and sessions record the effort sent each turn

    Elsewhere
  5. Queued messages can be clicked to send them now

    A queued message can now show a send-now hint, and in the fullscreen display you can click it to send the message straight away

    Sessions & agents

Want the reasoning? Read walks the 24 entries that probably matter to you, each one opening to what changed and why.

Read this release → Every row →
17 of 265 shownClear
Reading as
Show only
Who it's for
Tier
Flag state
Names
Pick an entry · j / k steps through · rest on a row to peek
6 entries here

What probably matters to you

Anything you can use today, anything that visibly changes, and anything worth poking at. One line each, open for detail.

↑Improved
You'll notice
Useful3 Signal4
Group of 2 Privacy unclear

Data-sharing setting can be locked for Claude Science accounts#

The privacy dialog and the consumer terms dialog can now lock the data-sharing (Grove) choice for Claude Science accounts, showing it as not available

Unclear It is not clear exactly which options the locked terms dialog still shows.

Details 0 0 Feedback
◌In dev
Nothing to try yet
Useful3 Signal4
Cloud Sessions unclear

Cloud sessions can enforce a policy on model and effort changes#

Cloud sessions gain handling for model and effort change requests that only takes effect when a worker policy is set to enforce

Unclear Where the policy comes from, and what a reader sees when it is enforced, is not stated.

Details 0 0 Feedback
Were these the right ones to put at the top? 0 answered
Below the fold

Everything else

Smaller changes and internals, grouped as the pipeline found them. Nothing is dropped, it is only further down.

9 entries here

Improvementsopen

5 more of these are in What probably matters to you, above.

↑Improved
You'll notice
Useful3 Signal3
Remote Tools unclear

Remote tool hosts can release themselves when idle and report their status#

A remote tool host can now be released after an idle time set remotely, and Claude Code reads status updates from it during a session

Unclear It is not clear what idle time is used when the server sends no value, or whether idle release happens at all in that case.

Details 0 0 Feedback
↑Improved
You'll notice
Useful3 Signal3
MCP unclear

MCP skills are handled separately, and MCP servers can have their own permission mode#

Skills that come from MCP servers are now treated separately in permission handling, and each MCP server can have its own permission mode override

Unclear It is not clear whether mcpPermissionModeOverrides is something you can set yourself, or how it gets filled in.

Details 0 0 Feedback
↑Improved
You'll notice
Useful2 Signal2
Elsewhere unclear

Two settings now decide whether a refusal can switch to a fallback model#

Claude Code now offers no fallback model after a refusal when one setting is off or a second, opposing setting is on

Unclear It is not clear how refusal_fallback and no_refusal_fallback are set for a given account, so who keeps the fallback is unknown.

Details 0 0 Feedback
↑Improved
You'll notice
Useful2 Signal2
Permissions unclear

Permission suggestions for rules pinned to an exact @sha256 digest#

Claude Code can now recognise permission rules ending in an @sha256 digest or ":*" and suggest one matching allow rule saved to your user settings

Unclear It is not clear where these suggestions are shown, or whether you will see them yet.

Details 0 0 Feedback
@sha256
2 entries here

Removedopen

−Removed
Under the hood
Useful2 Signal2
Managed Settings unclear

Two reasons for distrusting organization-locked configuration are gone#

Claude Code no longer lists a rollback or an unreadable floor as reasons to distrust configuration pinned by an organization

Unclear It is not clear whether those two situations are now accepted as trusted or are caught some other way.

Details 0 0 Feedback
Verbatim
Official · Anthropic

Anthropic’s official release notes

Published verbatim by Anthropic for v2.1.312. Text is unmodified from the upstream changelog. Everything else on this page came out of the bundle instead, which is why the two lists don't match.

Of these 39 bullets, 5 name something an entry on this page also names, 8 name something no entry here does, and 26 name nothing specific enough to line up either way. The pairings are made on names both sides wrote down, a flag or a setting or a slash command, so read one as probably the same thing rather than as a fact, and read the middle number as candidates rather than as a miss count.

  • Added oidc.user_id_claim to the Claude apps gateway, to identify people by an id_token claim other than sub, such as Microsoft Entra ID's oid Probably oidc-proxy-gains-oidcuser-id-claim
  • Added click to send: in fullscreen, clicking the "to send now" hint under a queued message sends it right away, as its key does No entry names this
  • Fixed managed settings and organization policy not being fetched for the rest of the session after signing in from the VS Code extension Nothing to match on
  • Fixed Claude overwriting a very large CLAUDE.md, rules file or @-included file in a subdirectory after seeing only its start; Write now asks Claude to read it all or edit in place Nothing to match on
  • Fixed per-directory and paths: skills not being found after a Bash cd deeper into a git repository Nothing to match on #105250[BUG] Skill paths: globs match against the Bash tool's current directory, so a persisted cd hides path-scoped skills (rules unaffected) Open
  • Fixed a rare case where the first reply after resuming a session in the terminal could be missing the next time the session was resumed Nothing to match on
  • Fixed a command with an invalid name stopping all commands from loading, which could leave claude -p with no output No entry names this
  • Fixed the Read tool sometimes failing on PDF pages with "pdftoppm failed: Could not write image" when the clean-up of old session files ran at the same time No entry names this
  • Fixed the spinner, OpenTelemetry effort values and transcripts naming a newly picked effort level during a task before the model applied it; they now show the level in force Nothing to match on
  • Fixed the /model and /effort cache warning saying the re-read waits for your next message; a change made while Claude is working can trigger it sooner Probably effort-usage-text-uses-a-function-provided-label-instead-of, effort-reset-message-names-the-effective-default-instead-of, effort-auto-keyword-now-produced-by-a-helper, effort-command-accepts-more-default-values, agent-view-model-matching-fix-scroll-speed-ui-rework
  • Fixed some sessions showing as waiting on you when the last message only mentioned items waiting on you mid-sentence Nothing to match on
  • Fixed agent view restoring input text on the next launch after it was cleared with Ctrl+C just before exiting Nothing to match on
  • Fixed agent view reopening in shell mode after exiting with Ctrl+D from an empty ! input Nothing to match on
  • Fixed vim mode d, c and y with a gj or gk count larger than the lines left deleting or copying text; like Vim, they now only move the cursor Nothing to match on
  • Fixed /verify showing a long description meant for Claude in /help and the / command menu instead of a short one No entry names this
  • Improved the prompt's effort indicator: a change made mid-task now says it may wait for your next message, and the note clears when it no longer applies Nothing to match on
  • Improved WebFetch errors in cloud sessions: a host that does not resolve is now explained as possibly outside the allowed network domains, so Claude names the host to allow Nothing to match on
  • Changed Bedrock, Vertex, Foundry and Mantle to use the shorter system prompt for model names Claude Code doesn't recognize, such as custom deployment names and inference profile ARNs, even when they front Sonnet or Haiku; set CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT=0 to keep the full prompt No entry names this
  • Changed automatic model switches after a flagged message to also cover model names Claude Code doesn't recognize, such as custom deployment names; set CLAUDE_CODE_DISABLE_REFUSAL_FALLBACK=1 to turn them off No entry names this
  • Changed usage limit messages to call the 5-hour window the "5-hour limit" instead of the "session limit" Probably session-limit-reset-wording-changed-to-5-hour-limit, session-limit-renamed-to-5-hour-limit-in-ui-text
  • Changed cloud sessions started from the CLI to get their names and branch names from the server Nothing to match on
  • Changed prompt and agent hooks to run at most 24 at a time per session, sub-agents included, plus at most 12 that have waited longer than their event's timeout; a timeout under 1 second now counts as 1 second Nothing to match on
  • Changed a subagent's autoCompactWindow to lower the window set by CLAUDE_CODE_AUTO_COMPACT_WINDOW, where it had no effect before; it still never raises that window Probably auto-compact-window-env-override-no-longer-bypasses-the-ceil
  • Changed OpenTelemetry mcp_server.name to report the real name of fixed-URL remote MCP servers declared by plugins from the official Anthropic marketplace, instead of custom No entry names this
  • Changed Claude Code to stop sending the claude_code.safety_event OpenTelemetry event No entry names this
  • [VSCode] Fixed sessions ending on a bare exit code when your organization's settings couldn't be loaded or were refused at startup; the tab now says why and offers Retry or Sign in again Nothing to match on
  • [VSCode] Changed usage limit resets to show a clock time ("Resets at 3:10 PM") and to say "5-hour limit" Probably session-limit-reset-wording-changed-to-5-hour-limit, session-limit-renamed-to-5-hour-limit-in-ui-text
  • [Cloud sessions] Added an effort level to the model picker when you create or edit a routine that runs in the cloud Nothing to match on
  • [Cloud sessions] Added a Bash editor with colors, line numbers and a Copy button to the setup script box in cloud environment settings Nothing to match on
  • [Cloud sessions] Improved the step shown when Claude adds a repository to a cloud session: opening it now shows a short table of what happened instead of raw JSON Nothing to match on
  • [Cloud sessions] Fixed resending an unchanged message after a failed send in a cloud session sometimes running it twice Nothing to match on
  • [Cloud sessions] Fixed a failed cloud environment creation showing its error only as a toast outside the open dialog; it now appears inside the dialog Nothing to match on
  • [Cloud sessions] Fixed Edit in a routine's menu on the Routines page going to the routine's page without opening its edit dialog Nothing to match on
  • [Remote Control] Fixed an unarchived Remote Control session showing as working until a computer reconnected; it now shows as idle Nothing to match on
  • [Claude Tag] Improved Claude Tag's retry notice in Slack to name the model in use, or say rate limits were hit, instead of a generic API error Nothing to match on
  • [Claude Tag] Fixed a Claude Tag channel's on/off switch and agent settings falling back to workspace defaults when an older private Slack channel goes public and gets a new ID Nothing to match on
  • [Claude Tag] Fixed Claude in Slack not replying in channels whose environment has network access set to None Nothing to match on
  • [Claude Tag] Fixed Claude in Slack sometimes posting a file in the wrong thread when it was answering in another thread of the same channel Nothing to match on
  • [Code Review] Fixed Code Review reviewing an outdated commit, or none at all, when GitHub delivered a push event late; it now reviews the pull request's current commit Nothing to match on

A model matched these bullets to the GitHub issues they fix, so a link can be wrong.

System prompt

1 of 30 tool descriptions changed.

Claude Code, interactive mode

One prompt change in this release could not be quoted from the build, so no entry on this page describes it.

Documentation

What the docs did around this release

473 documentation changes were recorded within 24 hours either side of this release, nearest first. The closest 12 are below. They're here because they happened near this release in time. That's not a claim that this release caused the edit, or that the page documents anything in it.

Every time above is when this site's poller recorded the change, which is up to half an hour after the edit on an ordinary read and up to a day after it on a full sweep. Upstream's own edit time is used instead wherever a capture carries one. None of these do.

Switches

Every name in this release

The 25 literal strings found in the bundle, with the number of entries that name each one. Picking one searches for it. A name is here because this build's code mentions it, which is not the same as it working or being finished.

Slash commands

Settings and names in the code

Feedback