v2.1.178
Claude CodeSummary
This release introduces granular permission control using tool parameters and improves skill loading in nested project structures. Numerous critical bugs have been fixed, including issues with authentication tokens, subagent transcript viewing, and background session state management. Usability is enhanced through clearer error messages, improved auto-mode safety checks, and refined workflow prompt detection.
New Features
- Added `Tool(param:value)` syntax for permission rules to allow matching a tool based on its input parameters, supporting wildcards (`*`).
- Enabled loading of skills located in nested `.claude/skills` directories when working in those subdirectories.
Bug Fixes
- Fixed a crash (out-of-memory) when the CLI inherited stale websocket/OAuth file-descriptor environment variables from a parent process.
- Fixed Claude in Chrome silently failing to connect when the OAuth token belonged to a different account than the currently logged-in Claude Code user.
- Fixed permission prompts blocking directory-qualified skills in nested `.claude/skills` during non-interactive runs.
- Fixed several subagent issues: viewing subagent transcripts now correctly shows tool results and live progress, messages sent while a subagent finishes are no longer dropped, and backgrounding a running subagent no longer restarts it.
- Fixed `claude agents` workers failing with `401 Invalid bearer token` when the daemon was started with custom API gateway settings via environment variables.
- Fixed compaction not honoring the `--fallback-model` setting, ensuring it now falls back correctly on overload or model-availability errors.
- Fixed model requests continuing to fail with authentication errors after credentials were refreshed due to a stale cached request configuration.
- Fixed background sessions created with `/bg` or `←←` appearing as "Working" indefinitely in the agents list after a turn completed.
- Fixed `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=1` preventing fresh marketplace installs from cloning correctly.
- Fixed MCP server-level specs being silently ignored in subagent `disallowedTools` configurations.
- Fixed vim mode undo (`u`) merging multiple quick commands into a single undo step; it now steps through NORMAL/VISUAL-mode commands individually.
- Fixed statusline links using custom URI schemes (e.g., `vscode://`) not opening when clicked in `claude agents`.
- Fixed pressing Esc to dismiss a CJK IME candidate window canceling the running Claude task in VSCode.
Improvements
- Improved auto mode by evaluating subagent spawns with the classifier before launch, preventing blocked actions from being requested without review.
- Improved `/doctor` output with a consistent flat tree layout, clearer status icons, and highlighted command names.
- Improved the skill listing truncation warning to explicitly show how many skill descriptions are affected.
- Changed the workflow prompt keyword highlight to use a purple shimmer and trigger only on explicit phrases like "run a workflow" or "workflow:", ignoring casual mentions.
- Improved Remote Control error messages: connection failures now show a persistent red "/rc failed" indicator, and "not yet enabled" errors now specify the reason (gate, check failure, stale entitlement, or org policy).
- Modified `/bug` to require a description before submission and prevents using model-refusal text as the GitHub issue title.
- When skill names clash in nested `.claude/skills` directories, the nested skill is now listed as `<dir>:<name>` to ensure both are available.
- When names collide in nested `.claude/` directories, the agent, workflow, or output-style closest to the working directory now takes precedence; project-scope workflow saves now target the closest existing `.claude/workflows/`.