{"version":"2.1.302","anchor":"async-hook-settling-and-cleanup-helpers-added","canonical_anchor":"async-hook-settling-and-cleanup-helpers-added","heading":"Background hooks get a grace period to finish before being cancelled","tier":"notice","area":"Hooks","scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.302\/e\/async-hook-settling-and-cleanup-helpers-added","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.302","markdown":"### Background hooks get a grace period to finish before being cancelled\n\nClaude Code now waits a short grace period for background hooks of an event to finish, then cancels the rest and drops unreadable results\n\n**Unclear.** Whether this changes how background hooks finish or only reorganises existing behaviour is not clear.\n\n**What**\n\nHooks are your own commands that Claude Code runs at set moments, and async hooks run in the background without holding Claude Code up. Claude Code now handles unfinished async hooks for an event like this:\n\n- it waits a short grace period for them to finish\n\n- it cancels any still running after that\n\n- it reads each finished hook's result, and if it cannot, logs that and drops the result\n\n**Why**\n\nIt may change how background hooks wrap up, for example when a session ends. If an async hook's output goes missing, a failed read at the end is one reason.\n\n- Area: Hooks\n- Tier: You'll notice\n- Useful: 2\/5\n- Signal: 2\/5\n- Scope: individual\n- Heads-up: no"}