A scan's not-due notices overflow the live-update stream #197
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Every scan sends a
feed_skip"not due for ..." event for each of the ~1,535 feeds not due (src/main.rs:1241), in a tight loop, into a broadcast channel of 1,024 (src/main.rs:331). When the page's/api/eventsstream is slow to read (a phone in the background, a full TCP window), the channel overflows and the listener skips the oldest events.ipx_events_missed_totalrose by 133 between 18:07 and 19:07 UTC and by 310 around 20:06 UTC on 2026-10-11, with one listener, after scans of 1 feed:.claude/skills/ipx-prod-check/query.py prom 'ipx_events_missed_total{job="ipx"}'. The skipped events are mostly those notices, which the page uses only to clear a spinner it never set for a feed not due (web/src/events.ts:52), so little is lost now, but the counter meant to show pages with stale counts is mostly this noise, and with a few more feeds the overflow reaches thefeed_doneanddownload_donethat follow. The socket log already drops these (src/ipc.rs:144). Fix: do not broadcast not-due skips, or one summary event per scan.Fixed in
12fadbd:Emitter::emitno longer broadcasts the not-duefeed_skip(the log and the terminal still get it), so a scan sends a page only what changed. Test:a_feed_not_due_stays_off_the_live_updates. Deployed at 20:13 UTC;ipx_events_missed_totalshould stay at 0 from here.