Release notes
Claude Code v2.1.300
What's changed
- Added
virtualTextto a mod's prompt decorations: text drawn in the prompt box that never enters the draft or the submitted prompt - Added
cache_creation_5m_tokensandcache_creation_1h_tokensto the OpenTelemetryapi_requestevent, splitting cache writes by lifetime - Added
$.ui.view({ agentId })for mods: shows an agent's transcript in the main view when you ask, and$.ui.view({})goes back - Added a
dirprop on a mod'sTextfor right-to-left text: on Windows and in VS Code's terminal its rows read in that direction and sit flush right - Added
/advisoron Claude Platform on AWS; no advisor runs until you pick one with/advisor,advisorModelor--advisor, andCLAUDE_CODE_DISABLE_ADVISOR_TOOL=1turns it off - Added OpenTelemetry GenAI semantic-convention attributes to trace spans, such as
gen_ai.provider.name,gen_ai.conversation.id,gen_ai.tool.nameanderror.type - Added support for rewriting a workflow agent's
promptandmodelin theagent.spawnmod hook, which could only refuse workflow agents before - Added the
prompt.changemod hook, raised when the prompt box's text changes without a typed edit: a recalled history entry, a clear, an undo, or a plugin's fill - Fixed cloud sessions telling Claude that an organization policy blocked a host when the session's own network settings did
- Fixed
/autocompactwarning about high token usage when you choose a smaller auto-compact window - Fixed SessionEnd hooks sometimes not running when you exit while a background command is still running
- Fixed
claude --helpnaming a removed tool in its description of--restricted - Fixed
claude agentsnot refreshing any pull request's status when the data for one of them came back incomplete - Fixed Claude being told a background agent was lost, not resumable, after a cloud session's container was replaced, when the agent had already been resumed once
- Fixed subagents you had typed messages to disappearing from
/tasksshortly after finishing, leaving no way back to the conversation - Fixed a completed parent agent dropping off the breadcrumb (its child shown re-rooted at top level) while you were viewing the child
- Fixed the agents view taking a typed word such as "up", "down" or "escape" for that key when input arrived in a burst, which could move the peek mid-reply or clear a draft
- Fixed automatic tool search (
ENABLE_TOOL_SEARCH=auto) turning off part-way through a conversation, for example while MCP servers reconnect after a resume - Fixed a login refused by
forceLoginOrgUUIDleaving the refused organization's token stored, or live after/login - Fixed the diff view in Claude Desktop and Remote Control sessions not noticing a conflicted cherry-pick or revert in reftable repositories
- Fixed the Artifact tool's verbose and ctrl+o line reading
Artifact("(unprintable path)")while a call's input arrives; its row now shows "Waiting…" and "Running…" as Bash's does - Fixed the first transcript entry written after resuming a session being lost when a crash had cut the transcript's last line short
- Fixed
/branchdropping messages, andclaude purgeskipping subfolder projects, when they contain a Unicode line or paragraph separator (U+2028, U+2029) - Fixed plugin
WorktreeCreateandWorktreeRemovehooks not running when Claude Code starts with--worktree(not yet with--tmux) - Fixed OpenTelemetry
tool_resultevents missinggit_commit_idaftergit commit -qin repositories using reftable ref storage - Fixed a prompt that a mod's
prompt.submithook rewrote or dropped still being recorded as typed in the OpenTelemetryuser_promptevent and interaction span, and in session title requests - Fixed a note meant for Claude about mod hot-reloading appearing in the transcript as if you had typed it
- Fixed agent hooks ignoring their
model: aliases likehaikunow resolve, a subagent's model no longer overrides it, and an unavailable model falls back to the caller's instead of allowing the action - Fixed
--worktreesessions sometimes starting from the wrong commit when a tag or branch was named like a commit ID, and their starting git status naming a branch other than the new worktree's - Fixed the branch showing as ".invalid" and
--worktreefailing to reopen a worktree in repositories using git's reftable ref storage - Fixed Claude naming files in the session scratchpad by a bare filename or relative path instead of their full path
- Fixed
claude remote-controlservers giving up on renewing their connection after a brief sign-in error, such as a locked keychain; they now retry, and warn when you need to runclaude /login - Fixed
--worktreefailing in a worktree of a bare repository when origin's default branch can't be fetched; the fallback base is now the current checkout's HEAD, not the main repository's - Fixed starting Claude Code in a VS Code, Cursor or Devin Desktop integrated terminal launching the editor's command-line tool twice to check for the extension; it now launches it once
- Fixed a mod's
prompt.edithook not being raised for a newline entered with thechat:newlinekeybinding (Ctrl+J, or a rebound Enter) - Fixed a conversation failing on every turn with a 400 error when the API rejected an MCP tool's input schema; Claude Code now sends that tool without parameters for the rest of the conversation
- Fixed resuming a headless or Agent SDK session losing the recent messages a compaction had kept, when the compaction followed a reply cut at the output token limit (compactions from this version on)
- Fixed Claude not being told about an MCP server's tools and instructions until its next tool call, when the server finished connecting after a compaction
- Fixed Remote Control sessions being marked stopped while still running, on a computer serving several sessions at once
- Fixed resuming a headless or Agent SDK session losing its compaction summary or bringing back pre-compaction history, when the compaction followed a retried or unfinished reply in the same turn
- Fixed Claude polling a background command's output file or sleeping while it runs
- Fixed feature flags and staged rollouts staying stale behind a TLS-inspecting proxy whose certificate is trusted only through the OS certificate store
- Fixed
claude daemon stop --anyprinting "stopped" while a stuck background service kept running: it now waits, force-kills the service, and says so with exit 1 if it is still there - Fixed
claude daemon stopexiting with no output, and leaving sessions listed as running, when telemetry is turned off - Fixed Write, Edit and NotebookEdit in Cowork cloud sessions reporting success for a path on your own computer, where the file never arrived
- Fixed Claude searching for deferred tools already loaded earlier in the conversation when a session resumes a history that never listed them
- Fixed secondary (dim) text looking the same as normal text under the dark ANSI theme and on 16-color terminals
- Fixed cloud sessions hanging 5 minutes per turn when the organization's policy can't be read; the turn now ends promptly and says why
- Fixed a cloud session sometimes running an already answered message a second time after the session restarted during a long reply
- Self-hosted runner: Fixed the runner and orchestrator freezing (no polls,
/healthzorSIGTERMshutdown) while nobody reads their output; logs keep the latest 256 KiB and count drops (not on Windows) - Improved WebFetch in Cowork cloud sessions to tell Claude that a page failed moments ago instead of fetching it again
- Improved mod sharing in the built-in
plugin-authoringskill: Claude scans a mod's files for keys before opening them, and asks before scanning a folder outside the project - Improved the note Claude 3 models get about an @-mentioned PDF, so they less often answer without reading it
…