Stale FD crash fixed; OAuth account mismatch handled
v2.1.178
3 features8 enhancements13 fixesThis release3 featuresNew capabilities8 enhancementsImprovements to existing features13 fixesBug fixesAI-tallied from the release notes
What's changed
- Added
Tool(param:value)syntax for permission rules to match a tool's input parameters (with*wildcard), e.g.Agent(model:opus)to block Opus subagents - Skills in nested
.claude/skillsdirectories now load when working on files there; on a name clash, the nested skill appears as<dir>:<name>so both stay available - Nested
.claude/directories: the agent, workflow, and output-style closest to the working directory now wins when names collide; project-scope workflow saves now target the closest existing.claude/workflows/ - Improved auto mode: subagent spawns are now evaluated by the classifier before launch, closing a gap where a subagent could request a blocked action without review
- Improved
/doctorwith consistent flat tree layout across all sections, clearer section status icons, and highlighted command names - Improved the skill listing truncation warning to show how many skill descriptions are affected
- Changed the workflow prompt keyword to use a purple shimmer highlight and trigger only on explicit phrases like "run a workflow" or "workflow:", not on any mention of the word
- Improved Remote Control error messages: connection failures now show a persistent red "/rc failed" indicator in the footer, and the "not yet enabled" error now explains whether it's a gate, a check failure, stale entitlement, or org policy
/bugnow requires a description before submitting, and no longer uses model-refusal text as the GitHub issue title- Fixed a crash (out-of-memory) when the CLI inherits a stale websocket/OAuth file-descriptor environment variable from a parent process
- Fixed Claude in Chrome silently failing to connect when the OAuth token belongs to a different account than the Claude Code login
- Fixed nested
.claude/skillsskills with directory-qualified names being blocked by permission prompts in non-interactive runs - Fixed several subagent issues: viewing a subagent's transcript now shows tool results and live progress, messages sent while it finishes its turn are no longer dropped, and backgrounding a running subagent (ctrl+b) no longer restarts it from scratch
- Fixed
claude agentsworkers failing with401 Invalid bearer tokenwhen the daemon was started from a shell with a custom API gateway viaANTHROPIC_BASE_URLandANTHROPIC_AUTH_TOKEN - Fixed compaction not honoring
--fallback-model: compaction now falls back to the configured fallback model chain on overload or model-availability errors - Fixed model requests continuing to fail with auth errors after credentials were refreshed outside the session, due to a stale cached request configuration
- Fixed background sessions created with
/bgor←←after a turn finished showing "Working" forever in the agents list - Fixed
CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=1preventing fresh marketplace installs from cloning - Fixed MCP server-level specs (
mcp__server,mcp__server__*,mcp__*) in subagentdisallowedToolsbeing silently ignored - Fixed vim mode undo:
unow steps through NORMAL/VISUAL-mode commands one at a time instead of merging commands in quick succession into a single undo step - Fixed statusline links with custom URI schemes (e.g.
vscode://) not opening when clicked inclaude agents - [VSCode] Fixed pressing Esc to dismiss a CJK IME candidate window canceling the running Claude task
Fetched June 16, 2026
