Source Intelligence

DisclaimerUnofficial, and not affiliated with Anthropic. Nearly all of this is read straight out of what ships: npm bundles, captured prompts, published docs. Anthropic's own notes go in verbatim, marked as theirs. The rest is my reading, and every entry carries the strings behind it. If one looks wrong, vote it down and say why.

All releases Home olderv2.1.71 v2.1.73newer

Claude Code v2.1.72

22 entries read diff v2.1.71 → v2.1.72 Markdown

This is a substantial release that introduces the SendUserMessage tool for structured agent-to-user communication, an ExitWorktree tool for mid-session worktree management, and a new Brief mode compact chat view. The remote control system receives a major overhaul with unified --spawn flags, auto mode gets an opt-in dialog and a settings-level disable option, and the bash security analyzer is rewritten to use tree-sitter AST analysis for more accurate shell command validation. GCP/Vertex users gain automatic credential refresh, and effort level now supports a session-scoped "max" setting.

Find
Pick an entry · j / k steps through
20 entries

Changesopen

SendUserMessage Tool#

What

A new tool that lets Claude post structured checkpoint messages to the user, designed for async workflows where the user may only be reading a compact view of the conversation.

Usage: Claude calls SendUserMessage with a message, optional file attachments, and a status (proactive for push notifications, normal for replies).

Details
  • Messages are concise, outcome-focused checkpoints — like commit messages, not recaps
  • Supports markdown formatting and file attachments (screenshots, diffs, logs)
  • proactive status is for reaching the user's phone when they're away (task done, blockers, questions)
  • normal status is for replies to active conversations
  • Tied to a new defaultView setting: "chat" shows only SendUserMessage checkpoints, "transcript" shows the full output
Evidence

New tool constant and prompt definition (search for "SendUserMessage")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

ExitWorktree Tool#

What

A new tool that allows exiting a worktree session mid-conversation without ending the session, returning to the original working directory.

Details
  • Accepts action: "keep" to preserve the worktree and branch on disk, or action: "remove" to delete both
  • When removing a worktree with uncommitted changes, requires explicit discard_changes: true confirmation
  • Checks for uncommitted files and unmerged commits before removal
  • Only operates on worktrees created by EnterWorktree in the current session
  • The EnterWorktree tool message now references ExitWorktree: "Use ExitWorktree to leave mid-session, or exit the session to be prompted"
Evidence

New tool definition (search for "ExitWorktree")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Brief Mode (Compact Chat View)#

What

A new compact view mode that shows only checkpoint messages (from SendUserMessage) instead of the full tool-call transcript, with dedicated visual styling.

Details
  • Controlled by the CLAUDE_CODE_BRIEF environment variable or the tengu_kairos_brief feature flag
  • Adds a Brief tool and BRIEF_TOOL_NAME / LEGACY_BRIEF_TOOL_NAME constants
  • User messages display with a "You" label in blue; Claude's responses use a distinct orange label
  • When brief-only mode is active, the token usage bar is hidden and the spinner uses a simplified dots animation
  • Toggle via a new "Toggle brief-only mode" action
Evidence

Brief mode infrastructure (search for "CLAUDE_CODE_BRIEF", "tengu_kairos_brief", "isBriefOnly")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Auto Mode Opt-In Dialog#

What

When launching Claude with --mode auto, users who haven't previously opted in now see a consent dialog explaining what auto mode does.

Details
  • Dialog text: "Auto mode lets Claude run commands without prompting — each action is first checked for safety. Claude can still make mistakes; use in isolated environments."
  • Declining the dialog exits the application
  • Once accepted, the opt-in is remembered
  • New "Yes, and use auto mode" and "Yes, clear context" options in the context-clearing prompt
Evidence

New dialog component (search for "AutoModeOptInDialog")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Remote Control Spawn Mode Overhaul#

What

The remote control --spawn-worktree-sessions and --spawn-same-dir-sessions flags are replaced with a unified --spawn <mode> flag and a new --capacity flag.

