{"version":"2.1.275","anchor":"hook-execution-now-tracks-a-per-call-reading-budget-and-re","canonical_anchor":"hook-execution-now-tracks-a-per-call-reading-budget-and-re","heading":"Hook execution now tracks a per-call 'reading budget' and records timing for hooks that never call next()","tier":"internal","area":"Hooks","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.275\/e\/hook-execution-now-tracks-a-per-call-reading-budget-and-re","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.275","markdown":"### Hook execution now tracks a per-call 'reading budget' and records timing for hooks that never call next()\n\nHook execution now tracks a reading budget and logs timing when a hook never calls next()\n\n**Unclear.** What the 'reading budget' controls or limits is not stated in the finding.\n\n**What**\n\nHooks (custom scripts that can run at points in Claude Code's workflow) are invoked with a new `budget` accessor available to their execution context, both in normal runs and in `.catch` error handlers. Separately, Claude Code now detects when a hook produced no downstream calls at all (and wasn't an error handler or a 'hop' handler) and records timing information for that case.\n\n**Why**\n\nThis is internal bookkeeping that gives Claude Code more visibility into hook behavior, particularly hooks that run but never pass control onward, without changing what a hook author needs to do.\n\n- Area: Hooks\n- Tier: Under the hood\n- Useful: 2\/5\n- Signal: 2\/5"}