mirror of
https://github.com/RSSNext/Folo.git
synced 2026-10-16 20:51:43 +08:00
141567e928
A `/reads` recount taken while new-entry hints were still hidden behind a stale KV head already counted those entries; when the hints arrived with the next pull their increments were added on top, and the reads that followed left the hint values behind as phantom unread counts. The engine now keeps the sync id an unread snapshot reflects (`unreadSnapshotSyncId`, from the `/reads` answer or `/sync/state` read just before) and applies the counter part of `N`, `U` and `inbox_entry` `D` actions only above it. A refresh the user asks for recounts through the engine, and the list-versus-counter check also fires when a fully loaded unread-only list shows fewer unread entries than the counter. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>