claudekit / updates / claude-code-2-1-152
[ PATCH · ]

Claude Code 2.1.152

`/code-review --fix` now applies review findings to the working tree, and `/simplify` is folded into it. New: `disallowed-tools` in skill and slash-command frontmatter, `/reload-skills`, `SessionStart` `reloadSkills` and `sessionTitle`, and a `MessageDisplay` hook event. An unfound primary model now switches the session to `--fallback-model` instead of failing every request, and Auto mode no longer requires opt-in. Other fixes cover Vim NORMAL-mode `/` reverse history, `/usage` including large session files, plugin MCP dedup, remote MCP under egress proxy, markdown tables, and the post-response timer waiting for backgrounded agents.

Official announcement →

This article is a summary based on official documentation.

What changed

Claude Code 2.1.152 shipped on May 27, 2026. /code-review now accepts a --fix flag that applies review findings to the working tree, and /simplify is folded into /code-review --fix. Skills and slash commands can list disallowed-tools in frontmatter to remove tools while active; /reload-skills re-scans skill directories without restarting the session; SessionStart hooks gain a reloadSkills return and a sessionTitle output; and a new MessageDisplay hook event can transform or hide assistant message text as it is displayed. On the operational side, an unfound primary model now switches the whole session to your configured --fallback-model instead of failing every request, and Auto mode no longer requires opt-in consent. The rest is Vim NORMAL-mode / reverse history, /usage extended to large session files via streaming read, thinking-indicator readability, plugin MCP dedup, remote MCP under egress proxy, markdown table rendering, and a wide bug-fix sweep.

2.1.150 was an internal infrastructure-only release (no user-facing changes), and 2.1.151 has no public release notes, so neither is covered separately here.

New features

  • /code-review --fix applies findings to the working tree, and /simplify invokes it

    /code-review previously reported correctness bugs only; applying them meant running the changes yourself. With --fix, the command applies reuse, simplification, and efficiency suggestions directly to the working tree, and /simplify is now an alias that calls /code-review --fix.

  • disallowed-tools in skill and slash-command frontmatter

    There was no idiomatic way to hide specific tools from the model only while a given skill or slash command was active. Frontmatter can now list disallowed-tools to remove those tools for the duration the skill or command is active.

  • /reload-skills and SessionStart reloadSkills: true

    Skills installed mid-session — including by SessionStart hooks — weren’t picked up until you restarted the session. /reload-skills re-scans skill directories on demand, and SessionStart hooks can return reloadSkills: true so skills the hook installed become available in the same session.

  • SessionStart hook hookSpecificOutput.sessionTitle

    SessionStart hooks can now set the session title at startup and on resume.

  • MessageDisplay hook event

    There was no extension point between the assistant message and the screen. The new MessageDisplay hook event lets hooks transform or hide assistant message text as it is displayed.

  • pluginSuggestionMarketplaces managed setting

    Context-aware plugin suggestion tips could surface plugins from any installed marketplace. Admins can now allowlist marketplaces whose plugins may be suggested via this new managed setting.

  • claude plugin marketplace remove --scope user|project|local

    marketplace add, install, and uninstall all accept --scope, but remove did not, breaking symmetry. remove now takes the same scope option.

  • Session-wide switch to --fallback-model

    When the primary model is not found, Claude Code previously failed every request. It now switches to your configured --fallback-model for the rest of the session so the workflow keeps going.

  • Auto mode no longer requires opt-in consent

    The first-use consent gate for Auto mode has been removed.

