Source Intelligence

DisclaimerUnofficial, and not affiliated with Anthropic. Nearly all of this is read straight out of what ships: npm bundles, captured prompts, published docs. Anthropic's own notes go in verbatim, marked as theirs. The rest is my reading, and every entry carries the strings behind it. If one looks wrong, vote it down and say why.

All of v2.1.238 Home All releases olderv2.1.237 v2.1.239newer
Claude Code v2.1.238

Reconnecting an SDK host swaps its hooks in and settles the ones left waiting

You'll notice
Useful3 Signal3
Hooks

SDK hook swaps no longer leave tool calls hanging; stuck ones now ask you to retry.

What

When the process that owns the stdin stream re-initializes and sends hooks along with it, the previous hook callbacks are retired and the new set is registered through one shared helper, and the reply to the initialize request states whether those hooks were applied. Any tool call whose PreToolUse hook never received an answer is no longer left hanging or quietly allowed through: it is settled with an explicit message asking you to retry. This is on for everyone on the SDK path in this build, with no flag to enable.

Details
  • The synthetic result for an unanswered call reads: "The SDK host reconnected before its PreToolUse hook answered, so this tool call was not executed. No one denied it; retry the same tool call."
  • Only a host that owns stdin locally can replace hooks this way. The transport flag permitting it defaults to true on the base transport and is overridden to false on the remote transport, so a client joining over the remote path cannot swap the hook set.
  • The tengu_reinit_pending_redelivery telemetry event, which fires when a re-initialization redelivers pending work, gained three fields: host_hooks_resent, host_hooks_applied and n_settled_hook_callbacks.
Evidence

The SDK host reconnected before its PreToolUse hook answered, so this tool call was not executed. No one denied it; retry the same tool call., host_hooks_resent

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Related

Other releases about the same thing. Found by shared names or similar wording; neither means one caused the other.

See this entry in the whole of v2.1.238 →