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 →
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
96 entries

Internal Changesopen

Continued from page 2

6 more of these are in What probably matters to you, on page 1.

7 entriesCloud Sessions · none marked notable
4 entriesAPI Requests · none marked notable
·Internal
Under the hood
Useful1 Signal1
API Requests unclear

Trailing whitespace padding no longer comes straight from random numbers#

A routine that adds a random-looking run of trailing spaces and tabs now builds it from a different source instead of plain random numbers

Unclear It is not clear whether the new source produces the same padding each time, so whether behaviour actually changes is unknown.

Details 0 0 Feedback
4 entriesAuto Mode · none marked notable
·Internal
Under the hood
Useful1 Signal2
Auto Mode unclear

Auto mode can leave out permission rules that only name a tool alias#

Auto mode can now drop whole-tool permission rules that name a tool alias from what it sends to its safety check

Unclear It is not clear when the condition that turns this filtering on is true.

Details 0 0 Feedback
4 entriesElsewhere · none marked notable
·Internal
Under the hood
Useful1 Signal2
Elsewhere unclear

The session start-up message can list one more capability#

The list of capabilities Claude Code sends connected programs at session start can now include one more entry when a check passes

Unclear Which capability is added to the list is not stated.

Details 0 0 Feedback
·Internal
Under the hood
Useful1 Signal0
Elsewhere unclear

Session lock check no longer starts a duplicate check in some cases#

When a session lock is already held or being checked and a certain condition is false, Claude Code now stops early instead of starting another check

Unclear It is not clear what this lock protects or which condition decides whether the check is skipped.

Details 0 0 Feedback
4 entriesPermissions · none marked notable
·Internal
Under the hood
Useful1 Signal2
Permissions unclear

Groundwork for quoting tool input safely without leaking secrets#

A helper that quotes a tool's input as JSON and refuses when it would expose a hidden secret is in the build, with nothing using it yet

Unclear Nothing is seen using this helper, so whether it affects anything a user sees is not known.

Details 0 0 Feedback
·Internal
Under the hood
Useful1 Signal1
Permissions unclear

The check that blocks tool calls now tracks the turn number#

The check that decides whether a tool call is denied or a run is stopped now records which turn it happened on

Unclear It is not clear which feature this check belongs to or what tracking the turn changes for users.

Details 0 0 Feedback
·Internal
Under the hood
Useful1 Signal1
Permissions unclear

Blocked-action prompts now follow a separate check for one kind of decision#

The check for showing a prompt when an action is blocked now handles one model's decisions by reason instead of by category

Unclear It is not clear which model's decisions take the new branch, so it is unclear which blocked actions now show a prompt.

Details 0 0 Feedback
3 entriesArtifacts · none marked notable
·Internal
Under the hood
Useful1 Signal0
Artifacts unclear

Access check for the Artifacts MCP tools moved to a shared check#

The check that decides whether the Artifacts MCP tools are available now runs through a shared check instead of its own

Unclear It is not clear whether this changes when the Artifacts MCP tools are available to you.

Details 0 0 Feedback
3 entriesBackground Shells · none marked notable
3 entriesHooks · none marked notable
3 entriesInternals · none marked notable
·Internal
Under the hood
Useful1 Signal1
Internals unclear

An internal check now always answers no#

A check inside Claude Code that already existed now always returns no, whatever it is asked

Unclear Which feature, if any, this always-no check controls is not known.

Details 0 0 Feedback
3 entriesPlugins · none marked notable
·Internal
Under the hood
Useful2 Signal3
Plugins unclear

Plugins from an official marketplace can be marked as vouched for#

When loading a plugin, Claude Code can now mark it as vouched for if it comes from an official marketplace and passes further checks

Unclear What the vouched mark changes for a plugin afterwards is not stated.

Details 0 0 Feedback
3 entriesSkills · none marked notable
·Internal
Under the hood
Useful2 Signal3
Skills

Claude Code can now say who a skill comes from#

Claude Code can label a skill as built in, from your organization, or shared with you, when a remote switch allows it

Details 0 0 Feedback
·Internal
Under the hood
Useful1 Signal0
Skills unclear

Built-in skills are now set up in fewer steps#

Claude Code merged several of the steps that set up its built-in skills into one, and the variables that turn some skills off are unchanged

Unclear It is not known which built-in skills, if any, were removed or merged.

Details 0 0 Feedback
3 entriesSystem Prompt · none marked notable
·Internal
Under the hood
Useful2 Signal2
System Prompt unclear

The date Claude is told can now be flagged as assumed to be UTC#

The current date Claude Code passes to Claude can now carry a mark saying it was worked out assuming the UTC time zone

Unclear What makes Claude Code assume UTC for the date is not stated.

Details 0 0 Feedback
3 entriesTerminal UI · none marked notable
2 entriesAuth · none marked notable
2 entriesMCP · none marked notable
·Internal
Under the hood
Useful2 Signal3
MCP unclear

Tool calls to some HTTP MCP servers now carry an extra mark#

Tool calls to some HTTP MCP servers now include an extra generated mark in their metadata, and one error message is worded differently

Unclear It is not stated what the mark contains or which server addresses get it.

Details 0 0 Feedback
2 entriesRemote Control · none marked notable
2 entriesSubagents · none marked notable
2 entriesTeleport · none marked notable
12 entries

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
−Removed
Under the hood
Useful1 Signal1
Internals unclear

A remotely controlled switch is now fixed to off in the code#

Claude Code no longer checks one remote switch, so whatever it controlled stays off whatever Anthropic's servers send

Unclear It is not clear which feature this switch controlled, or whether anything in Claude Code still uses the check.

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