✨ New Features
- New Documentation Site - A dedicated documentation site is now available at https://s1t5.github.io/mail-archiver/
- Dashboard Period & Direction Selection - The dashboard charts can be switched between hours, days, months and years over a selectable period
- Incoming/Outgoing Counter Splits - The dashboard counters carry their received and sent parts, and the account card the number of distinct mail domains
⚙️ Improvements
- Encrypted Mail Account Credentials - IMAP passwords, M365 client secrets and MSA OAuth tokens can now be encrypted at rest. See documentation here.
- Pre-computed Dashboard Statistics - A new background service (
DashboardStatsRefreshService) periodically computes the expensive dashboard aggregates (totals, per-account counts, monthly histogram, top senders, database size) into a newDashboardStatsCachetable. - Dashboard Cache Stampede Protection - Concurrent cold dashboard requests no longer each run the full statistics workload; a per-key semaphore makes them share a single computation. Chart selections share the same protection, so several tabs or users landing on the same chart compute it once.
- Faster Account Storage Refresh - The storage refresh now sums
pg_column_sizeper column instead of per row, so it no longer loads the mail bodies from disk. The displayed values are unchanged. - Documentation Link in Footer - A localized link to the documentation site was added to the footer in all supported languages.