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.246 Home All releases olderv2.1.245 v2.1.247newer
Claude Code v2.1.246

Hooks are looked up through a per-session registry, not app state

Under the hood
Useful1 Signal2
Hooks

Hooks are looked up per session rather than from global state; your hooks fire the same.

What

Hook presence checks, SessionEnd dispatch, stop-prompt registration, the permission-request check and the StopFailure dispatcher all now query a per-session hook registry rather than reading hooks out of global app state. No change to how your configured hooks fire.

Details
  • The hook runner takes a sessionHooks argument with a has(id, event) lookup.
  • Tool aliases used for matcher filtering come from an optional getToolAliases() callback instead of the tool permission context.
  • Teammate setup registers its Stop hook via addFunctionHook rather than a global registration helper.
  • A React error was added for using the registry hook outside its provider.
Evidence

useSessionHooksRegistry cannot be called outside of an <AppStateProvider />, hook_event_name: "StopFailure", addFunctionHook

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.246 →