LibreMail is an offline-first Android email client. IMAP is currently connect-per-operation (connection reuse, issue #125, is OFF by default); full-history backfill (issue #12) prefetches message bodies + attachments on unmetered networks (default FetchPolicy.WIFI_ONLY). A perf drilldown found this opens roughly 1 + K + attachments separate authenticated connections per backfill page, saturating a provider's connection/bandwidth budget and starving interactive message-opens. These tickets track making LibreMail's connection/request patterns and data usage respect each major provider's documented limits and degrade gracefully under throttling. (Outlook/Hotmail uses the Microsoft Graph REST API; Gmail, Yahoo/AOL, and iCloud use IMAP/SMTP.)
Documented limits
15 max simultaneous IMAP connections.
2,500 MB/day download.
500 MB/day upload.
10,000 messages per label.
10,000 labels.
Optimization levers
Cap the per-account connection pool with headroom below 15 (reserve at least 1 for interactive opens).
Land connection reuse (#125/#357) so backfill/prefetch stop opening 1+K+attachments sockets.
Track cumulative daily download bytes and throttle/defer prefetch as the 2,500 MB budget is approached.
Use the 10k-per-label figure as the backfill denominator.
Depends on
Depends on / see the throttling-backoff umbrella issue #360.
## Context
LibreMail is an offline-first Android email client. IMAP is currently connect-per-operation (connection reuse, issue #125, is OFF by default); full-history backfill (issue #12) prefetches message bodies + attachments on unmetered networks (default `FetchPolicy.WIFI_ONLY`). A perf drilldown found this opens roughly `1 + K + attachments` separate authenticated connections per backfill page, saturating a provider's connection/bandwidth budget and starving interactive message-opens. These tickets track making LibreMail's connection/request patterns and data usage respect each major provider's documented limits and degrade gracefully under throttling. (Outlook/Hotmail uses the Microsoft Graph REST API; Gmail, Yahoo/AOL, and iCloud use IMAP/SMTP.)
## Documented limits
- 15 max simultaneous IMAP connections.
- 2,500 MB/day download.
- 500 MB/day upload.
- 10,000 messages per label.
- 10,000 labels.
## Optimization levers
- Cap the per-account connection pool with headroom below 15 (reserve at least 1 for interactive opens).
- Land connection reuse (#125/#357) so backfill/prefetch stop opening `1+K+attachments` sockets.
- Track cumulative daily download bytes and throttle/defer prefetch as the 2,500 MB budget is approached.
- Use the 10k-per-label figure as the backfill denominator.
## Depends on
Depends on / see the throttling-backoff umbrella issue #360.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Context
LibreMail is an offline-first Android email client. IMAP is currently connect-per-operation (connection reuse, issue #125, is OFF by default); full-history backfill (issue #12) prefetches message bodies + attachments on unmetered networks (default
FetchPolicy.WIFI_ONLY). A perf drilldown found this opens roughly1 + K + attachmentsseparate authenticated connections per backfill page, saturating a provider's connection/bandwidth budget and starving interactive message-opens. These tickets track making LibreMail's connection/request patterns and data usage respect each major provider's documented limits and degrade gracefully under throttling. (Outlook/Hotmail uses the Microsoft Graph REST API; Gmail, Yahoo/AOL, and iCloud use IMAP/SMTP.)Documented limits
Optimization levers
1+K+attachmentssockets.Depends on
Depends on / see the throttling-backoff umbrella issue #360.