feat: IMAP CONDSTORE fast-path, JMAP blob TTL, offline compose queue UI
- IMAP CONDSTORE (RFC 7162): skip sync when HIGHESTMODSEQ is unchanged; refresh only changed flags via CHANGEDSINCE on incremental sync - JMAP blob expiry: re-fetch email bodies older than 7 days (schema v8→v9 adds nullable cachedAt column to email_bodies) - Offline compose queue: expose stuck pending_changes rows via observeFailedMutations / retryMutation / discardMutation; surface them in a FailedMutationBanner on the mailbox list screen - Unit tests for all three features (236 passing) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
650c7a70f5
commit
d5a5c7fbe3
@@ -190,6 +190,16 @@ class FakeEmailRepository implements EmailRepository {
|
||||
@override
|
||||
Stream<void> watchJmapPush(String accountId, String password) =>
|
||||
const Stream.empty();
|
||||
|
||||
@override
|
||||
Stream<List<FailedMutation>> observeFailedMutations(String accountId) =>
|
||||
Stream.value([]);
|
||||
|
||||
@override
|
||||
Future<void> discardMutation(int id) async {}
|
||||
|
||||
@override
|
||||
Future<void> retryMutation(int id) async {}
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user