Usage
claude remote-control --spawn=worktree --capacity=4
claude remote-control --spawn=same-dir
claude remote-control --spawn=session
Details
  • --spawn accepts same-dir (default), worktree, or session
  • --capacity sets the max concurrent sessions (not valid with --spawn=session, which has fixed capacity 1)
  • New --create-session-in-dir / --no-create-session-in-dir flag controls whether a session is pre-created in the current directory
  • Interactive spawn mode picker (w to toggle spawn mode) when starting remote control
  • Spawn mode preference is saved per-project
  • Falls back to same-dir if saved mode is worktree but the directory isn't a git repo
  • Error message updated: "Error: Multi-session Remote Control is not enabled for your account yet."
Evidence

New spawn mode infrastructure (search for "spawn mode", "--spawn", "--capacity")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

GCP Auth Refresh#

What

A new gcpAuthRefresh setting that automatically refreshes GCP/Vertex AI credentials when they expire, similar to the existing awsAuthRefresh for AWS.

Usage: Add to settings or ~/.claude.json:

{
  "gcpAuthRefresh": "gcloud auth application-default login"
}
Details
  • Automatically detects expired GCP credentials ("Could not load the default credentials", "Could not refresh access token", invalid_grant)
  • Runs the configured refresh command before making API calls
  • Times out after 3 minutes with a warning
  • Validates credentials before running refresh (skips if still valid)
  • Works with Vertex AI authentication (checks CLAUDE_CODE_USE_VERTEX)
  • Respects the new CLAUDE_CODE_SKIP_VERTEX_AUTH environment variable
Evidence

New settings schema field and credential checker (search for "gcpAuthRefresh", "Could not load the default credentials")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Disable Auto Mode via Settings#

What

A new disableAutoMode setting that allows organizations or users to disable auto mode entirely.

Usage: Add to settings:

{
  "permissions": {
    "disableAutoMode": "disable"
  }
}
Details
  • When set, shows "auto mode disabled by settings" or "auto mode disabled: disableAutoMode in settings"
  • Also respects model-level and org-level restrictions: "auto mode disabled: model does not support auto mode", "auto mode disabled: org not in DAC allowlist"
  • New DAC (Documented Allowlisting Check) org allowlist system controls auto mode availability per organization
  • Auto mode state is tracked with new attachment types (auto_mode and auto_mode_exit) for proper context management
Evidence

New settings field and gate messages (search for "disableAutoMode", "auto mode disabled")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Tree-Sitter Bash Security Analyzer Rewrite#

The shell command security analyzer has been significantly rewritten to use tree-sitter AST analysis instead of relying solely on string-based heuristics. When tree-sitter is available, it provides authoritative quote context analysis, compound structure detection, and dangerous pattern identification.

