Claude Code v2.1.317
Claude Code v2.1.317 was released on .
Summary
Claude Code 2.1.317 is out: new cost reports for gateway admins, safer Agent SDK hooks that can block on failure, and a long list of fixes. Curious what else changed?
Release Context
- This was the 257th Claude Code release of 2026 tracked by Havoptic.
- It shipped 3 days after Claude Code v2.1.316 (October 31, 2026).
Shipped around the same time
Within 3 days of this release, other AI coding tools also shipped:
- GitHub Copilot in VS Code v1.145 (November 4, 2026)
- Antigravity CLI v1.5.0 (November 4, 2026)
- Factory Droid v1.3.0 (November 4, 2026)
- Factory Droid v1.2.0 (November 3, 2026)
- Amp 2026.11.03 (November 3, 2026)
Compare Claude Code
- Claude Code vs OpenAI Codex CLI
- Claude Code vs Cursor
- Claude Code vs Gemini CLI
- Claude Code vs Kiro CLI
- Claude Code vs GitHub Copilot CLI
- Claude Code vs Devin Desktop
- Claude Code vs Antigravity CLI
- Claude Code vs Grok Build
- Claude Code vs Cline
- Claude Code vs OpenCode
- Claude Code vs Zed
- Claude Code vs Factory Droid
- Claude Code vs Devin
- Claude Code vs Lovable
- Claude Code vs Amp
- Claude Code vs GitHub Copilot in VS Code
- Claude Code vs Replit Agent
- Claude Code vs Bolt
- Claude Code vs v0
Release Notes
- Added a warning to /schedule when a new cloud scheduled task gets connectors you did not ask for, with how to remove them
- Added a check that asks before a web or shell tool call sends your account email address to the network
- Added onFailure: "block" for Agent SDK hook callbacks, so a callback that fails blocks the action instead of letting it run
- Added a notice in Claude Desktop's Code tab when your organization's remote managed settings haven't loaded for the session, and another once they do
- Added a notice when auto mode's check has no answer for a subagent's tool call, which used to leave nothing in the main view
- Added anthropic.plan, anthropic.seattype, anthropic.provider and anthropic.custombaseurl to OTel metrics, events and spans
- Added a cost report to the Claude apps gateway admin API, GET /v1/organizations/analytics/cost, for reading past spend over a date range in total, per developer, per day or per IdP group
- Added a daily record of each developer's IdP groups on Claude apps gateways with admin: set, kept for admin.identityretentiondays, which the cost report groups by
- Added CLAUDECODEDISABLENESTEDSESSIONID: set it to 1 on a self-hosted runner to have claude -p run inside a session use that session's ID and transcript, as in earlier versions
- Fixed project and local MCP servers disconnecting after the first turn in some Claude desktop sessions
- Fixed auto mode failing every turn when an LLM gateway set as the base URL answers 403 or 422 to its server-side safety check (a 403 with an apiKeyHelper is unchanged)
- Fixed claude auth status exiting before a slow token refresh was saved, which could sign you out on the next run
- Fixed a project's effortLevel setting being ignored by sessions that an app starts ahead of time and then opens in the project, such as new sessions in the desktop app's Code tab
- Fixed claude --from-pr reporting "No conversations found" in projects with many sessions when the linked session was older than the first page
- Fixed the second of two simultaneous permission prompts showing no file path or command on claude.ai and the mobile apps
- Fixed Remote Control and SDK hosts offering "don't ask again" on a mod's tool calls
- Fixed session titles being lost in cloud and SDK sessions when a new message or Stop arrived while the title was generating
- Fixed self-paced /loop wakeups sometimes not being scheduled when Claude left a field out of its request
- Fixed auto mode in cloud sessions stopping for approval when the Artifact tool uploaded, wrote to a database or saved a file through the outputs folder
- Fixed skills synced from claude.ai being lost or downloaded again every ten minutes when they can't be written to disk
- Fixed /schedule leaving a cloud scheduled task's next run time and link out of its results after creating or updating it
- Fixed screen readers speaking a running subagent's elapsed time and token count on every change in screen reader mode
- Fixed a region or network block (HTTP 403) being shown as a sign-in failure; the error now explains the block
- Fixed Claude saying a working claude.ai connector needed authorization or had failed in cloud sessions when a synced plugin included the same server
- Fixed claude -p exiting 0 when a full disk or quota lost its transcript or ~/.claude.json writes; it now prints an error and, in text and json output, exits 1. Full NFS exports may be missed
- Fixed edits to settings files made in the first second or so after launch not taking effect until a settings file changed again
- Fixed old transcripts not being cleaned up on machines where some runs skip cleanup, such as runs using --setting-sources
- Fixed deleted agent team inboxes being re-created by a teammate's late message
- Fixed a re-created agent teammate being removed from its team by an earlier shutdown approval
- Fixed stored scheduled tasks being impossible to list or delete after scheduled tasks were turned off
- Fixed Claude deleting your most recently updated /team-onboarding guide when asked to delete one without naming which
- Fixed Claude saying a /team-onboarding guide was deleted when the server refused the delete
- Fixed the Claude apps gateway hiding Amazon Bedrock's "Input is too long." error, which left sessions failing every turn with "upstream rejected the request" instead of compacting
- Fixed self-hosted runner sessions losing recent turns or the whole conversation when restarted while a plan waited for approval
- Fixed "Prompt is too long" after automatic compaction in sessions whose very large CLAUDE.md changed since it was last sent
- Fixed high memory use and slow startup in headless sessions with many plugins that register commands
- Fixed stdio MCP servers receiving an empty AWSBEARERTOKENBEDROCK when their env config sets it to empty; the variable is now unset, so the server can use the machine's own AWS credentials
- Fixed API requests failing with "unable to get local issuer certificate" behind some TLS-inspecting proxies after a root certificate renewal
- Fixed very long conversations losing their earlier summary when compaction had to shorten its own request
- Fixed a PDF's own metadata being able to make Read and @-mentions under-count its pages
- Fixed DISABLEPROMPTCACHINGOPUS and DISABLEPROMPTCACHINGSONNET having no effect on [1m], other-region and undated spellings of the default model
- Fixed Claude treating partial Grep and Glob results as complete when a search hit its time limit
- Fixed OpenTelemetry exports to an https:// endpoint through a proxy never being sent when they started while another export was still in progress
- Fixed a flood of connection attempts to a proxy that blocks (HTTP 403) OpenTelemetry exports to an http:// endpoint
- Fixed OpenTelemetry exports hanging indefinitely behind a proxy that never answers; they now time out after 10 seconds, or OTELEXPORTEROTLPTIMEOUT up to 30 seconds
- Fixed resumed sessions telling Claude again about a file change it already knew about
- Fixed Claude sometimes not using a built-in tool in a resumed session after an earlier call failed because the tool was switched off
- Fixed /remote-control answering "Unknown command" instead of saying that Remote Control is turned off by the disableRemoteControl setting
- Fixed agent team teammates in tmux or iTerm2 panes starting in auto mode when the lead session was in manual mode
- Fixed a background session sometimes losing a just-made change of permission mode when it was upgraded or retired
- Fixed Ctrl+C stopping all running background agents when pressed to clear typed text at the prompt
- Fixed /feedback showing "Enter to confirm" while a report is being sent
- Fixed child processes of a stopped shell command sometimes being sent SIGTERM twice, which could make some programs skip their cleanup
- Fixed claude -p run inside a cloud or self-hosted runner session sharing that session's ID: it wrote into the session's transcript, and a restart could resume the wrong conversation
- Fixed claude -p run inside a cloud or self-hosted runner session generating a title of its own and sending it to that session
- Improved the error shown on Microsoft Foundry when Azure credentials can't be loaded: it now says to check or refresh them, and reports as cloudcredentialerror
- Improved /design-sync to say up front when your design system has moved to Claude, and stop before building instead of failing at upload
- Improved the startup error when a required Claude apps gateway can't be reached: it points to the network instead of a sign-in, and says when the gateway's TLS certificate can't be verified
- Improved the "Resume this session with" hint shown at exit to repeat the flags you launched with (for example --chrome --debug) ahead of --resume
- Improved how self-hosted runners recover from server errors: after a 5xx other than 501 or 529, a runner's next poll now opens a new connection instead of reusing the one that failed
- Improved how self-hosted runner sessions recover from server errors: after a 5xx other than 501 or 529, a session now opens new connections instead of reusing the one that failed
- Improved how self-hosted runner sessions recover when connections stop answering: after a heartbeat gets no answer, a session now opens new connections instead of trying each idle one in turn
- Changed SendMessage so a message to a running background agent arrives earlier: its running command moves to the background, without being stopped
- Changed subagents and teammates on a different model from the main conversation to use that model's saved effort level or its default, instead of the session's effort level
- Changed exit to skip the "Background work is running" prompt for plugin monitors
- Removed the Read tool's "file unchanged since your last Read" stub: reading an unchanged file again returns its content
- Windows: Fixed every tool call being refused on some volumes where the native path lookup fails; the working-directory check now compares the folder's identity instead
- Windows: Fixed the session scratchpad and other temporary paths growing with your project's path length in sessions not started by Claude Desktop, which made repositories cloned into them hit the 260-character path limit
- Gateway: Fixed the status line and /usage showing a developer's own spend limit as 100% used after their group's pooled budget ran out
- Self-hosted runner: Fixed Claude not seeing the interrupted tool call when a session moves to a new runner and the turn is older than CLAUDECODERESUMEINTERRUPTEDTURNMAXAGEMS
- Self-hosted runner: Fixed an MCP server that was switched off coming back on after the session moved to a new machine, when the session service had refused to save the switch
- Remote Control: Improved fork names when the app doesn't set one: a long name keeps its "(fork)" ending, and in sessions started with claude remote-control a fork of "Name (fork)" is "Name (fork 2)"
- [VSCode] Fixed forked conversations dropping messages: only one of the tool calls Claude ran in parallel was kept, and the last messages a compaction kept were lost, which could leave Claude's answer without the question it answered
- [VSCode] Fixed a message being lost when Claude did not finish starting in time: the extension now starts Claude once more before showing the error
- [VSCode] Fixed the sign-in screen opening when a request is blocked for its region or network
- [VSCode] Fixed the Account panel showing the plan name with a lower-cased second word
- [VSCode] Fixed file links in a Claude tab opening on top of the chat instead of in another editor group
- [VSCode] Fixed ultrathink not raising effort for its turn or showing its rainbow when telemetry is off
- [Cloud sessions] Added a link card to cloud sessions, so you can open or decline a link an MCP server asks you to visit instead of the request going unseen
- [Cloud sessions] Changed the organization environment dialog in admin settings to the personal dialogs' short layout: each section opens from a row, and unsaved input asks before closing
- [Cloud sessions] Fixed adding a network secret for a host that already has one silently replacing it; the Add secret form now refuses and points you to the existing secret
- [Cloud sessions] Fixed new scheduled tasks ignoring your organization's default environment: the form now starts on the one an admin chose instead of the Anthropic-hosted default
- [Remote Control] Fixed the next message to an idle session going unanswered after you restart claude remote-control, when you sent it within a minute of your previous message
- [Claude Tag] Changed newly pasted artifact links in Slack to show a simpler card with an Open button that opens the artifact in Claude, instead of Slack's side panel
Other Recent Claude Code Releases
- v2.1.314 (October 30, 2026)
- v2.1.312 (October 27, 2026)
- v2.1.311 (October 26, 2026)
- v2.1.310 (October 23, 2026)
- v2.1.309 (October 22, 2026)
Upgrading from v2.1.317? See all 1 release since.
All Claude Code releases · All AI coding tool releases on Havoptic