Claude Code 2.1.265
50changes- Point --plugin-dir at a folder of plugins that hot-reloads as children are added or removed.
- Archive inactive VS Code sessions automatically after a configurable period.
- See slash-command matches as a list while typing, with plugin skills found by their bare name.
- Artifact reads of another author's page now treat it as untrusted content instead of following embedded instructions.
- Fix a plugin path bypassing the symlink containment check with a backslash.
New features
4Point --plugin-dir at a plugin folder
Added support for pointing --plugin-dir at a folder of plugins: each child folder with a manifest loads, and children added or removed while running are picked up
▤ In the docs[VSCode] Auto-archive inactive sessions
Added automatic archiving of sessions inactive for a set period (new "Archive inactive sessions" setting, default 14 days)
Cap saved tool results at 1 GB
Added a 1 GB cap on tool results saved to disk; the in-conversation preview says when a saved file was truncated
Improvements
12List slash-command matches while typing
Improved slash commands typed mid-prompt: matches now show in a list (Tab opens it outside fullscreen) instead of a single suggestion, and a plugin skill is now found by its bare name
▤ In the docsSpeed up resuming file-heavy sessions
Improved the time to resume long sessions that read many files
Treat other authors' artifacts as untrusted
Improved the Artifact tool's read of an artifact someone else wrote: the summary now treats the page as untrusted content and flags embedded instructions rather than relaying them
▤ In the docsMore changes (9) Fewer changes
Faster --worktree startup on large repos
Improved --worktree startup on large repositories: the new worktree is now checked out in parallel (git 2.32+)
Show tool call status in /workflows detail
Improved /workflows agent detail: tool calls are marked running, failed or done, the subagent's task list is shown when it has one, and Enter unfolds the listed calls with their inputs and results
▤ In the docsDefer OAuth registration until MCP sign-in
Improved remote MCP servers that need sign-in: Claude Code no longer registers an OAuth client with them until you actually authenticate
Explain undecodable oversized image errors
Improved the error shown when an image over the size limits cannot be decoded: it now names the cause and how to fix it instead of only citing the limit
Clarify the .claude folder permission wording
Updated the .claude folder permission option to say what it actually allows: editing files in the project's .claude folder (or ~/.claude) for the session
Enforce gateway login for forceLoginGatewayUrl machines
Changed machines with forceLoginGatewayUrl in managed settings to be Claude apps gateway sessions from startup, like forceLoginMethod: "gateway"; a leftover claude.ai login or API key is not used
▤ In the docsUse runtime image support, not native modules
Changed image processing to use the runtime's built-in image support; the CLI no longer extracts a native image module to the temp directory
Prefer marketplace metadata for plugin display
Changed plugin display metadata to prefer the marketplace entry over plugin.json on the Installed tab and claude plugin details, filling gaps from plugin.json
Export OpenTelemetry directly to named collectors
Changed Claude apps gateway sessions to export OpenTelemetry directly to a collector the gateway's managed settings name in OTEL_EXPORTER_OTLP_ENDPOINT, instead of through the gateway's relay; sessions without a named collector still use the relay
▤ In the docsBug fixes
34Persist cd across turns in headless sessions
Fixed non-interactive sessions (-p with stream-json input, Agent SDK, cloud sessions) resetting the shell working directory at each new user message; a cd now persists across turns
[VSCode] Restore sidebar chat after reload
Fixed the sidebar chat coming back blank after Reload Window or a restart when the conversation had been open for more than 10 minutes
Fix backslash plugin path symlink bypass
Fixed a plugin path containing a backslash bypassing the symlink containment check on macOS and Linux
Stop git probes running clean filters
Fixed Claude Code's own git status and diff probes running clean filters configured by a nested repository inside the working tree
Fix /add-dir agent policy enforcement
Fixed /add-dir <subdirectory> refusing to load a subdirectory's agents when managed settings lock only skills to plugins, and promising agents when only agents are locked
More changes (29) Fewer changes
Preserve prompt cache for resumed subagents
Fixed resuming a foreground-spawned subagent changing its tool list and system prompt prefix, which broke prompt-cache reuse for that agent
Keep hook context in the prompt prefix
Fixed agent teammates and resumed subagents moving SubagentStart hook context and preloaded skills out of the prompt prefix on later turns, which broke prompt-cache reuse
Preserve interrupted tool calls on resume
Fixed resume after the previous process died while a tool was running: the last prompt is no longer rewritten, and the interrupted tool call is kept and marked interrupted
Fix /model opusplan[1m] rejection
Fixed /model opusplan[1m] being rejected with "Model not found"
Fix missing characters after sigils
Fixed syntax-highlighted code in permission prompts and messages sometimes omitting a character after a Ruby ?, Erlang $, or Perl $ sigil
Stop transcript jumping in fullscreen
Fixed the fullscreen transcript jumping by one row whenever the slash-command or @-file suggestion list opened or closed
Allow plugin folders starting with two dots
Fixed plugin directories whose names begin with two dots being wrongly refused as outside the plugin root
Avoid re-login on token refresh close
Fixed VS Code and SDK sessions occasionally requiring re-login when a session was closed while refreshing its token
Fix early end-of-turn signal timing
Fixed Remote Control sessions sending the end-of-turn signal before the reply's last message, which could show a reply as finished in the Claude app before its last part arrived
Stop background sessions retiring mid-turn
Fixed background (--bg) sessions occasionally being retired mid-turn when a message arrived just before the idle timeout
Decide advisor availability once per session
Fixed the advisor tool and its instructions being re-decided per request from the request's model; the decision is now made once and announced in the conversation when it changes
Validate connector tools before artifact publish
Fixed artifact publish accepting connector tool names the connector doesn't expose; the publish is now refused when none of the declared tools exist, and warned when only some don't
Extend two-key shortcut timeout to 3s
Fixed two-key keyboard shortcuts cancelling silently when the second key arrived more than a second later, as happens inside tmux; they now wait 3 seconds and show a notice when they time out
Stream forked skill prompts and text turns
Fixed forked skills (context: fork) not streaming their kickoff prompt and, with --forward-subagent-text, their text turns as progress events in stream-json
Report unreadable plugin component folders
Fixed a plugin's default component folder that the OS cannot check, such as a symlink loop, being silently skipped; it is now reported in /plugin with the error code
Stop OTLP relay pausing after bad payloads
Fixed the Claude apps gateway's OTLP telemetry relay pausing all forwarding to a collector for 30 seconds after it rejected a few payloads as malformed or too large
Show metadata from plugin.json in listings
Fixed /plugin Discover/Browse and claude plugin list --json --available showing no description or display name for marketplace plugins whose metadata lives only in their plugin.json
Fix /login gateway URL false error
Fixed /login showing "no gateway URL is configured" when re-run in a session that signed in to a Claude apps gateway set by managed settings
Report failed /model default saves
Fixed /model claiming a model was "saved as your default" when the settings file couldn't be written; it now says the save failed and why
Speed up /clear from Remote Control
Fixed /clear from Remote Control waiting on SessionStart hooks and on open terminal dialogs before completing
Keep /config dialog height stable
Fixed the /config dialog changing height when switching between its tabs
Fail clearly on missing workflow journals
Fixed resuming a workflow run after its container restarted; a resume whose run journal is missing now fails with a clear error instead of rerunning every agent
Correct claude-api skill error codes
Fixed the claude-api skill's error-code reference: model access failures return 404 and unavailable beta headers return 400, not 403
Connect legacy SSE-only MCP servers
Fixed MCP servers configured as http that only speak the legacy HTTP+SSE transport never connecting; Claude Code now falls back to SSE as the MCP spec describes
Fix false auth-needed connector status
Fixed some claude.ai connectors in cloud sessions showing as needing authentication even though they are connected in claude.ai (servers that answer an unsupported request with HTTP 401)
Release idle containers waiting on approval
Fixed remote sessions keeping their sandbox container alive while a connector approval or sign-in link waits for you
Shorten unfinished background task notices
Fixed resumed sessions showing long model-facing recovery instructions in "background task didn't finish" notices instead of a short status line
Fix Windows sandbox file access refusals
Windows: Fixed Read, Write and Edit refusing every file ("symlink resolution changed after permission was checked") when running inside an AppContainer or restricted-token sandbox
[VSCode] Align the Remote Control timeline dot
Fixed the timeline dot sitting below the text on the "Remote Control is active" message