New security checks include:

  • Arithmetic expansion with variable references
  • Heredocs with unquoted delimiters (shell expansion risk)
  • Brace expansion syntax detection
  • IFS assignment (word-splitting changes)
  • Tilde expansion in assignment values
  • Unicode whitespace and control character detection
  • Zsh ~[ dynamic directory syntax
  • Shell keyword misuse detection

When tree-sitter is unavailable, falls back to the legacy shell-quote parser with a log message: "tree-sitter unavailable, using legacy shell-quote path".

Evidence

New analyzer functions (search for "Tree-sitter quote context is authoritative", "Brace expansion", "IFS assignment")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Effort Level "max" and Persistence#

The effort level system now supports a "max" level (restricted to Opus 4.6 models) and persists the effort setting across sessions.

Details
  • New effortLevel setting in user config: accepts "low", "medium", or "high" (persisted)
  • "max" is session-scoped and not persisted to disk
  • If "max" is requested on a non-Opus 4.6 model, it silently falls back to "high"
  • The status line now shows effort level with visual indicators: ○ low, ◐ medium, ● high, ◉ max
  • Effort level display text appears in the status bar with a 20-second timeout
Evidence

New effort schema and display functions (search for "Persisted effort level", "opus-4-6")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Related

Other releases about the same thing. Found by shared names or similar wording; neither means one caused the other.

Remote Session Timeout Increase#

Remote sessions now have a 60-minute timeout, doubled from the previous 30-minute limit.

Evidence

Timeout string change (search for "remote session exceeded 60 minutes")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Copy on Select#

A new copyOnSelect user preference has been added to the persistent settings, allowing automatic clipboard copy when text is selected in the terminal.

Evidence

New preference key (search for "copyOnSelect")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Related

Other releases about the same thing. Found by shared names or similar wording; neither means one caused the other.

Plan Command Enhancement#

The /plan command now accepts a description argument to immediately start planning with context, instead of only supporting open.

Usage
/plan add authentication to the API
Evidence

Argument hint change from "[open]" to "[open|<description>]"

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Hooks Format Updated#

The hooks configuration tip has been updated to reflect the new matcher format. Matchers are now strings (tool names, pipe-separated lists, or empty to match all) instead of objects.

Before: {"matcher": {"tools": ["BashTool"]}, "hooks": [...]} After: {"matcher": "Edit|Write", "hooks": [...]}

Evidence

Updated tip text (search for "matcher + hooks array")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Settings Keybinding Changes#

The settings panel keybindings have been updated:

  • enter now triggers settings:close (was select:accept)
  • space remains select:accept
  • New scroll:pageDown and scroll:pageUp keybindings added
Evidence

Keybinding map changes (search for "settings:close", "scroll:pageDown")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Plugin Source Resolution Improvements#

  • Git repository URLs no longer require a .git suffix
  • Plugin source path resolution messages now explain that paths are relative to the marketplace root (the directory containing .claude-plugin/)
  • Marketplace-only fields in plugin.json now produce informational warnings instead of errors
  • "View on GitHub" link renamed to "View repository" (works with non-GitHub repos)
  • Plugin already-installed message clarified to "already installed globally"
Evidence

Schema and message changes (search for "marketplace root", "marketplace-only fields")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Clipboard Support in tmux over SSH#

Clipboard operations now properly support tmux sessions over SSH by writing OSC 52 escape sequences directly to SSH_TTY when available, with a fallback to tmux load-buffer.

Evidence

New clipboard function (search for "tmux load-buffer" in added function FD7)

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Feedback Flow Update#

When users give a thumbs-down rating, the follow-up prompt now directs them to /issue for reporting model behavior issues, rather than general feedback.

Evidence

Feedback text change (search for "Use /issue to report model behavior issues")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

API Error Message Extraction#

Better extraction of error messages from nested API error responses. When the top-level message field is missing, the system now digs into nested error.error.message and error.message fields before falling back to a generic status message.

Evidence

New error extraction functions (search for "API error (status")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Deferred Tools Announcement Simplification#

The deferred tools announcement text has been simplified from lengthy explanations to concise notices: "Deferred tools appear by name in <system-reminder> messages" or "Deferred tools appear by name in <available-deferred-tools> messages."

Evidence

Updated deferred tools text (search for "Deferred tools appear by name")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

SDK Enhancements#

  • New agentProgressSummaries SDK init option for enabling progress summary reporting from agents
  • New applied field in settings response showing runtime-resolved model and effort values (as opposed to effective which only shows disk-merged values)
  • Task progress summaries now include a summary field in the SDK schema
  • supportsAutoMode field added to model information schema
Evidence

SDK schema additions (search for "agentProgressSummaries", "Runtime-resolved values")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

3 entries

Bug Fixesopen

#

  • Removed python --version and python3 --version from the auto-allowed command list, ensuring these commands go through normal permission checks (search for "docker ps" in the reduced allowlist)
  • Fixed voice mode availability check to use a simple boolean state instead of calling an external function, preventing potential errors (search for "voiceEnabled")
  • Fixed carriage return handling in text input to not treat \r preceded by a backslash as a submit trigger (search for "replace(/(?<=[^\\\r\n])\r$/")
  • Improved mouse input handling to filter out raw mouse escape sequences that lack a key name, preventing spurious input events (search for "^\[<\d+;\d+;\d+[Mm]")
  • Fixed tmux clipboard detection — mouse reporting is now disabled in tmux sessions to prevent conflicts (search for "process.env.TMUX" in function o_8)
  • Auto mode classifier now checks requiresUserInteraction on tools before sending to classifier, preventing interactive tools from being auto-approved (search for "requiresUserInteraction")
  • TaskOutput tool's block parameter now accepts string booleans ("true"/"false") in addition to actual booleans, improving compatibility (search for "preprocess" near "block")

Background Workflows [In Development]#

What

Infrastructure for a new "local_workflow" task type that tracks background workflow execution with dedicated status line display.

Status

Infrastructure added but the trigger mechanism is not yet exposed.

Details
  • New task type local_workflow alongside existing local_agent and remote_agent
  • Status line shows "1 background workflow" or "N background workflows" count
  • The spinner component displays " · N in background" when workflows are running
Evidence

Task label generation (search for "background workflow")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Nova 3 Voice Gate [In Development]#

What

A feature flag tengu_cobalt_frost gates a "Nova 3" voice stream capability.

Status

Feature-flagged, not yet broadly enabled.

Details
  • Log message: "Nova 3 gate enabled (tengu_cobalt_frost)"
  • Likely an upgrade to the voice transcription model
Evidence

Feature flag (search for "tengu_cobalt_frost")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

1 entry

Notesopen

#

Migration: Remote Control flags — If you use --spawn-worktree-sessions or --spawn-same-dir-sessions, these have been replaced by --spawn=worktree and --spawn=same-dir respectively. The old flags will produce an error directing you to the new syntax.

Migration: Hooks format — The hooks matcher format has changed from an object {"tools": ["BashTool"]} to a string "Bash" or pipe-separated list "Edit|Write". Existing configurations should still work but the error tip now reflects the new format.

Bundle size reduction — The RxJS library (Observable, Subscriber, Subscription, and many related classes) has been removed from the bundle, reducing the overall package size. The tree-sitter WASM files and several other large dependencies (lodash templating, spawn-rx internals) have also been cleaned up.

Verbatim
Official · Anthropic

Anthropic’s official release notes

Published verbatim by Anthropic for v2.1.72. Text is unmodified from the upstream changelog. Everything else on this page came out of the bundle instead, which is why the two lists don't match.

  • Fixed tool search to activate even with ANTHROPIC_BASE_URL as long as ENABLE_TOOL_SEARCH is set.
  • Added w key in /copy to write the focused selection directly to a file, bypassing the clipboard (useful over SSH)
  • Added optional description argument to /plan (e.g., /plan fix the auth bug) that enters plan mode and immediately starts
  • Added ExitWorktree tool to leave an EnterWorktree session
  • Added CLAUDE_CODE_DISABLE_CRON environment variable to immediately stop scheduled cron jobs mid-session
  • Added lsof, pgrep, tput, ss, fd, and fdfind to the bash auto-approval allowlist, reducing permission prompts for common read-only operations
  • Restored the model parameter on the Agent tool for per-invocation model overrides
  • Simplified effort levels to low/medium/high (removed max) with new symbols (○ ◐ ●) and a brief notification instead of a persistent icon. Use /effort auto to reset to default
  • Improved /config — Escape now cancels changes, Enter saves and closes, Space toggles settings
  • Improved up-arrow history to show current session's messages first when running multiple concurrent sessions
  • Improved voice input transcription accuracy for repo names and common dev terms (regex, OAuth, JSON)
  • Improved bash command parsing by switching to a native module — faster initialization and no memory leak
  • Reduced bundle size by ~510 KB
  • Changed CLAUDE.md HTML comments (<!-- ... -->) to be hidden from Claude when auto-injected. Comments remain visible when read with the Read tool
  • Fixed slow exits when background tasks or hooks were slow to respond
  • Fixed agent task progress stuck on "Initializing…"
  • Fixed skill hooks firing twice per event when a hooks-enabled skill is invoked by the model
  • Fixed several voice mode issues: occasional input lag, false "No speech detected" errors after releasing push-to-talk, and stale transcripts re-filling the prompt after submission
  • Fixed --continue not resuming from the most recent point after --compact
  • Fixed bash security parsing edge cases
  • Added support for marketplace git URLs without .git suffix (Azure DevOps, AWS CodeCommit)
  • Improved marketplace clone failure messages to show diagnostic info even when git produces no stderr
  • Fixed several plugin issues: installation failing on Windows with EEXIST error in OneDrive folders, marketplace blocking user-scope installs when a project-scope install exists, CLAUDE_CODE_PLUGIN_CACHE_DIR creating literal ~ directories, and plugin.json with marketplace-only fields failing to load
  • Fixed feedback survey appearing too frequently in long sessions
  • Fixed --effort CLI flag being reset by unrelated settings writes on startup
  • Fixed backgrounded Ctrl+B queries losing their transcript or corrupting the new conversation after /clear
  • Fixed /clear killing background agent/bash tasks — only foreground tasks are now cleared
  • Fixed worktree isolation issues: Task tool resume not restoring cwd, and background task notifications missing worktreePath and worktreeBranch
  • Fixed /model not displaying results when run while Claude is working
  • Fixed digit keys selecting menu options instead of typing in plan mode permission prompt's text input
  • Fixed sandbox permission issues: certain file write operations incorrectly allowed without prompting, and output redirections to allowlisted directories (like /tmp/claude/) prompting unnecessarily
  • Improved CPU utilization in long sessions
  • Fixed prompt cache invalidation in SDK query() calls, reducing input token costs up to 12x
  • Fixed Escape key becoming unresponsive after cancelling a query
  • Fixed double Ctrl+C not exiting when background agents or tasks are running
  • Fixed team agents to inherit the leader's model
  • Fixed "Always Allow" saving permission rules that never match again
  • Fixed several hooks issues: transcript_path pointing to the wrong directory for resumed/forked sessions, agent prompt being silently deleted from settings.json on every settings write, PostToolUse block reason displaying twice, async hooks not receiving stdin with bash read -r, and validation error message showing an example that fails validation
  • Fixed session crashes in Desktop/SDK when Read returned files containing U+2028/U+2029 characters
  • Fixed terminal title being cleared on exit even when CLAUDE_CODE_DISABLE_TERMINAL_TITLE was set
  • Fixed several permission rule matching issues: wildcard rules not matching commands with heredocs, embedded newlines, or no arguments; sandbox.excludedCommands failing with env var prefixes; "always allow" suggesting overly broad prefixes for nested CLI tools; and deny rules not applying to all command forms
  • Fixed oversized and truncated images from Bash data-URL output
  • Fixed a crash when resuming sessions that contained Bedrock API errors
  • Fixed intermittent "expected boolean, received string" validation errors on Edit, Bash, and Grep tool inputs
  • Fixed multi-line session titles when forking from a conversation whose first message contained newlines
  • Fixed queued messages not showing attached images, and images being lost when pressing ↑ to edit a queued message
  • Fixed parallel tool calls where a failed Read/WebFetch/Glob would cancel its siblings — only Bash errors now cascade
  • VSCode: Fixed scroll speed in integrated terminals not matching native terminals
  • VSCode: Fixed Shift+Enter submitting input instead of inserting a newline for users with older keybindings
  • VSCode: Added effort level indicator on the input border
  • VSCode: Added vscode://anthropic.claude-code/open URI handler to open a new Claude Code tab programmatically, with optional prompt and session query parameters
System prompt

The system prompt was not captured for this release, so this page cannot say whether it moved.