Hosts that give each session its own config directory can set CLAUDE_CODE_PROJECT_DIR_NAME to choose a short per-project transcript directory name. On the host that starts Claude Code, set CLAUDE_CODE_PROJECT_DIR_NAME=project-a so the project's transcript directory uses project-a.
FEATURE
Clear selections deliberately
Bind a key to selection:clear to clear an in-app text selection, including in agents view. In fullscreen, Esc keeps a mouse selection highlighted while still interrupting or dismissing.
FEATURE
GitLab merge-request status at a glance
Repositories with a GitLab remote and authenticated glab now show MR !N and draft, pending, or green status in the footer and statusline.
FEATURE
Resume when a usage limit resets
Claude Code can now continue your session when a claude.ai usage limit resets. Turn it off in /config under “Continue automatically at usage limit.”
FEATURE
Your account email stays for identification
Claude is instructed to use your account email only to identify you, and not send it to unrelated services unless you ask.
FEATURE
Block risky Windows namespace paths early
Remote reads, session restore, CLAUDE.md includes, workflow scripts, and uploads now reject Windows NT-namespace \??\ paths, hardening remaining pre-approval access against NTLM credential leaks.
BUGFIX
Permissions stay put in long sessions
After a long conversation is compacted, auto mode no longer repeatedly rechecks and denies sandboxed commands’ network access. Session-scoped allow and deny answers also persist for background subagent permission prompts.
FEATURE
API response failures no longer fail silently
A non-streaming fallback response with a missing thinking or text field no longer crashes Claude Code. Empty or malformed API errors now report content type, body kind, size, request ID, and why streaming failed.
FEATURE
Markdown renders cleanly and consistently
Unusual Unicode sequences no longer make markdown rendering extremely slow, and --- no longer runs into the next line. Your prompts now render markdown like replies, including code blocks, inline code, and lists.
BUGFIX
Agent messaging handles long session lists
SendMessage accepts recipients copied from ListAgents even at the 200-character session-name cap or with many emoji. Both commands now say when the session list was too long to check completely.
BUGFIX
Git remote detection finds the right host
Repository detection now reads unusual git-remote userinfo without choosing the wrong host, so links and repository-specific behavior use the right host.
BUGFIX
MCP diagnostics keep secrets out of view
MCP diagnostics no longer print resolved secrets: scope-conflict warnings show configured ${VAR}, and connection-failure details show only the server origin.
BUGFIX
Marketplace allowlists check the real Git host
strictKnownMarketplaces allowlists no longer accept an SCP-style Git marketplace source whose host differs from where Git will actually connect.
BUGFIX
Login links and reminders reach the right place
Fullscreen copying keeps all characters in modal text such as a /login OAuth URL. Expired profile credentials point to /login when a claude.ai login would take precedence, and stale CLAUDE_CODE_OAUTH_TOKEN reminders appear only to you, not Claude’s resumed turn.
BUGFIX
Mid-turn controls and queued shell commands behave
While Claude works, /permissions changes apply to the rest of the turn and /add-dir <path> works. Fullscreen TUI dialogs can open mid-turn; dialogs survive a running ! command, and edited queued ! commands stay shell commands.
BUGFIX
Queued input stays queued
Queued messages no longer reappear in prompt history while queued; Esc on a selected queued message does not interrupt the turn, and ! mode no longer sticks after a mid-turn submit.
BUGFIX
Fullscreen restarts keep restrictions honest
Restarting after “Try the new fullscreen renderer?” preserves permission mode, tool rules, model, and effort flags. /tui declines a switch when it cannot carry --allowed-tools or --disallowed-tools restrictions through restart.
BUGFIX
Permission prompts keep their scope and answer
Trust prompts now include the repository-wide scope warning when a repository appeared after its directory was first seen. Closing an IDE diff tab during a re-prompt no longer applies the previous input to the new prompt.
BUGFIX
Remote Control stays in sync and stops safely
Remote Control files from Desktop or VS Code now upload for phone and web. Signing this computer into another account or organization stops the session within seconds with a reason. Sessions hosted by Desktop or VS Code send permission-mode updates to phone and claude.ai/code, and model updates to claude.ai/code. Effort chosen on a phone or claude.ai/code applies to terminal and Desktop/VS Code-hosted sessions; the session also publishes its effort level to connected clients.
BUGFIX
Permission previews share less and show approvers enough
Permission previews relay only to trusted channel servers and honor permission-capability opt-out. Masking no longer hides commands, paths, or destinations from approvers, while large private keys remain redacted and provider API tokens remain redacted even when immediately followed by shell delimiters.
BUGFIX
Desktop cross-session messages arrive
Claude Desktop inter-session messages are no longer silently dropped when the recipient reads cross-session messaging as disabled, leaving the sender stuck “thinking.”
FEATURE
Auto session titles become useful labels
Auto-generated session titles now favor short, specific names such as “Login button bug” instead of restating the request as a sentence.
FEATURE
The built-in claude-api skill uses less context
Loading the built-in claude-api skill now costs about 25k tokens instead of about 200k+ by loading reference docs on demand.
BUGFIX
Goals clear failed turns and check on waiting work
/goal clears itself with notice after unrecoverable errors. When background tasks keep it waiting 30+ minutes, Claude checks in; set CLAUDE_CODE_GOAL_CHECKIN_MINUTES=0 to opt out.
BUGFIX
setup-token rejects stray arguments
claude setup-token now rejects unexpected extra arguments instead of silently ignoring them.
FEATURE
Tool activity has less visual noise
Auto mode no longer repeats “Allowed by auto mode classifier” below every Agent tool call, and the running tool header dims its elapsed-time counter beside bold counts.
FEATURE
Teams inherit the leader model
The /config “Default teammate model” setting is gone: agent-team teammates use the leader’s model unless spawn names one.
FEATURE
Background notifications use the usual tags
Between-turn background task notifications now reach the model inside <system-reminder> tags, matching mid-turn delivery.
FEATURE
Mantle skips an unnecessary startup probe
At startup, Mantle skips the admin-pin availability probe when a main-loop model is already selected.
FEATURE
Read-only settings no longer stall Windows startup
On Windows, startup no longer stalls on repeated rename retries when ~/.claude.json is read-only.
BUGFIX
Consecutive shell commands keep one accurate record
Consecutive shell commands no longer split into multiple “Ran 1 shell command” rows when todo or task updates occur between them.
Original changelog
Original changelogShort names for project transcripts
Added the optional `CLAUDE_CODE_PROJECT_DIR_NAME` environment variable: hosts that give each session its own config directory can choose a short name for the per-project transcript directory
Original changelogClear selections deliberately
Added the `selection:clear` keybinding action, so a key can be bound to clear an in-app text selection; also works in the agents view
Changed Esc in fullscreen mode to no longer clear a mouse text selection: it interrupts or dismisses as usual and the selection stays highlighted
Original changelogGitLab merge-request status at a glance
Added a GitLab merge request badge to the footer and statusline: repos with a GitLab remote and an authenticated glab CLI show MR !N with draft/pending/green states
Original changelogResume when a usage limit resets
Claude Code now continues your session automatically when a claude.ai usage limit resets; turn it off in `/config` ("Continue automatically at usage limit")
Original changelogYour account email stays for identification
Claude is now told to use your account email only to identify you, and not to send it to unrelated services unless you ask
Original changelogBlock risky Windows namespace paths early
Security: remote file reads, session restore, CLAUDE.md includes, workflow scripts and file uploads now reject Windows NT-namespace (`\??\`) paths, hardening the remaining pre-approval file accesses against the NTLM credential-leak vector
Original changelogPermissions stay put in long sessions
Fixed auto mode in very long sessions repeatedly re-checking and denying sandboxed commands' network access after the conversation had been compacted
Fixed session-scoped permission answers (including denies) being dropped when answering background subagent tool permission prompts
Original changelogAPI response failures no longer fail silently
Fixed a crash when an API response on the non-streaming fallback path (typically via third-party gateways) contained a thinking block missing its thinking field or a text block missing its text field
Improved the "API returned an empty or malformed response" error to say what came back (content type, body kind, size, request ID) and why the original streaming request failed
Original changelogMarkdown renders cleanly and consistently
Fixed markdown rendering becoming extremely slow for some messages containing unusual Unicode sequences
Fixed a `---` horizontal rule in rendered markdown running into the line after it
Improved the transcript: your own prompts now render markdown (highlighted code blocks, inline code, lists) the same way replies do
Original changelogAgent messaging handles long session lists
Fixed `SendMessage` rejecting a recipient copied from `ListAgents` when the session name is at the 200-character cap or emoji-heavy
`SendMessage` and `ListAgents` now say when your account's session list was too long to check completely, instead of treating unseen sessions as absent
Original changelogGit remote detection finds the right host
Fixed repository detection mis-reading the host of git remotes with unusual userinfo, producing links and repo-specific behavior for the wrong host
Original changelogMCP diagnostics keep secrets out of view
Fixed MCP diagnostics printing resolved secrets: scope-conflict warnings now show the configured `${VAR}` form, and connection-failure details show only the server origin
Original changelogMarketplace allowlists check the real Git host
Fixed `strictKnownMarketplaces` allowlists accepting SCP-style git marketplace sources whose host differs from the one git would actually connect to
Original changelogLogin links and reminders reach the right place
Fixed modal text such as the `/login` OAuth URL losing characters when copied in fullscreen
Fixed: after `/login` while `CLAUDE_CODE_OAUTH_TOKEN` is set, the stale-token reminder no longer leaks into Claude's automatically resumed turn — it now appears only to you
Expired Anthropic profile credential now points you at `/login` when a claude.ai login would take precedence
Original changelogMid-turn controls and queued shell commands behave
Fixed dialogs like `/permissions` opened while a `!` shell command was running being dismissed when the command finished
Fixed a queued `!` shell command being sent to the model as plain text after pressing up-arrow to edit the queued input
`/permissions` can now be opened while Claude is working — rule changes apply to the rest of the current turn
`/add-dir <path>` can now be used while Claude is working; `/add-dir`, `/autocompact`, `/theme`, `/help`, `/config` and `/advisor` dialogs open mid-turn in the fullscreen TUI
Original changelogQueued input stays queued
Fixed queued messages reappearing in the prompt history while still queued, Esc while selecting a queued message no longer interrupts the turn, and `!` mode no longer sticks after a mid-turn submit
Original changelogFullscreen restarts keep restrictions honest
Fixed accepting the "Try the new fullscreen renderer?" prompt restarting the session without its permission mode (e.g. `--dangerously-skip-permissions`), tool allow/deny rules, model or effort flags
Fixed `/tui` dropping launch `--allowed-tools`/`--disallowed-tools` rules when it restarts; it now declines to switch, with the reason, when the session has restrictions a restart can't carry over
Original changelogPermission prompts keep their scope and answer
Fixed trust prompts omitting the repository-wide scope warning when the directory was first seen before the repository existed there
Fixed a case where an IDE diff tab closing during a permission re-prompt could answer the new prompt with the previous input
Original changelogRemote Control stays in sync and stops safely
Fixed: files sent to the user during Remote Control sessions hosted by Claude Code Desktop or VS Code now upload, so they open on phone and web instead of showing an empty card
Remote Control: signing this computer in to a different claude.ai account or organization now stops the running session within seconds and says why, instead of a misleading HTTP 404 hours later
Remote Control sessions started from Claude Code Desktop or VS Code now keep phones and claude.ai/code updated on the session's permission mode (and claude.ai/code on the model) as they change
Remote Control: effort picks made on a phone or on claude.ai/code now apply to terminal- and Desktop/VS Code-hosted sessions, and the session publishes its effort level to connected clients
Original changelogPermission previews share less and show approvers enough
Fixed: permission previews now relay only to channel servers admitted by the inbound trust gate, and a server's explicit permission-capability opt-out is honored
Fixed: credential masking on relayed permission previews can no longer hide commands, paths, or destinations from the approver; oversized private-key blocks now redact under full-strength redaction
Fixed: provider API tokens that mask on permission previews now mask even when directly followed by shell delimiters
Original changelogDesktop cross-session messages arrive
Fixed Claude Desktop inter-session messages being silently dropped by the recipient session when cross-session messaging read as disabled, which left the sender's query "thinking" for many minutes
Original changelogAuto session titles become useful labels
Improved auto-generated session titles to read as short, specific names (e.g. "Login button bug") rather than sentences restating your request (e.g. "Fix the login button on mobile")
Original changelogThe built-in claude-api skill uses less context
Reduced the context cost of loading the built-in `claude-api` skill from ~200k+ tokens to ~25k by loading reference docs on demand
Original changelogGoals clear failed turns and check on waiting work
`/goal` now clears itself with a notice when a turn dies on an unrecoverable error (e.g. revoked auth, an exhausted credit balance, or a context overflow) instead of staying armed
`/goal`: when background tasks keep a goal waiting for 30+ minutes, Claude now checks in on them instead of waiting indefinitely (set `CLAUDE_CODE_GOAL_CHECKIN_MINUTES=0` to opt out)
Original changelogsetup-token rejects stray arguments
`claude setup-token` now rejects unexpected extra arguments instead of silently ignoring them
Original changelogTool activity has less visual noise
Removed the redundant "Allowed by auto mode classifier" line that auto mode showed under every Agent tool call
Dimmed the elapsed-time counter on the running tool header so it no longer competes with the bold counts
Original changelogTeams inherit the leader model
Removed the "Default teammate model" setting from `/config`; agent-team teammates now use the leader's model unless the spawn names one
Original changelogBackground notifications use the usual tags
Background task notifications delivered between turns are now sent to the model inside `<system-reminder>` tags, matching mid-turn delivery
Original changelogMantle skips an unnecessary startup probe
Mantle: skip the admin-pin availability probe at startup when a main-loop model is already picked
Original changelogRead-only settings no longer stall Windows startup
Windows: startup no longer stalls on repeated rename retries when `~/.claude.json` is read-only
Original changelogConsecutive shell commands keep one accurate record
Fixed consecutive shell commands splitting into multiple "Ran 1 shell command" rows when todo/task updates were interleaved between them