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.77 v2.1.79newer

Claude Code v2.1.78

17 entries read diff v2.1.77 → v2.1.78 Markdown

This release adds automatic memory consolidation ("auto-dream") as a feature-flagged background capability, introduces persistent data directories for plugins with a new --keep-data uninstall flag, adds a StopFailure hook event for reacting to API errors, and improves sandbox diagnostics with proactive warnings when sandboxing is unavailable. Voice mode on Linux/WSL also receives better hardware detection and clearer error messaging.

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

Changesopen

StopFailure Hook Event#

What

A new hook event type that fires when a turn ends due to an API error (rate limit, auth failure, billing error, etc.), distinct from the normal Stop event.

Usage
{
  "hooks": {
    "StopFailure": [
      {
        "type": "command",
        "command": "echo 'API error: $CLAUDE_HOOK_ERROR'"
      }
    ]
  }
}
Details
  • Fires instead of Stop when an API error ended the turn
  • Fire-and-forget — hook output and exit codes are ignored
  • Supports matching on error type: rate_limit, authentication_failed, billing_error, invalid_request, server_error, max_output_tokens, unknown
Evidence

Hook event definition (search for "StopFailure") — added to the hook event schema with matcherMetadata on "error" field

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

Plugin Persistent Data Directories#

What

Plugins now get a dedicated persistent data directory at ~/.claude/plugins/data/{id}/, accessible via the CLAUDE_PLUGIN_DATA environment variable and the ${CLAUDE_PLUGIN_DATA} template in plugin configs.

Details
  • Each plugin receives its own data directory, created automatically
  • The directory persists across plugin updates and sessions
  • On plugin uninstall, users are prompted: "Delete it along with the plugin?" with the data directory path shown
  • Use --keep-data flag with uninstall to preserve the data directory
Evidence

Plugin data path helper (search for "CLAUDE_PLUGIN_DATA") — new env var injected into plugin processes; --keep-data CLI option (search for "--keep-data")

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

Sandbox Unavailability Warnings#

What

Claude Code now proactively detects when sandboxing is configured but cannot actually run, and displays a clear warning at startup instead of silently falling back.

Details
  • Checks for missing dependencies (bubblewrap, socat on Linux; ripgrep), unsupported platforms, and WSL1 incompatibility
  • Displays a warning: ⚠ Sandbox disabled: {reason} followed by Commands will run WITHOUT sandboxing. Network and filesystem restrictions will NOT be enforced.
  • The /sandbox diagnostic UI now also shows ripgrep status and uses "seatbelt: built-in (macOS)" labeling on macOS
Evidence

Sandbox check function (search for "getSandboxUnavailableReason") and startup warning (search for "Commands will run WITHOUT sandboxing")

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.

Custom Model Picker via Environment Variables#

What

Administrators can inject a custom model option into the model picker via environment variables, useful for enterprise deployments with custom-routed models.

Usage
export ANTHROPIC_CUSTOM_MODEL_OPTION="my-custom-model-id"
export ANTHROPIC_CUSTOM_MODEL_OPTION_NAME="My Custom Model"
export ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION="Custom routed model for our org"
Details
  • The custom model appears as an additional option in the model selection UI
  • If no name is provided, the model ID is used as the label
  • If no description is provided, defaults to Custom model ({id})
Evidence

Model picker injection (search for "ANTHROPIC_CUSTOM_MODEL_OPTION")

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

Monitor MCP Background Task Type#

What

A new background task type monitor_mcp for MCP-based monitors that can run alongside the main conversation.

Details
  • Appears in the background tasks panel with status indicators ("done", "unread" for completed but unviewed)
  • Displayed as "1 monitor" / "N monitors" in task counts
Evidence

Task type definition (search for "monitor_mcp")

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.

Improved Voice Mode on Linux/WSL#

Voice mode now probes the arecord audio device before attempting to record on Linux, providing clearer error messages when audio hardware is unavailable. On WSL specifically, the error message now explains WSL2 with WSLg (Windows 11) requirements:

> Voice mode could not access an audio device in WSL. WSL2 with WSLg (Windows 11) provides audio via PulseAudio — if you are on Windows 10 or WSL1, run Claude Code in native Windows instead.

