{"version":"2.1.311","anchor":"hook-dispatch-short-circuit-for-classic-hooks-changed","canonical_anchor":"hook-dispatch-short-circuit-for-classic-hooks-changed","heading":"Claude Code changed how it passes events to the usual hooks","tier":"internal","area":"Hooks","scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311\/e\/hook-dispatch-short-circuit-for-classic-hooks-changed","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.311","markdown":"### Claude Code changed how it passes events to the usual hooks\n\nThe step that hands events to configured hooks was reorganised and now skips direct dispatch when a held-hook check passes\n\n**Unclear.** Whether this changes when or whether your hooks run is not known.\n\n**What**\n\nHooks are commands you configure to run at set points, such as before or after a tool runs. The step that passes an event to these hooks was rearranged. When a check for held hooks passes, Claude Code now skips the direct hand-off. Otherwise a new function does the hand-off.\n\n**Why**\n\nIf hooks other than those that run before a tool behave differently after this update, this change may be the cause.\n\n- Area: Hooks\n- Tier: Under the hood\n- Useful: 1\/5\n- Signal: 2\/5\n- Scope: individual\n- Heads-up: no"}