Release Note
Features
- Batch deletion: select all matching email results and delete them in the background. Per-account permissions are checked in preview and re-checked per batch; accounts you cannot delete from are skipped and reported. Jobs report progress, can be cancelled, and keep a history.
- Deletion tombstones: deleted source UIDs are recorded per mailbox and UIDVALIDITY, so gap-fill and full re-syncs do not re-download deleted mail. Tombstones are included in backups.
- Attachment ZIP export: entries are deduplicated by content hash and described by manifest.jsonl. “Download all” now appears on both email and attachment result pages when the view is narrowed. The CLI gained an explicit format choice, and export jobs persist their real format across restarts.
- WebUI: Czech locale (19 languages total), Bichon mascot on the default sign-in panel, shared OTP input, recovery-code toggle when disabling MFA, and a documentation link in the header.
Fixes
- Inline attachments without Content-ID (#404) — Apple Mail PDFs sentne; filename=… are listed as regular attachments. inline now means theHTML body actually references the part via cid:.
- Pre-2.2.0 attachment blobs (#403) — download, reindex and text re-ede the old encoded layout instead of returning or indexing base64.
- Zero-message indexes (#400) — the startup reindex gate and bichon-admin reindex now recognize an empty index directory; attachment index marker healing runs again.
- Import API — standard base64 is accepted alongside URL-safe base64,ract.
- Sidebar crash under Fast Refresh — the sidebar context no longer gets recreated while mounted consumers hold the old one; dialog accessibility titles were added.
- API docs — POST /api/v1/delete-messages now correctly documents keys envelope UUIDs.
Upgrade Notes
- No data migration or reindex is required.
- Tombstones cover deletions made from 2.4.0 onward. Mail deleted by an older version and still present on the source server can be downloaded again by gap-fill or a
full re-sync; deleting it once under 2.4.0 records the tombstone. - If an archive with pre-2.2.0 attachments was reindexed before 2.4.0, run bichon-admin reindex once to repair attachment text indexed as base64.
- A batch-delete job running during a restart is marked Interrupted aly. Only one batch-delete job runs at a time.
What's Changed
- feat(i18n): add Czech (cs) locale by @kkoudelka in #399
New Contributors
- @kkoudelka made their first contribution in #399
Full Changelog: 2.3.2...2.4.0