Evidence

Audio probe function (search for "arecord probe failed") and improved WSL message (search for "WSLg")

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.

Auto Mode Classifier: deny Renamed to soft_deny#

The auto mode classifier setting field deny has been renamed to soft_deny in the settings schema. This is a semantic clarification — existing deny rules in your config should be updated to soft_deny.

Evidence

Schema change (search for "soft_deny")

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

Transcript Viewer: Press q to Exit#

You can now press q in addition to Escape or Ctrl+C to exit the transcript viewer.

Evidence

Keybinding addition (search for "transcript:exit")

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.

Bridge Reconnection Resilience#

The bridge reconnection logic now handles up to 2 consecutive failed /bridge/reconnect calls before falling through to a fresh session, improving reliability on flaky connections. Empty message arrays from resumed sessions are now also handled gracefully.

Evidence

Reconnect logic (search for "Next 2 POST /bridge/reconnect") and empty-session guard (search for "z.messages.length === 0")

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

Terminal Mode Reassertion After Stdin Pause#

The terminal renderer now re-asserts mouse tracking and raw mode settings when stdin resumes after a gap, preventing issues where terminal state was lost during long idle periods or after backgrounding the process.

Evidence

Terminal mode fix (search for "reassertTerminalModes")

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

Opus 4.6 Model Label Updated#

The model picker label for Opus 4.6 no longer shows the [NEW] tag, reflecting that it's now the established default model.

Evidence

String change — old: "Opus 4.6 with 1M context [NEW]" → new: "Opus 4.6 with 1M context"

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 Credential Persistence#

In remote/CCR environments, OAuth tokens and API keys are now persisted to well-known file paths (/home/claude/.claude/remote/.oauth_token, /home/claude/.claude/remote/.api_key) so that subprocesses can access credentials without inheriting file descriptors.

Evidence

Remote credential paths (search for "/.oauth_token") and persistence function (search for "Failed to persist")

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

CLAUDE_CODE_EXTRA_METADATA Environment Variable#

A new environment variable that lets you inject additional metadata (as a JSON object) into session telemetry. Useful for enterprise environments that need to tag sessions with org-specific identifiers.

Evidence

Metadata injection (search for "CLAUDE_CODE_EXTRA_METADATA")

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

Sandbox Dependency Check: Bare-Repo File Scrubbing#

The sandbox initialization now detects and scrubs "planted" bare-repo files (directories like HEAD, objects, refs, etc.) that could be mistakenly treated as git repository internals.

Evidence

Scrubbing function (search for "scrubbed planted bare-repo file")

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.

Syntax Highlighting Refactored to React Suspense#

Code highlighting for diffs, code blocks, and tool use previews has been refactored to use React Suspense with lazy loading. The highlighter module is loaded asynchronously, showing an unhighlighted fallback until ready. This should improve perceived startup time.

Evidence

Suspense-based highlighting wrapper (search for "Suspense" near highlight components)

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

Remote Control Command Availability#

Commands that aren't usable in Remote Control mode now return a clear message: /{command} isn't available over Remote Control.

Evidence

Availability check (search for "isn't available over Remote Control")

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

2 entries

Bug Fixesopen

#

  • Fixed bridge session resumption failing silently when the resumed session has zero messages — now correctly falls through to a fresh session (search for "z.messages.length === 0")
  • Fixed ANTHROPIC_BETAS environment variable not being applied in all request contexts — the beta header filter was incorrectly gated on a condition that could prevent user-specified betas from being sent (search for "ANTHROPIC_BETAS")
  • Telemetry additional_metadata is now base64-encoded before transmission, fixing potential encoding issues with JSON payloads (search for "base64")

Auto-Dream: Automatic Memory Consolidation [In Development]#

Feature flag
tengu_onyx_plover Not enough to say

Nothing here resolved what this flag was doing on this version, so nothing here should be read as on or off.

This account: no value returned · anonymous baseline: no value returned · compiled default in v2.1.78: no gate table built for this version

These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.

