Claude Code 2.1.83: Policy Fragments, Transcript Search
2.1.83 brings managed policy fragments, transcript search, credential scrubbing, and fixes 40+ bugs including startup freezes, large file diffs, and macOS hangs.
TL;DR
- Managed settings now support drop-in policy fragments via
managed-settings.d/directory - New hook events (
CwdChanged,FileChanged) for reactive environment management - Transcript search with
/key, plus credential scrubbing for subprocess environments - Major fixes: UI freezes on startup, large file diffs timing out, macOS exit hangs, and 30+ other bugs
New
- Managed settings drop-in directory —
managed-settings.d/lets teams deploy independent policy fragments that merge alphabetically instead of maintaining a single JSON file. - Hook events for environment changes —
CwdChangedandFileChangedevents enable reactive management like direnv integration. - Sandbox failure mode —
sandbox.failIfUnavailablesetting exits with error when sandbox is enabled but cannot start, instead of silently running unsandboxed. - Credential scrubbing for subprocesses —
CLAUDE_CODE_SUBPROCESS_ENV_SCRUB=1strips Anthropic and cloud provider credentials from Bash tool, hooks, and MCP stdio server environments. - Transcript search — Press
/in transcript mode (Ctrl+O) to search; usen/Nto step through matches. - Image reference chips — Pasted images now insert
[Image #N]chips at cursor for positional reference in prompts. - Agent auto-submit — Agents can declare
initialPromptin frontmatter to auto-submit a first turn. - Rebindable commands —
chat:killAgentsandchat:fastModenow rebindable via~/.claude/keybindings.json. - External editor alias —
Ctrl+X Ctrl+Enow opens external editor (readline-native binding;Ctrl+Gstill works). - Protocol handler control —
disableDeepLinkRegistrationsetting preventsclaude-cli://protocol handler registration. - Rewind picker in VSCode — Press Esc twice or use
/rewindto open keyboard-navigable rewind picker.
Fixed
- UI freeze on startup when voice input enabled — native audio module now loads lazily (1–8 second freeze eliminated).
- Large file diffs causing hangs — diffs now time out after 5 seconds and fall back gracefully.
- Claude Code hanging on exit on macOS.
- Screen flashing blank after idle periods.
- Startup regression where Claude Code waited ~3s for claude.ai MCP config fetch.
--mcp-configCLI flag bypassingallowedMcpServers/deniedMcpServersmanaged policy enforcement.- Claude.ai MCP connectors (Slack, Gmail, etc.) unavailable in single-turn
--printmode. caffeinateprocess not terminating on exit, preventing Mac from sleeping.- Bash mode not activating when tab-accepting
!-prefixed command suggestions. - Stale slash command selection showing wrong highlighted command.
/configmenu showing both search cursor and list selection simultaneously.- Background subagents becoming invisible after context compaction, causing duplicate spawns.
- Background agent tasks stuck in "running" state when git or API calls hang during cleanup.
--channelsshowing "not currently available" on first launch after upgrade.- Uninstalled plugin hooks continuing to fire until next session.
- Queued commands flickering during streaming responses.
- Slash commands sent to model as text when submitted during message processing.
- Scrollback jumping when collapsed read/search groups finish offscreen.
- Scrollback jumping to top when model starts or stops thinking.
- SDK session history loss on resume caused by hook progress/attachment messages forking parentUuid chain.
- Copy-on-select not firing when releasing mouse outside terminal window.
- Ghost characters in height-constrained lists when items overflow.
Ctrl+Binterfering with readline backward-char — now only fires when foreground task can be backgrounded.- Tool result files never cleaned up, ignoring
cleanupPeriodDayssetting. - Space key swallowed for up to 3 seconds after releasing voice hold-to-talk.
- ALSA library errors corrupting terminal UI on Linux without audio hardware (Docker, headless, WSL1).
- Voice mode SoX detection failing on Termux/Android.
- Remote Control sessions showing as Idle in web session list while actively running.
- Footer navigation selecting invisible Remote Control pill in config-driven mode.
- Memory leak in remote sessions where tool use IDs accumulate indefinitely.
- Mouse tracking escape sequences leaking to shell prompt after exit.
- API 400 error when pasted image queued during failing tool call.
- MCP tool calls hanging indefinitely when SSE connection drops mid-call.
- Remote Control session titles showing raw XML when background agent completed before first user message.
- Remote sessions forgetting conversation history after container restart.
- Remote sessions requiring re-login on transient auth errors instead of retrying.
rg ... | wc -land similar piped commands hanging in sandbox mode on Linux.- Voice input hold-to-talk not activating with CJK IME full-width space.
--worktreehanging silently when worktree name contained forward slash.- [VSCode] Session history not loading correctly when reopening via URL or after restart.
- [VSCode] "Fork conversation from here" and rewind actions failing silently after session cache goes stale.
Improved
- Bedrock SDK cold-start latency by overlapping profile fetch with other boot work.
--resumememory usage and startup latency on large sessions.- Plugin startup — commands, skills, and agents now load from disk cache without re-fetching.
- Remote Control session titles — AI-generated titles appear within seconds of first message.
WebFetchnow identifies asClaude-Userfor site operator allowlisting viarobots.txt.WebFetchpeak memory usage for large pages.- Scrollback resets in long sessions — reduced from once per turn to once per ~50 messages.
claude -pstartup with unauthenticated HTTP/SSE MCP servers (~600ms saved).- Bash ghost-text suggestions now include just-submitted commands immediately.
- Non-streaming fallback token cap (21k → 64k) and timeout (120s → 300s local) to reduce truncation.
- Interrupting prompt before response now auto-restores input for editing and resubmission.
/statusnow works while Claude is responding instead of being queued.- Plugin MCP servers duplicating org-managed connectors now suppressed instead of running second connection.
--bare -p(SDK pattern) ~14% faster to API request.MEMORY.mdindex now truncates at 25KB as well as 200 lines.- [VSCode] Spinner turns red with "Not responding" when backend hasn't responded for 60 seconds.
Changed
- "Stop all background agents" keybinding moved from
Ctrl+FtoCtrl+X Ctrl+Kto stop shadowing readline forward-char. - Linux: now respects
XDG_DATA_HOMEwhen registeringclaude-cli://protocol handler. Ctrl+Lnow clears screen and forces full redraw — use this to recover when Cmd+K leaves UI partially blank.
Deprecated
TaskOutputtool — useReadon background task's output file path instead.
New Settings & Environment Variables
CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK— disable non-streaming fallback when streaming fails.- Plugin options (
manifest.userConfig) now available externally — plugins can prompt for configuration at enable time, withsensitive: truevalues stored in keychain (macOS) or protected credentials file (other platforms). - Claude can now reference on-disk path of clipboard-pasted images for file operations.
- Disabled
AskUserQuestionand plan-mode tools when--channelsis active.
Update via brew upgrade claude-code or download from code.claude.com.
Source: Claude Code