2.1.90 untested · changelog-derived

Claude Code 2.1.90

**/powerup command** — interactive lessons with animated demos for teaching Claude Code features. This unlocks guided onboarding and self-directed skill building without leaving the CLI.

3 new primitives 1 workflow recipes 16 fixes

New primitives

/powerupcommand

Interactive lessons teaching Claude Code features with animated demos

Added `/powerup` — interactive lessons teaching Claude Code features with animated demos
CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILUREenv-var

Keep the existing marketplace cache when `git pull` fails, useful in offline environments

Added `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` env var to keep the existing marketplace cache when `git pull` fails, useful in offline environments
.husky protectionsetting

`.husky` added to protected directories (acceptEdits mode)

Added `.husky` to protected directories (acceptEdits mode)

Workflow recipes

Offline-resilient marketplace + guided onboarding
CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE + /powerup

Remote teams and air-gapped environments can now learn Claude Code interactively without disrupting marketplace availability when network fails. Combines survivable offline caching with discoverable feature training.

In an offline-first or intermittently-connected environment, an agent or user runs /powerup to learn a feature, triggering skill install; if marketplace git pull fails, the env var prevents cache loss. Subsequent skill invocations use the cached marketplace. This creates a stable learning + skill-acquisition loop even in degraded network conditions.

Agentic relevance

The `/powerup` interactive lessons and `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` env var are ergonomic additions for agent discoverability and offline resilience. The PowerShell hardening and prompt-cache fix address regression stability. Overall, 2.1.90 prioritizes bug fixes and polish over new agent-facing capabilities.

Hardening & fixes (16)

  • Fixed infinite loop where the rate-limit options dialog would repeatedly auto-open after hitting your usage limit, eventually crashing the session
  • Fixed `--resume` causing a full prompt-cache miss on the first request for users with deferred tools, MCP servers, or custom agents (regression since v2.1.69)
  • Fixed `Edit`/`Write` failing with "File content has changed" when a PostToolUse format-on-save hook rewrites the file between consecutive edits
  • Fixed `PreToolUse` hooks that emit JSON to stdout and exit with code 2 not correctly blocking the tool call
  • Fixed collapsed search/read summary badge appearing multiple times in fullscreen scrollback when a CLAUDE.md file auto-loads during a tool call
  • Fixed auto mode not respecting explicit user boundaries ("don't push", "wait for X before Y") even when the action would otherwise be allowed
  • Fixed click-to-expand hover text being nearly invisible on light terminal themes
  • Fixed UI crash when malformed tool input reached the permission dialog
  • Fixed headers disappearing when scrolling `/model`, `/config`, and other selection screens
  • Hardened PowerShell tool permission checks: fixed trailing `&` background job bypass, `-ErrorAction Break` debugger hang, archive-extraction TOCTOU, and parse-fail fallback deny-rule degradation
  • Improved performance: eliminated per-turn JSON.stringify of MCP tool schemas on cache-key lookup
  • Improved performance: SSE transport now handles large streamed frames in linear time (was quadratic)
  • Improved performance: SDK sessions with long conversations no longer slow down quadratically on transcript writes
  • Improved `/resume` all-projects view to load project sessions in parallel, improving load times for users with many projects
  • Changed `--resume` picker to no longer show sessions created by `claude -p` or SDK invocations
  • Removed `Get-DnsClientCache` and `ipconfig /displaydns` from auto-allow (DNS cache privacy)

Raw changelog

## 2.1.90

- Added `/powerup` — interactive lessons teaching Claude Code features with animated demos
- Added `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` env var to keep the existing marketplace cache when `git pull` fails, useful in offline environments
- Added `.husky` to protected directories (acceptEdits mode)
- Fixed an infinite loop where the rate-limit options dialog would repeatedly auto-open after hitting your usage limit, eventually crashing the session
- Fixed `--resume` causing a full prompt-cache miss on the first request for users with deferred tools, MCP servers, or custom agents (regression since v2.1.69)
- Fixed `Edit`/`Write` failing with "File content has changed" when a PostToolUse format-on-save hook rewrites the file between consecutive edits
- Fixed `PreToolUse` hooks that emit JSON to stdout and exit with code 2 not correctly blocking the tool call
- Fixed collapsed search/read summary badge appearing multiple times in fullscreen scrollback when a CLAUDE.md file auto-loads during a tool call
- Fixed auto mode not respecting explicit user boundaries ("don't push", "wait for X before Y") even when the action would otherwise be allowed
- Fixed click-to-expand hover text being nearly invisible on light terminal themes
- Fixed UI crash when malformed tool input reached the permission dialog
- Fixed headers disappearing when scrolling `/model`, `/config`, and other selection screens
- Hardened PowerShell tool permission checks: fixed trailing `&` background job bypass, `-ErrorAction Break` debugger hang, archive-extraction TOCTOU, and parse-fail fallback deny-rule degradation
- Improved performance: eliminated per-turn JSON.stringify of MCP tool schemas on cache-key lookup
- Improved performance: SSE transport now handles large streamed frames in linear time (was quadratic)
- Improved performance: SDK sessions with long conversations no longer slow down quadratically on transcript writes
- Improved `/resume` all-projects view to load project sessions in parallel, improving load times for users with many projects
- Changed `--resume` picker to no longer show sessions created by `claude -p` or SDK invocations
- Removed `Get-DnsClientCache` and `ipconfig /displaydns` from auto-allow (DNS cache privacy)