All Subscriptions shows unread items that have been read, until the page is reloaded #168
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?
Reported 2026-10-09: All Subscriptions said 1 unread when there was none. The server agreed with the user: /api/feeds summed to 0 unread across 147 feeds, and /api/entries?filter=unread had none.
The badge is the page's own sum of each feed's unread count (web/src/feeds.ts, unreadAll over S.feeds). The page loads that list once and then only patches it from feed_row events, which the server sends when a scan or a download changes a feed. Nothing is sent for an item read, everything marked read or a feed unsubscribed, so another page open as the same person (another device, another tab, a script using the API) keeps its old counts, and an unsubscribed feed's row stays in it for good. Nothing reloads the list when the page comes back into view either, and on an iPhone home-screen app iOS stops the event stream while the app is in the background, so whatever happened meanwhile is missed altogether and the stream's reconnect does not catch up.
Fix: take the feed list and the open list again whenever the page comes back into view, and when the event stream reconnects after it dropped.
Fixed in
4e41738: the page takes the feed list and the open list again when it comes back into view and when the event stream reconnects after a drop. A browser test reads an item behind the page's back and checks the badge follows; it fails without the fix. Deployed as 0.10.3-dev.