Improvements

  • / in Vim NORMAL mode opens reverse history search

    Vim-mode users had to learn a separate key to step backward through prompt history. NORMAL-mode / now opens reverse history search (like Ctrl+R), matching bash and zsh vi-mode.

  • /usage breakdown includes large session files via streaming read

    Large session files were excluded from /usage because of memory concerns, leaving the breakdown incomplete. Files are now scanned with a streaming read so memory stays flat and the breakdown includes them.

  • Thinking summaries: min 3s, markdown, 10-line cap

    Collapsed thinking summaries vanished too quickly and rendered as plain text. They now stay readable for at least 3 seconds, render as markdown, and cap at 10 lines (Ctrl+O still shows the full thinking).

  • Fullscreen “Thinking for Ns” live counter

    In fullscreen the thinking indicator showed once and froze. It now counts up live while the model thinks, and keeps its value if you interrupt mid-thought.

  • Workflow tool inline progress simplified

    The Workflow tool’s live agent counts were duplicated across multiple surfaces. They now show only in the persistent workflow status row below the prompt.

  • Post-response timer waits for backgrounded agents and workflows

    The post-response timer didn’t account for work still running in the background. It now shows “Waiting for N background agents/workflows to finish” and reports the cumulative time once their results are processed.

  • OTEL app.entrypoint metric attribute

    There was no metric attribute to slice sessions by entrypoint. With OTEL_METRICS_INCLUDE_ENTRYPOINT=true, metrics now include app.entrypoint.

Bug fixes

Plugins & MCP

  • Plugin MCP servers with the same command but different environment variables being incorrectly deduplicated — environment variables are now part of the dedup key.
  • /doctor reporting “marketplace not found” or “plugin not found” for stale enabledPlugins entries referencing removed marketplaces or dropped plugins — stale entries are cleaned up and diagnostics are accurate.
  • Plugins tracking a git branch silently no longer receiving updates after the plugin registry was rebuilt — tracking is restored.
  • Remote MCP servers failing to connect in Claude Code Remote sessions when the egress proxy is enabled — fixed.

Sessions & agents

  • Effort-change confirmation dialog appearing on empty conversations or when switching between effort levels that resolve to the same underlying value — only shown for real changes.
  • Agent tool description referencing an agent list that is never delivered when running with --bare or with attachments disabled — the description matches the active mode.
  • Background worker crash in claude agents when accepting a stale permission prompt after a subagent was cancelled — fixed.
  • Sessions getting stuck after a model or login switch left stale thinking-block signatures in history — signatures are stripped proactively with a retry safety-net.

Terminal & UI

  • Terminal styling degrading in very long sessions — fixed by recycling the renderer’s style pool.
  • Sandbox-enabled warning not appearing in condensed startup mode — it now shows in every layout.
  • Loading spinner showing “still thinking” / “almost done thinking” while a tool is running — thinking status resets after each tool call.
  • Focus mode showing a spurious “N messages hidden” count on turns with no hidden activity — only shown when activity is actually hidden.
  • Clicking a link inside an expanded tool result collapsing the section instead of opening the link — the link now opens.
  • Markdown table cell borders inheriting the color of inline code, wrapped continuation lines losing their style, and empty header cells showing a label in the narrow-terminal stacked layout — all render correctly.

Telemetry & SDK

  • cache_creation_input_tokens reporting as 0 in transcript and result usage when the API reports cache writes only via the nested cache_creation breakdown — the correct value is reported.
  • PushNotification tool incorrectly reporting “Mobile push not sent (Remote Control inactive)” in SDK-hosted sessions when Remote Control is enabled — Remote Control state is detected correctly.

Notes

  • /simplify is now /code-review --fix: building on the 2.1.147 rename from /simplify to /code-review, the old name is now an alias that calls the new --fix flag. Beyond reporting correctness bugs, it applies reuse, simplification, and efficiency suggestions to the working tree directly.
  • disallowed-tools is frontmatter-scoped: it must be declared in the skill or slash-command frontmatter and only takes effect while the skill or command is active. Global tool restrictions are handled separately.
  • SessionStart reloadSkills enables hot installs: a hook can populate a skill directory and return reloadSkills: true so the skill is usable in the same session. No restart needed.
  • pluginSuggestionMarketplaces is a managed setting: not a user toggle. Enterprise admins use it to control which marketplaces’ plugins may be surfaced by context-aware suggestion tips.
  • --fallback-model switch behavior: if the primary model disappears (access lost, deprecation, etc.), the session continues on the fallback model instead of failing every request. Costs may differ per model, so verify your fallback choice is appropriate.
  • Auto mode opt-in removed: the first-use consent gate is gone. Auto mode is usable immediately, including in environments that previously didn’t pass the gate.