Two more deadlines a background tab cannot meet

Fixkamo-internal
Shipped
September 7, 2026 at 11:13 PM UTC
Author
Kamo
Commit
c29971f

Swept the app for the failure the notification deck's repeat turned out to be: work whose correctness depends on a timer firing while nobody is looking. Chrome clamps timers in a tab hidden five minutes to one wake-up a minute, so any interval shorter than that is a wish, not a guarantee. The lead pane lock was the other real one and is fixed server-side. These two are the near misses in this repo, both widened rather than rebuilt: - SIP credentials renewed within 60s of expiry, checked on a 30s timer. At one check a minute that is a single chance to hit the window, and a missed one lets the registration lapse — which does not fail loudly, it just stops the phone ringing, in a tab left open in the background, which is where a phone lives. Three minutes of lead time, three chances. (A live call is exempt anyway: WebRTC keeps the page unthrottled. The renewal deliberately runs only when the line is idle, so it is not.) - The lead pane lock now re-asserts itself the moment the tab comes back, rather than waiting out an interval that may be a minute long. Measured, not assumed, and it corrected two guesses. An open WebSocket does NOT exempt a page — but the brokers negotiate 0/0 STOMP heartbeats and never enforce the client's, and inbound frames keep arriving on time, so realtime delivery is unaffected. And writing document.title on a timer DOES exempt a page, which is why TabAttention's tab flash keeps perfect time on its own and needed no change.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing