feat(store): add an incremental sync engine driven by server sync ids
Add `sync/sync-engine.ts`, which keeps the last applied sync id in a new `sync_meta` SQLite table (migration 0039), bootstraps from `/sync/state` plus the existing snapshot endpoints, and then pages through `/sync/delta` on launch, foreground, reconnect, a 60 s interval and after the transaction queue receives an acknowledgement. Subscription, collection and timeline actions are applied to the stores and SQLite, pending local marks keep precedence through the transaction queue overlays, and unread counts are refreshed once per pull. A 404 from the sync endpoints keeps today's full refetch behaviour for the session. Both apps expose the endpoints through `followClient.request` until the client SDK release with the `sync` module lands. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
D
DIYgod committed
247a9294ead0e9c09429f860fd0950c207ca32f6
Parent: 93b83f9