Skip to content

DankMail v0.3.5

Choose a tag to compare

@arqueon arqueon released this 17 Sep 21:07
· 16 commits to main since this release

Gmail quota cooldowns now survive account reloads. Long waits return immediately and are scheduled for later, so a throttled account does not hold up manual all-account synchronization or remote search.

  • Keep the weighted quota budget and server cooldowns per account for the lifetime of the daemon.
  • Bound each inline admission wait to 3 seconds and cumulative retry cooldowns to 5 seconds per operation, across all pages and threads.
  • Honor longer Retry-After values when scheduling both background synchronization and queued actions.
  • Record cooldowns from failed writes without replaying writes in the HTTP retry layer.
  • Continue manual sync and remote search with other accounts and report failures afterwards.

Validation: full Go test suite, i18n check, go vet, build, and race tests covering Gmail, synchronization, and command handlers. Regression tests cover a one-hour Retry-After, provider reconstruction, page-wide retry budgets, independent accounts, and queued retry scheduling.

The quota state is held in memory and resets when the daemon exits. Deferred or interrupted synchronization resumes from the last completed durable cursor; incomplete full snapshots are never applied.

Restart the daemon after upgrading: systemctl --user restart dmail or dmail restart.