Read once, for one account on one subscription tier, against v2.1.78. It isn't a statement about your account. What a flag value here can and cannot tell you

What

A background process that automatically reviews recent session transcripts and consolidates insights into your memory files, similar to running a manual memory consolidation pass but triggered automatically.

Status

Feature-flagged via tengu_onyx_plover — disabled by default (enabled: !1).

Details
  • When enabled, triggers after a configurable minimum hours (default: 24h) and minimum sessions (default: 5) since last consolidation
  • Uses a .consolidate-lock file with PID-based locking to prevent concurrent consolidation
  • Runs as a forked background query with querySource: "auto_dream" that reads session transcripts and updates memory files
  • Includes throttling to prevent excessive scanning (minimum gap between scans)
  • The dream prompt instructs the model to orient by reading existing memories, gather signal from recent sessions, consolidate into topic files, and prune the index
  • Telemetry events: tengu_auto_dream_fired, tengu_auto_dream_completed, tengu_auto_dream_failed
Evidence

Dream infrastructure (search for "autoDream") — gated by tengu_onyx_plover flag (search for "tengu_onyx_plover")

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.

Verbatim
Official · Anthropic

Anthropic’s official release notes

Published verbatim by Anthropic for v2.1.78. 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.

  • Added StopFailure hook event that fires when the turn ends due to an API error (rate limit, auth failure, etc.)
  • Added ${CLAUDE_PLUGIN_DATA} variable for plugin persistent state that survives plugin updates; /plugin uninstall prompts before deleting it
  • Added effort, maxTurns, and disallowedTools frontmatter support for plugin-shipped agents
  • Terminal notifications (iTerm2/Kitty/Ghostty popups, progress bar) now reach the outer terminal when running inside tmux with set -g allow-passthrough on
  • Response text now streams line-by-line as it's generated
  • Fixed git log HEAD failing with "ambiguous argument" inside sandboxed Bash on Linux, and stub files polluting git status in the working directory
  • Fixed cc log and --resume silently truncating conversation history on large sessions (>5 MB) that used subagents
  • Fixed infinite loop when API errors triggered stop hooks that re-fed blocking errors to the model
  • Fixed deny: ["mcp__servername"] permission rules not removing MCP server tools before sending to the model, allowing it to see and attempt blocked tools
  • Fixed sandbox.filesystem.allowWrite not working with absolute paths (previously required // prefix)
  • Fixed /sandbox Dependencies tab showing Linux prerequisites on macOS instead of macOS-specific info
  • Security: Fixed silent sandbox disable when sandbox.enabled: true is set but dependencies are missing — now shows a visible startup warning
  • Fixed .git, .claude, and other protected directories being writable without a prompt in bypassPermissions mode
  • Fixed ctrl+u in normal mode scrolling instead of readline kill-line (ctrl+u/ctrl+d half-page scroll moved to transcript mode only)
  • Fixed voice mode modifier-combo push-to-talk keybindings (e.g. ctrl+k) requiring a hold instead of activating immediately
  • Fixed voice mode not working on WSL2 with WSLg (Windows 11); WSL1/Win10 users now get a clear error
  • Fixed --worktree flag not loading skills and hooks from the worktree directory
  • Fixed CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS and includeGitInstructions setting not suppressing the git status section in the system prompt
  • Fixed Bash tool not finding Homebrew and other PATH-dependent binaries when VS Code is launched from Dock/Spotlight
  • Fixed washed-out Claude orange color in VS Code/Cursor/code-server terminals that don't advertise truecolor support
  • Added ANTHROPIC_CUSTOM_MODEL_OPTION env var to add a custom entry to the /model picker, with optional _NAME and _DESCRIPTION suffixed vars for display
  • Fixed ANTHROPIC_BETAS environment variable being silently ignored when using Haiku models
  • Fixed queued prompts being concatenated without a newline separator
  • Improved memory usage and startup time when resuming large sessions
  • [VSCode] Fixed a brief flash of the login screen when opening the sidebar while already authenticated
  • [VSCode] Fixed "API Error: Rate limit reached" when selecting Opus — model dropdown no longer offers 1M context variant to subscribers whose plan tier is unknown
System prompt

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