What's changed
- Added
CLAUDE_CODE_RETRY_WATCHDOG_MAX_USAGE_LIMIT_WAIT_MSso unattended retry mode (CLAUDE_CODE_RETRY_WATCHDOG) ends a request at a usage limit that resets too far away instead of waiting - Added OpenTelemetry tracing guidance to the
claude-apiskill, including setting up trace destinations with theantCLI - Added the
%motion to vim mode: jump to the matching bracket, alone or with d/c/y - Added
rowsto a mod'sInput: a text field of several lines in the terminal, where Enter submits and Shift+Enter or a backslash before Enter starts a new line - Added
classifier_verdictandpermission_modeto OpenTelemetrytool_decisionevents, so auto mode classifier decisions can be told apart from permission rules - Added
classifier_categoryto OpenTelemetrytool_decisionevents, naming the built-in rule a classifier block matched, whenOTEL_LOG_TOOL_DETAILS=1 - Fixed quitting removing a worktree made by a
WorktreeCreatehook without asking when it may hold unpushed commits - Fixed the
fable(andbest) model alias erroring on the Anthropic API when the newest Fable model is not available to your organization: Claude Code now retries once on the previous Fable model - Fixed a misleading "Please run /login" error when a full disk keeps the login from being refreshed; the error now names the disk and says to delete files
- Fixed Grep and Glob reporting no matches when the search program failed unexpectedly before returning any results; they now return an error saying the search failed
- Fixed workflow agents sometimes skipping their step, and the run still reporting success, after reading the harness note that their task text carries no user authority
- Fixed artifact updates being refused where a PreToolUse hook covers Edit or Write; Claude now edits the file and then republishes instead of changing it in the publish call
- Fixed skills and commands with very many or very long argument names stalling for seconds when invoked; only the first 64 names, each up to 64 characters, are now filled in
- Fixed skills, commands and hooks using very large amounts of memory when their arguments fill many placeholders
- Fixed stray characters such as
>0qcovering the folder trust prompt, and>4mbefore the shell prompt at exit, in terminals built on VTE older than 0.53 such as MATE Terminal on RHEL 8 - Fixed stray
GOKtext appearing in the prompt at startup in some versions of iTerm2 - Fixed switching to a model whose name contains
application-inference-profilerunning yourawsAuthRefreshcommand and delaying model-switch hooks when the provider is not Bedrock - Fixed sign-in refresh timeouts and unexpected sign-outs after a short command such as
claude auth statusorclaude plugin listexited in the middle of a token refresh - Fixed a tool call cut off by a message sent mid-turn during its permission check being reported to the model as rejected by the user
- Fixed a case where switching to a model with a smaller context window could spend usage credits on a summary by the previous model without asking first
- Fixed conversations being compacted over and over, on a model you didn't pick, behind an LLM gateway whose responses name a different model than the one requested
- Fixed vim mode sometimes staying in INSERT after Escape on a slow or busy machine
- Fixed Esc discarding a typed AskUserQuestion answer in vim mode: the free-text field now supports vim NORMAL mode, and Esc cancels only from NORMAL
- Fixed the Read tool reading binary files such as .xlsm, .parquet, .epub and .heic as text
- Fixed a Markdown table with only a header row drawing nothing when too wide for the terminal, including in plans on the plan approval card
- Fixed the /claude-api skill saying CMEK external-key endpoints aren't available on Claude Platform on AWS
- Fixed skills no longer being listed to the model after using
/rewind - Fixed the compaction row in a resumed session offering ctrl+o for history that is not loaded; it now says where the earlier messages are saved, and also shows in fullscreen
- Fixed the "new task? /clear to save tokens" hint coming back right after you interrupt a response
- Fixed the permission prompt for a plugin or skill hook's
askdecision not showing which plugin or skill the hook comes from - Fixed
/diffnot noticing a conflicted cherry-pick or revert in reftable repositories when one of its git checks timed out or failed - Fixed workflow scripts asking for permission or being refused when read, edited or re-run after a Bash
cdin the same session - Fixed dim text on the dark ANSI theme and 16-color terminals: faint inside filled boxes, not faint under selection and search highlights, and list descriptions dimmed like other secondary text
- Fixed a mod's
$.model.forkreturningnothing-to-forkwhen called before the first response of a new Claude Code process had finished, as inclaude -pruns and cloud sessions - Fullscreen mode: Fixed
/compactand auto-compact briefly freezing the UI while the visible transcript is rebuilt - Self-hosted runner: Fixed sessions started from Slack being unable to find or attach a repository when managed settings restrict MCP servers; use
deniedMcpServersto keep those tools off - Self-hosted runner: Fixed sessions being reported as having a deleted source branch, and not retried, when an unrelated setup or session failure quoted git's missing-ref wording
- Self-hosted runner: Fixed the log promising a retry of a failed or declined session release for a session that is ending; repeated failures now show a count
- Windows: Fixed stopped background PowerShell commands missing the closing
[killed]line in their output file - Improved switching to a model with a smaller context window: a conversation too long for the new model is now summarized by the previous model first