Case 03
Delta, not a second download
Problem
Home can open again a minute later. Downloading every client, task, and note on that open makes the first screen wait, and it still loses updates that happened on another device. A closed socket is also a bad signal. The socket did not carry the records. If the screen treats “socket closed” as “data failed”, it hides a cache that is still the last good copy.
Context
A new device does not bootstrap the whole work set. Identity, work policy, and the dashboard come first. Later changes arrive as delta pages for a module set. Each page is taken from a checkpoint token, applied, then the next page is taken from the token that page returned. The socket only invalidates. The client then pulls.
The checkpoint is chosen in order. The exact token for that module set. If a newer token already covers every requested module, that covering token wins. A token for a sibling module does not count as covering. If the work module has never been initialized, the starter baseline is the start, so the delta does not pretend the local table is complete. An invalid token is deleted. That checkpoint is expired, and the module is reset instead of applying a page with a hole in it. The server can also name reset modules. An ordinary event page is not enough for those. The local set for that module is stale.
What I owned
[I made the screen follow checkpoint, delta, and reset instead of treating a short list as the truth.]
Interface decisions
Before a module has a usable checkpoint, its card is a skeleton. The copy does not say the account is empty. After the delta page lands, the card shows the new count and the new rows, including a change made on another device. If the server marks the module for reset, the old rows are not left on screen as if they were current. The card waits for the rebuilt module. A dropped socket does not replace the card with an error. The last applied cache stays, and the next successful pull moves it. Two refreshes at once share one sync. The second does not start a second delta from an older token. A list request that was already in flight does not get written after a newer delta for that same module.
What I chose not to do
I did not push full records through the socket. The socket is a hint. I did not redownload every work module on each home open. I did not reuse the tasks token as the notes cursor. A sibling checkpoint would skip or repeat the wrong changes.
Quality
Change a task on a second device. The first device updates that task and its count without a full client download. Expire the token. The module resets and does not keep a silent gap. Cut the socket. The last cache stays, and the card is not an error. Pull to refresh twice. One delta runs. [I verified these paths on home and on one list.]
Result
Opening the app applies what changed. It does not fetch the world again, and it does not paint a hole as an empty account.
Next
[Say which module is still waiting for its first checkpoint. After a reset, show that the card is rebuilding rather than simply loading.]