{"version":"2.1.292","anchor":"hooksplugin-runtime-abort-propagation-keptresult-and-re","canonical_anchor":"hooksplugin-runtime-abort-propagation-keptresult-and-re","heading":"Plugin hook engine handles cancellation and partly applied answers differently","tier":"internal","area":"Hooks","scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.292\/e\/hooksplugin-runtime-abort-propagation-keptresult-and-re","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.292","markdown":"### Plugin hook engine handles cancellation and partly applied answers differently\n\nPlugin hook modules now report when their answer was only partly applied, and pass cancellation on to the work they do for a caller\n\n**What**\n\nHooks are small pieces of code a plugin runs at set points while Claude Code works. The engine that runs plugin hook modules changed in several ways:\n\n- it reports when part of a hook's answer could not be applied\n\n- work it does on a caller's behalf is cancelled when the caller cancels\n\n- a call refused after the hook has let go raises the cancellation reason as an error\n\n- a handler that has run out of time can still run its `.catch` error handling a limited number of times\n\n- deny, drop and turn.complete answers are checked by one shared validation\n\n**Why**\n\nThis matters to plugin authors who write hook modules.\n\n- Area: Hooks\n- Tier: Under the hood\n- Useful: 2\/5\n- Signal: 1\/5\n- Scope: individual\n- Heads-up: no"}