Skip to content

feat(ios): build inbox search conversations and actions #78

Description

@Tutitoos

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

  • 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.

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

  • Composer, attachments, APNs, widgets, calendar, and post-1.0 productivity features.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:iosSwift iPhone and iPad applicationpriority:p2Normal prioritystatus:blockedBlocked by a recorded dependency or decisiontype:featureNew user-visible capability

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions