Skip to content

0.0.25

Latest

Choose a tag to compare

@github-actions github-actions released this 18 Jun 14:11
Timer-phase-independent watchdog + HTTP timeouts

Deep dive found the recurring detection freeze: the old watchdog was a
setInterval, so whatever wedges the JS timer phase (a nested native run
loop around the meeting UI work) froze the poll loop AND the watchdog
together — which is why neither a heartbeat nor a "watchdog restarting"
line ever appeared.

- Drive the watchdog from setImmediate (libuv check phase) too, so it
  keeps cycling even when setTimeout/setInterval are dead, and recover by
  rebuilding fresh timers + polling directly off setImmediate. Verified it
  recovers with the timer phase fully stubbed dead.
- Fix a per-poll setTimeout leak in _micMac (clear the kill timer on the
  normal path; unref; guard child 'error').
- tpclient: 20s request timeout + req.destroy so a hung DNS/TP call can't
  hang a promise or leak a socket forever (the c-ares frames in the freeze
  sample). updateTotals no longer stacks overlapping fetches.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>