Claude Code 2.1.89 shipped deferred hook decisions for headless tool calls, PermissionDenied retries after auto-mode denials, and nonblocking MCP connection handling. The release changes how automated sessions pause, recover, and coordinate tool access in long-running runs.

PreToolUse can now return "defer," so headless runs can pause at a tool call and resume with -p --resume for re-evaluation.PermissionDenied hook after auto-mode classifier denials; returning {retry:true} lets the model try again instead of hard-stopping the run.MCP_CONNECTION_NONBLOCKING=true can skip MCP connection waits in -p mode, while --mcp-config connections are now capped at 5 seconds instead of blocking on the slowest server.Claude Code 2.1.89 is mainly a control-plane update for unattended runs. According to the release thread, the new defer decision in PreToolUse lets a headless session pause exactly when a tool call needs review, then resume with -p --resume so the hook can re-check the request instead of forcing a one-shot allow or deny.
The second new hook closes a different failure mode. In the changelog, PermissionDenied now fires after auto-mode classifier denials, and a hook can return {retry: true} so the model gets another attempt. The same post adds a UI trace for denied commands: they now show a notification and appear in /permissions under Recent, where they can be retried with r.
The release also cuts some blocking behavior around tool infrastructure. The changelog says MCP_CONNECTION_NONBLOCKING=true skips the MCP connection wait entirely in -p mode, and server connections from --mcp-config are now bounded to 5 seconds. Around that, Anthropic also fixed several issues that matter in long sessions: a StructuredOutput schema cache bug with an estimated "~50% failure rate" when multiple schemas were used, an LRU-cache memory leak retaining large JSON inputs, --resume hangs on deferred tool inputs over 64KB, and an autocompact thrash loop that could otherwise keep burning API calls detailed changelog. For teams running Claude Code as an agent loop rather than an interactive terminal, those fixes are as material as the new hooks.
Claude Code 2.1.89 has been released. 9 flag changes, 52 CLI changes Highlights: • PreToolUse hooks can return 'defer' to pause headless tool calls; resume with -p --resume to re-eval • PermissionDenied hook fires after auto-mode classifier denials; return {retry:true} to let Show more
Claude Code CLI 2.1.89 changelog: New features: • Added "defer" permission decision to PreToolUse hooks — headless sessions can pause at a tool call and resume with -p --resume to have the hook re-evaluate • Added CLAUDE_CODE_NO_FLICKER=1 environment variable to opt into Show more