The hooks worker watchdog now waits for several missed heartbeats before declaring it stuck, not just one
Claude Code runs hooks (custom scripts that run at certain points, like before or after a tool call) in a separate worker process. A background daemon checks that this worker is still alive by sending it periodic heartbeat pings and waiting for a response. Previously, a single unanswered ping (based on how much time had passed) was enough to declare the worker wedged. Now the daemon counts consecutive missed heartbeats and only declares the worker stuck once that count crosses a threshold.
A hook that briefly spins without yielding could previously trip the watchdog on one slow beat and get flagged as wedged even though it was still working. Tolerating multiple missed beats reduces false positives while still catching a genuinely stuck hooks worker.