fix: IMAP full sync via UID SEARCH+FETCH; add sync log UI

- Replace full-sync fetchMessages(1:*) with UID SEARCH ALL + UID FETCH
  so every message gets a reliable UID on all servers
- Guard CONDSTORE select on server capability to avoid BAD from
  servers that do not advertise CONDSTORE/QRESYNC
- Add SyncLogEntry model + observeSyncLogs stream to SyncLogRepository
- Add SyncLogScreen with per-entry duration/error display
- Wire history icon in SettingsScreen → /accounts/:id/sync-log route
- Fix FakeImapClient to expose initialized serverInfo via field override

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Thomas Güttler
2026-04-21 07:43:30 +02:00
co-authored by Claude Sonnet 4.6
parent 733da201ee
commit 6a457a9f7a
10 changed files with 226 additions and 51 deletions
+18
View File
@@ -1,11 +1,29 @@
# Later
done?
think about that: Maybe we should not mock jmap/imap/smtp. We have a temproary Stalwart.
Just like mocking DB in Django makes no sense.
---
Try Qwen, vscode plugin
---
test/unit/fake_imap.dart
Why is that still needed? We have Stalwart.
---
du -a | sort -rn | head
Why is the directory so big? 4 GByte?
---
After Try Connection, show some matching icon next to the text.
---