diff --git a/TODO.md b/TODO.md index a3f22dd1..28d02481 100644 --- a/TODO.md +++ b/TODO.md @@ -59,6 +59,19 @@ Deferred work. Context: Officer is collapsing from multi-tenant / open-source-re - [x] **`busy_timeout` on the email db** (done 2026-07-24, `9527e0b`). API + email sidecar share `emails.db`; wait out a concurrent writer instead of 500-ing with "database is locked". +- [ ] **Multiple views in the Email screen (tabs).** The screen grows beyond the current mailbox into + several switchable views: + - [ ] **Sender/domain management view.** Left panel: controls to group mail **by sender** or **by + domain** (room for more grouping axes later). From a group, run bulk actions on that + sender/domain: **unsubscribe + mark irrelevant**, **delete all mail** from it, **block/ignore + future incoming**, etc. Think "inbox cleanup / triage" — operate on a whole sender at once. + - Needs: aggregate query (count/size per sender + per domain), a block/ignore list the + sync/IDLE path honors on incoming, an unsubscribe action (List-Unsubscribe header / link), + and bulk delete over a sender/domain. + - [ ] **Chat view.** The existing AI email-assistant flow — likely stays roughly as-is, just lives + as one of the tabs (main view). + - Open question: tabs vs. some other view switcher; which view is default. + ## Known bugs - [ ] **`bootstrap.ts` runs `npm install -g` for Pi on every boot.** `findPiPackageDir` checks stale