todo-app/lib/sync
Krzysztof kuhy Rudnicki 7564a6569f Surface sync outcomes so devices can't silently diverge
The desktop and phone split-brained for 5 days (39 vs 30 notes) after the
crdt_sync cutover because one device kept running the pre-migration build
— and nothing in the UI ever said a sync had failed or skipped a peer:

- SyncResult now reports peer files that were listed but couldn't be
  fetched/decoded (skippedFiles) instead of dropping them silently.
- Auto-sync no longer swallows errors: every sync (manual or automatic)
  records a persisted last-sync status shown in a status line under the
  editor, with failures in the error color.
- Desktop actually background-syncs now: focus loss (inactive/hidden,
  debounced 5s) triggers a sync — Flutter Linux rarely delivers the
  `paused` event the old code relied on. `paused` still syncs immediately
  for Android.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K5C5jZ2c4mTaGedK7C1dDv
2026-07-16 17:58:41 +02:00
..
github_device_auth.dart Add list filters/sort, status, priority rework, export/import, structured template 2026-06-15 16:52:59 +02:00
local_backup.dart Cut per-keystroke O(N) work to keep capture smooth at scale 2026-07-11 21:51:46 +02:00
notes_markdown.dart Reach 100% test coverage (capture-screen sync DI + plugin/clipboard fakes) 2026-06-15 17:11:01 +02:00
sync_service.dart Surface sync outcomes so devices can't silently diverge 2026-07-16 17:58:41 +02:00
sync_settings.dart Point notes sync at the consolidated syncs monorepo 2026-07-10 14:04:05 +02:00