replace gmail resync with Gmail REST API, remove mbsync dependency

First sync still uses IMAP with app password. Subsequent syncs use
Gmail API history.list + messages.get with OAuth for faster, more
reliable incremental sync. Dispatch gmail-sync handler for gmail
accounts instead of generic email-sync. Show sync button for synced
accounts.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-12 07:24:44 +00:00
co-authored by Claude Opus 4.6
parent ee1b816d66
commit 24ac7ac796
5 changed files with 382 additions and 489 deletions
@@ -210,7 +210,7 @@ export const EmailAccounts = () => {
{account.status === 'queued' && (
<span className="text-xs text-duck-dark/50 dark:text-foreground/50">Waiting...</span>
)}
{account.status === 'connected' && (
{(account.status === 'connected' || account.status === 'synced') && (
<Button
type="button"
variant="outline"
@@ -224,7 +224,7 @@ export const EmailAccounts = () => {
) : (
<RefreshCw className="h-3 w-3" />
)}
Initial Sync
Sync
</Button>
)}
<button