Claude Code 2.1.78: Plugin State, Terminal Fixes

Plugin persistent state, terminal notifications in tmux, and critical security fixes for sandbox warnings. Plus 20+ bug fixes across git, voice, and permissions.

Claude Code 2.1.78: Plugin State, Terminal Fixes

TL;DR

  • Plugin persistent state now survives updates via ${CLAUDE_PLUGIN_DATA} variable
  • Terminal notifications (iTerm2, Kitty, Ghostty) now work inside tmux
  • Fixed critical security issue: sandbox disable warning was silent when dependencies missing
  • Major fixes for git operations, voice mode, and permission rules

New

  • StopFailure hook event — fires when a turn ends due to API errors like rate limits or auth failures
  • ${CLAUDE_PLUGIN_DATA} variable — persistent plugin state that survives updates; /plugin uninstall now prompts before deletion
  • Agent frontmatter support — plugins can now ship agents with effort, maxTurns, and disallowedTools settings
  • Terminal notifications in tmux — iTerm2/Kitty/Ghostty popups and progress bars now reach the outer terminal when set -g allow-passthrough on is enabled
  • Line-by-line response streaming — response text now streams as it's generated instead of buffering
  • Custom model picker entryANTHROPIC_CUSTOM_MODEL_OPTION env var adds custom models to /model dropdown with optional _NAME and _DESCRIPTION suffixes

Fixed

  • Git operations on Linuxgit log HEAD no longer fails with "ambiguous argument" in sandboxed Bash; stub files no longer pollute git status
  • Large session truncationcc log and --resume no longer silently truncate conversations over 5 MB that used subagents
  • Stop hook infinite loop — fixed infinite loop when API errors triggered stop hooks that re-fed blocking errors to the model
  • MCP permission bypassdeny: ["mcp__servername"] rules now properly remove tools before sending to model
  • Sandbox filesystem pathssandbox.filesystem.allowWrite now works with absolute paths (no longer requires // prefix)
  • Sandbox Dependencies tab — now shows correct platform info (macOS prerequisites on macOS, not Linux)
  • Sandbox security warning — now shows visible startup warning instead of silently disabling when sandbox.enabled: true but dependencies missing
  • Protected directory permissions.git, .claude, and other protected dirs no longer writable without prompt in bypassPermissions mode
  • Readline keybindings — ctrl+u in normal mode now performs readline kill-line (half-page scroll moved to transcript mode only)
  • Voice mode push-to-talk — modifier-combo keybindings (e.g. ctrl+k) now activate immediately instead of requiring a hold
  • WSL2 voice support — voice mode now works on WSL2 with WSLg (Windows 11); WSL1/Win10 users get clear error message
  • Worktree skills and hooks--worktree flag now properly loads skills and hooks from worktree directory
  • Git instructions suppressionCLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS and includeGitInstructions now properly suppress git status in system prompt
  • Homebrew PATH resolution — Bash tool now finds Homebrew and PATH-dependent binaries when VS Code launched from Dock/Spotlight
  • Terminal color rendering — Claude orange color no longer washed out in terminals without truecolor support
  • Haiku model betasANTHROPIC_BETAS env var no longer silently ignored with Haiku models
  • Queued prompt formatting — prompts now separated by newlines instead of concatenated
  • Large session memory — improved memory usage and startup time when resuming sessions
  • VSCode login flash — fixed brief login screen flash when opening sidebar while authenticated
  • Opus rate limit error — model dropdown no longer offers 1M context variant to subscribers with unknown plan tier

Breaking Changes

  • Ctrl+u keybinding behavior changed in normal mode — now performs readline kill-line instead of half-page scroll (moved to transcript mode)

Update Claude Code via your extension manager or check the official changelog.

Source: Claude Code