fix: incremental IMAP sync - only fetch new UIDs since last known, like real mail clients

- imap_sync_folder now searches only UID > max_known_uid instead of ALL
- First sync gets last 50, subsequent syncs only get new mails
- UI loads cached mails immediately from DB, sync runs in background
- Folder counts updated after sync
This commit is contained in:
Agent Zero
2026-07-20 12:12:53 +02:00
parent 3313047577
commit 61ab481349
2 changed files with 61 additions and 9 deletions
+2 -2
View File
@@ -169,7 +169,7 @@ export function MailPage() {
loadMails();
}, [loadMails]);
// Handle folder selection — derive account from folder + trigger live IMAP sync
// Handle folder selection — derive account from folder + trigger background IMAP sync
const handleSelectFolder = useCallback(
(folderId: string) => {
setSelectedFolderId(folderId);
@@ -182,7 +182,7 @@ export function MailPage() {
setSelectedMail(null);
setSelectedMailIds(new Set());
setActiveView('list');
// Live sync: fetch new mails from IMAP server immediately
// Live sync: fetch new mails from IMAP in background, reload after
syncFolder(folderId).then(() => {
loadMails();
loadAllFolders();