Under the hoodTier: how much it should matter to you
2Useful: my rating, 1 to 5
2Signal: worth watching, 1 to 5
HooksArea: what it touches
Internal ChangesKind: in v2.1.280,
Internal ChangesSection of the release
What
Hooks (scripts that run automatically at certain points, like before a tool call) now carry a cutAt value: an absolute deadline, separate from the existing budgetMs time budget.
This cutAt value is passed through the internal event object used to dispatch a hook, alongside the existing id, event, payload, environments, leftOut, origin, hookOrigin, raise, and floors fields.
The hook chain runner and its error handling now take this deadline into account, and a hook's per-run timeout can be re-armed (reset) with a new rearm() mechanism.
Why
Giving hooks a hard deadline on top of a soft time budget lets Claude Code enforce a firm cutoff for how long a hook chain can run, while still allowing individual timeouts to be reset when appropriate.