···11# Changelog
2233+## 2026-04-01
44+- **Threaded inbox** — related emails are automatically grouped in the inbox list with a Twitter-style vertical connector line (`│`/`╰`); threads detected via `In-Reply-To`/`Message-ID` IMAP envelope headers with a reply-prefix subject fallback (only emails with `Re:`, `AW:`, `Fwd:` etc. are grouped by subject — recurring notifications/invoices stay separate); newest reply on top, root at bottom; threads sorted by most recent email so active conversations float to the top
55+- **Clickable tabs** — folder tabs in the top bar are clickable with the mouse; click any tab to switch folders
66+- **Spell check in pre-send (`s`)** — opens nvim with spell checking enabled (`en_us` + `de`), cursor jumps to the first misspelled word; use `]s`/`[s` to navigate errors, `z=` for suggestions, `zg` to add to dictionary; corrected body flows back to pre-send
77+- **`:debug` / `:dbg` command** — writes a diagnostic report covering IMAP connectivity (ping test), account config (emails masked), folder mapping, screener list status, UI config, and current state; opens in the reader and saves to `/tmp/neomd/debug.log` for sharing; no sensitive data (passwords, full emails) included
88+- **Drafts show recipient** — Drafts folder now shows `→ recipient` instead of From (same as Sent tab), since all drafts are from you
99+- **`ctrl+b` in pre-send** — toggle CC/BCC fields from the pre-send review screen (previously only available during compose)
1010+- **`u` / `U` rebind** — `u` is now free for page-up (vim-style half-page scroll); `U` is undo last move/delete; `ctrl+u` clears all marks
1111+- **Temp files in `/tmp/neomd/`** — all temp files (compose, preview, spell check) now live in `/tmp/neomd/` subdirectory for easy recovery after crashes and less clutter
1212+313## 2026-03-31
44-- **Threaded inbox** — related emails are automatically grouped in the inbox list with a Twitter-style vertical connector line (`│`/`╰`); threads detected via `In-Reply-To`/`Message-ID` IMAP envelope headers with a normalized-subject + participant overlap fallback; newest reply on top, root at bottom; threads sorted by most recent email so active conversations float to the top; thread connector colored subtly in the Kanagawa border color
514- fix showing recipient in SENT tab (instead of from)
615- **IMAP search across all folders (`space /` or `:search`)** — server-side IMAP SEARCH across all configured folders (Inbox, Sent, Archive, Feed, etc.); results displayed in a temporary "Search" tab with `[Folder]` prefix on each subject; supports query prefixes: `from:simon`, `subject:invoice`, `to:team@`, or plain text to search all three fields; press `esc` to close results
716- **Filter preserves across actions** — the local `/` filter no longer clears when pressing `n` (toggle read), `m` (mark), `U` (clear marks), or sorting; filter stays active until `esc`
+4-2
internal/ui/keys.go
···5555 {"Mw", "move to Waiting"},
5656 {"Mm", "move to Someday"},
5757 }},
5858- {"Multi-select", [][2]string{
5858+ {"Multi-select & Undo", [][2]string{
5959 {"m", "mark / unmark email + advance cursor"},
6060 {"ctrl+u", "clear all marks"},
6161 {"U", "undo last move or delete (reverses x, A, M* — not screener actions)"},
···8383 {"shift+R", "reply-all — reply to sender + all CC recipients (from reader)"},
8484 {"f", "forward email (from reader or inbox)"},
8585 {"c", "compose new email"},
8686- {"ctrl+b (compose)", "toggle Cc+Bcc fields (both hidden by default)"},
8686+ {"ctrl+b (compose/pre-send)", "toggle Cc+Bcc fields (both hidden by default)"},
8787 {"ctrl+f (compose/pre-send)", "cycle From address through all accounts + [[senders]] aliases"},
8888 {"a (pre-send)", "attach file via yazi file picker (or $NEOMD_FILE_PICKER)"},
8989 {"D (pre-send)", "remove last attachment"},
9090 {"d (pre-send)", "save to Drafts folder (IMAP APPEND with \\Draft flag)"},
9191+ {"s (pre-send)", "spell check — open in nvim with spell on, jump to first error"},
9192 {"p (pre-send)", "preview email in $BROWSER (images rendered, same as recipient sees)"},
9293 {"e (pre-send)", "re-open editor to edit body"},
9394 {"enter (pre-send)", "confirm and send"},
···113114 {":empty-trash / :et", "permanently delete ALL emails in Trash (y/n)"},
114115 {":create-folders / :cf", "create missing IMAP folders from config (safe, idempotent)"},
115116 {":go-spam / :spam", "open Spam folder (not in tab rotation)"},
117117+ {":debug / :dbg", "diagnostic report — IMAP ping, config, folders, state (saved to /tmp/neomd/debug.log)"},
116118 {":quit / :q", "quit neomd"},
117119 }},
118120 {"Composing", [][2]string{