You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Deliver adaptive native inbox, account folders, categories, search, conversation reading, and optimistic actions using server contracts and the offline cache.
Scope
Build iPhone stack and iPad split navigation, virtualized lists, account switching, categories, search operators, safe HTML mail rendering, remote-image control, pull to refresh, selection, swipe and bulk actions, offline and resync states.
Tasks
Define Swift 6 models, actors, storage, API, and UI boundaries for this scope.
Implement the smallest complete native capability.
Add XCTest, Swift Concurrency, migration, UI, accessibility, and device tests where applicable.
Update generated clients, translations, privacy declarations, and distribution documentation.
Acceptance criteria
Gmail, Microsoft, and IMAP accounts display without cross-account thread merging.
Search supports the documented operators and respects offline availability.
Remote content remains blocked by default and unsafe HTML cannot escape isolation.
Actions are idempotent, accessible, localized, and reconcile after offline use.
Account isolation, data protection, accessibility, EN default, and ES completeness match the web and macOS contracts.
Tokens, credentials, message content, recipients, and personal data never enter logs, crash reports, screenshots, fixtures, URLs, or notification defaults.
The capability is independently reviewable and rollback-safe.
Validation
Run reducer or view-model, cache, generated client, HTML security, VoiceOver, Dynamic Type, iPhone, iPad, offline, rotation, and provider E2E tests.
Run Swift build, XCTest, strict concurrency checks, generated-client diff, and the affected simulator and physical-device UI tests.
Use sanitized fixtures and protected accounts only for final manual provider validation.
Offline state, background execution, notification privacy, generated contracts, and device credentials can diverge from server truth. Use actors, Keychain, bounded caches, explicit conflict states, and real-device validation.
Out of scope
Composer, attachments, APNs, widgets, calendar, and post-1.0 productivity features.
Plan reference
Post-1.0 — iPhone and iPad: core mail experience.
Objective
Deliver adaptive native inbox, account folders, categories, search, conversation reading, and optimistic actions using server contracts and the offline cache.
Scope
Tasks
Acceptance criteria
Gmail, Microsoft, and IMAP accounts display without cross-account thread merging.
Search supports the documented operators and respects offline availability.
Remote content remains blocked by default and unsafe HTML cannot escape isolation.
Actions are idempotent, accessible, localized, and reconcile after offline use.
Account isolation, data protection, accessibility, EN default, and ES completeness match the web and macOS contracts.
Tokens, credentials, message content, recipients, and personal data never enter logs, crash reports, screenshots, fixtures, URLs, or notification defaults.
The capability is independently reviewable and rollback-safe.
Validation
Run reducer or view-model, cache, generated client, HTML security, VoiceOver, Dynamic Type, iPhone, iPad, offline, rotation, and provider E2E tests.
Run Swift build, XCTest, strict concurrency checks, generated-client diff, and the affected simulator and physical-device UI tests.
Use sanitized fixtures and protected accounts only for final manual provider validation.
Dependencies
Post-1.0 work. Blocked until Mailflow 1.0.0 is released: https://github.com/Tutitoos/mailflow/milestone/9
Risks
Offline state, background execution, notification privacy, generated contracts, and device credentials can diverge from server truth. Use actors, Keychain, bounded caches, explicit conflict states, and real-device validation.
Out of scope