super-productivity/docs/long-term-plans
Johannes Millan 0aa2941947
docs(sync): note local-file rev-check/write is non-atomic (#8898) (#8902)
Record the LocalFile check-then-write TOCTOU race as an accepted limitation
and correct stale references in the reliability doc:

- §5 documents the non-atomic rev-check + write as an accepted limitation,
  honestly scoping each mitigation: the upload lock only serializes a single
  client's own uploads (not across machines); the mismatch-fallback catches only
  a concurrent write visible at check time (never force-overwriting), so a write
  landing inside the check→write window can still be lost; .bak recovery is
  best-effort and only covers a corrupt/interrupted primary, not a valid
  concurrent overwrite or a fully-missing one.
- Distinguishes torn writes (prevented on Electron via temp-file + renameSync;
  still in-place on Android SAF) from the CAS race (not closed by atomic rename;
  needs OS-level CAS, left accepted).
- §1 corrected: _uploadWithRetry()/:474/"retries once" → current
  _uploadWithMismatchFallback with _MAX_UPLOAD_RETRIES=2 (3 attempts), and clarify
  that genuine concurrency throws immediately rather than exhausting retries.
2026-07-10 17:31:24 +02:00
..
android-background-sync-improvements.md feat(droid): background sync notifications for android 2026-03-20 10:24:02 +01:00
calendar-two-way-sync-technical-analysis.md docs: clean up and organize project documentation 2026-03-10 10:22:56 +01:00
location-based-reminders.md refactor(backup): unify backup filename format (#7141) 2026-04-21 14:09:09 +02:00
multi-client-file-sync-reliability.md docs(sync): note local-file rev-check/write is non-atomic (#8898) (#8902) 2026-07-10 17:31:24 +02:00
plugin-view-adapter-api.md docs: clean up and organize project documentation 2026-03-10 10:22:56 +01:00
secure-storage.md docs(security): revise secure-storage plan after multi-agent review 2026-07-03 18:21:16 +02:00
server-side-entity-versioning.md docs(sync): consolidate sync docs + enforce the contributor model 2026-05-15 16:51:50 +02:00
supersync-encryption-at-rest.md refactor: retire GET /api/sync/snapshot, re-scope GET /api/sync/status as diagnostic (#8496) 2026-06-20 12:02:58 +02:00
sync-core-simplification-roadmap.md docs: clean up and organize project documentation 2026-03-10 10:22:56 +01:00
sync-provider-plugins.md refactor(sync): finish package extraction polish 2026-05-13 14:11:15 +02:00