Context
Sidecar sends its incremental watermark as syncedSinceMillis, but currently derives that watermark from each QSON record's updatedAtMillis in src/main.rs.
Those fields represent different timestamp domains. Mixing them can cause changes to be missed or repeatedly fetched.
Scope
- Confirm the observed LoFi synchronization timestamp semantics using synthetic fixtures and the documented client contract.
- Derive incremental QSO polling watermarks from
syncedAtMillis or authoritative server sync metadata.
- Define inclusive-boundary and missing-timestamp behavior.
- Keep the watermark transactional with normalization and last-good-state persistence.
Acceptance criteria
Related work
Resolve this before or during migration to the shared lofi-client so the existing timestamp mismatch is not carried into the new adapter.
Context
Sidecar sends its incremental watermark as
syncedSinceMillis, but currently derives that watermark from each QSON record'supdatedAtMillisinsrc/main.rs.Those fields represent different timestamp domains. Mixing them can cause changes to be missed or repeatedly fetched.
Scope
syncedAtMillisor authoritative server sync metadata.Acceptance criteria
syncedSinceMillisquery is never populated fromupdatedAtMillis.Related work
Resolve this before or during migration to the shared
lofi-clientso the existing timestamp mismatch is not carried into the new adapter.