Token Saver for Bash Output #
What
Bash tool results can now send a compressed version of output to the model while the UI still displays the full uncompressed stdout, reducing token usage on large command outputs.
Details
- A new
tokenSaverOutput field is added to the Bash tool result schema - When token-saver is active, the model receives a compressed representation while users see full output
- Helps conserve context window on commands with verbose output
Evidence
New schema field with description "Compressed output sent to model when token-saver is active (UI still uses stdout)" (search for "tokenSaverOutput")
CA Certificate Configuration from Settings #
What
Claude Code now reads NODE_EXTRA_CA_CERTS from your config and user settings files, applying them automatically at startup — no need to set environment variables manually.
Details
- On startup, if
NODE_EXTRA_CA_CERTS is not already set in the environment, Claude Code checks globalConfig.env and userSettings.env for the path - Supports
--use-system-ca flag to load system CA certificates via the Node.js tls.getCACertificates API - Custom CA certificates are now also applied to WebSocket connections (both Bun and Node.js)
- Cache clearing added for CA certificates, mTLS configuration, and proxy agents
Evidence
CA certificate loader (search for "CA certs: Applied NODE_EXTRA_CA_CERTS from config to process.env")
What
A visual indicator in the input box border now shows the current reasoning effort level (low, medium, high, or max) using colored block characters.
Details
- Displays 1–3 filled
▪ blocks based on effort level (1 for low, 2 for medium, 3 for high/max) - Shows alongside model name and
/fast mode indicator when present - Controlled by existing effort level settings
Evidence
Effort-to-dots mapping function (search for "▪") and effort indicator builder $Qq/Cgz at line ~258963
What
The /color command now accepts default as a valid argument to reset session color.
Details
- Argument hint changed from
<color> to <color|default> - Resetting displays "Session color reset to default"
- Color values
"default", "reset", "none", "gray", and "grey" are treated as reset values
Evidence
Updated argument hint (search for "<color|default>") and reset color list (search for "Session color reset to default")
Bridge Pointer for Worktree-Aware Reconnection #
What
Remote session reconnection now supports git worktrees by writing and discovering bridge-pointer.json files across worktree directories.
Details
- A
bridge-pointer.json file stores sessionId, environmentId, and source for reconnection - When reconnecting, Claude Code searches across git worktrees to find an active session pointer
- Pointers older than 4 hours are automatically cleared
- Fanout search is capped to prevent performance issues with many worktrees
Evidence
Bridge pointer system (search for "bridge-pointer.json") and worktree fanout (search for "[bridge:pointer] fanout found pointer in worktree")
What
Session transcripts now have companion .meta.json files that store additional metadata about each session.
Details
- Metadata files are stored alongside session
.jsonl transcripts - Written and read via dedicated helpers
- Errors on inaccessible files are handled gracefully (ENOENT, EACCES, EPERM)
Evidence
Metadata file handler (search for ".meta.json")
CCR v2 Worker Registration #
What
A new CCR v2 worker registration flow enables Claude Code to register workers with session servers via a /worker/register endpoint.
Details
- Workers register and receive a
worker_epoch from the server - Epoch mismatch (409) handling is now callback-based instead of hard
process.exit(1) - Enables reconnection flows and transport handoff in CCR v2 sessions
- Worker registration is also available for standalone session creation (not just environment-based)
Evidence
Worker registration function (search for "/worker/register") and epoch handling (search for "epoch superseded")
"Kill" Terminology Changed to "Stop" #
Background agent management now uses softer language throughout the UI:
- "Press ctrl+f again to kill background agents" → "Press ctrl+f again to stop background agents"
- "Background agents were killed by the user" → "Background agents were stopped by the user"
- Agent status label changed from "Killed" to "Stopped"
- Command keywords:
kill agents → stop agents, kill all agents → stop all agents
Evidence
Terminology change (search for "stop agents") replacing old (search for "kill agents")
Improved Clipboard Error Messages on Windows/WSL #
Clipboard copy failure messages now suggest both PowerShell and clip as alternatives:
- Windows: "Make sure
powershell or clip is available on your system" - WSL: "Make sure
powershell.exe or clip.exe is available in your WSL environment"
Evidence
Updated error messages (search for "powershell.exe")
Task Tool: Simplified Background Agent Notifications #
The Task tool's run_in_background description was simplified from "The tool result will include an output_file path — use Read tool or Bash tail to check on output" to "You will be notified when it completes."
Evidence
Updated background description (search for "You will be notified when it completes")
Task Tool: Agent Resume Support Documented #
The Task tool's system prompt now documents that agents can be resumed using the resume parameter, that agent outputs should generally be trusted, and includes guidance on distinguishing research vs. code-writing tasks.
Evidence
New prompt text (search for "Agents can be resumed using the \resume\ parameter")
Better Voice Recording No-Audio Detection #
Voice recording now distinguishes between "no audio detected from microphone" (hardware/permission issue) and "no speech detected" (audio received but no speech recognized), providing more actionable error messages.
Evidence
Improved error message (search for "No audio detected from microphone")
MCP Instructions Now Delivered as Deltas #
MCP server instructions are now delivered incrementally as a new mcp_instructions_delta attachment type, sending only added/removed server instructions instead of the full set each turn. Falls back to the previous full-set approach when the tengu_basalt_3kr feature flag is disabled.
Evidence
Delta attachment handler (search for "mcp_instructions_delta")
MIME Type Database Removed (Bundle Size Reduction) #
The full IANA MIME type database (~4000+ entries) has been replaced with stubs that throw descriptive errors, significantly reducing bundle size. The stubs warn against relying on axios auto-multipart serialization.
Evidence
Stub implementation (search for "mime-types." and "is stubbed in this build")
mkdir Race Condition Fix #
Both async and sync mkdir with recursive: true now catch EEXIST errors, fixing race conditions where parallel operations could fail when two processes try to create the same directory simultaneously.
Evidence
EEXIST handling in mkdir (search for "EEXIST" in the filesystem module at line ~3495)
Remote Mode: Restricted defaultMode Settings #
When running in CLAUDE_CODE_REMOTE, only acceptEdits, plan, and default are allowed as defaultMode values. Other modes are silently ignored with a warning logged.
Evidence
Remote mode restriction (search for "is not supported in CLAUDE_CODE_REMOTE")
ToolSearch Disabled for Non-First-Party Hosts #
Optimistic ToolSearch is now properly disabled when ANTHROPIC_BASE_URL points to a non-first-party Anthropic host, preventing unnecessary tool search requests that would fail.
Evidence
Host check (search for "[ToolSearch:optimistic] disabled: ANTHROPIC_BASE_URL=")
Plugin Auto-Refresh After Background Install #
After marketplace plugins are installed in the background, Claude Code now auto-refreshes the plugin list immediately instead of just setting a needsRefresh flag, reducing the need for manual refresh.
Evidence
Auto-refresh logic (search for "Auto-refreshing plugins after")
Effort Level: New Environment Variables #
CLAUDE_CODE_ALWAYS_ENABLE_EFFORT: Force-enables the effort/reasoning level selector for all modelsCLAUDE_CODE_EFFORT_LEVEL: Override the effort level (set to "unset" to disable)- Third-party models no longer unconditionally get effort level support; it's now checked against first-party host detection
Evidence
New env vars (search for "CLAUDE_CODE_ALWAYS_ENABLE_EFFORT" and "CLAUDE_CODE_EFFORT_LEVEL")
Rendering: Frame Contamination Tracking #
Terminal rendering now tracks whether the previous frame was "contaminated" (had selection overlays or image clears), preventing unnecessary full-screen redraws and reducing flickering in alt-screen mode.
Evidence
New prevFrameContaminated property (search for "prevFrameContaminated")
Text Input: Improved Carriage Return Handling #
The text input editor now strips trailing \r from single-line inputs more precisely and handles multi-line paste with trailing carriage returns, which improves behavior when pasting from Windows clipboard sources.
Evidence
CR handling in input editor (structural change in function Uy1 at line ~452368)
Git Watcher Initialization Order Fix #
The git file watcher now sets this.initialized = true after (instead of before) calling gitDir(), preventing a race where the watcher could report as initialized before knowing the git directory.
Evidence
Initialization reorder in ZFA class (search for "this.initialized" near "this.gitDir")