From 9fdac493c9a6e35f36dc45ff0e13583ddf88605e Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Mon, 14 Sep 2026 13:46:33 +0200 Subject: feat: a Not spam action Backlog item 201. A message in the Spam view had no way back out: spam is one-way and Restore is hidden outside the trash. not_spam moves each message to the folder its moved-from: origin names, falling back to the account's inbox (reported) for provider-caught mail with no origin. The action is labelled "Not junk" on the free Alt+J: every letter of "Not spam" is taken in the Message menu, and Alt+P (Re&ply) and Alt+S (Mark &spam, frozen) are unavailable. restoreResolvedMessages() and the undelete_thread branch are parameterised with the cleared tag and undo description rather than copied, so Delete and Not spam cannot drift. --- README.md | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'README.md') diff --git a/README.md b/README.md index b21c445..62bac67 100644 --- a/README.md +++ b/README.md @@ -595,9 +595,13 @@ From: account re-seeds it only until you pick one yourself. Archive, mark-important and toggle-unread write fixed tags. Delete and spam move the file instead: each adds a fixed tag (`deleted` or `spam`) and records -the folder the file left in a `moved-from:` origin. For anything else, -**Ctrl+T** opens a dialog over the selected threads: type tags to add or -remove, separated by commas, or clear a checkbox to drop a tag already present. +the folder the file left in a `moved-from:` origin. Restore (in the +trash) and Not junk (in the spam folder) are their inverses: each moves the +message back to the folder its origin names, and mail caught by a provider with +no origin at all goes to the account's inbox, which the status line reports. For +anything else, **Ctrl+T** opens a dialog over the selected threads: type tags to +add or remove, separated by commas, or clear a checkbox to drop a tag already +present. Both fields complete against every tag in your database, which is a guard against typing `shoppping` beside `shopping`, not a restriction: a tag that does @@ -778,9 +782,9 @@ Defaults, all rebindable through `[keys]`: | `Ctrl+Q` | `quit` | Quit | Every action in this table carries a default binding, and every one appears in -a menu. Six actions carry none, because a chord for them would be arbitrary: -Check for stranded spam, Empty trash, Delete permanently, Empty spam, Edit -draft and Save message. They are reachable from the menus, and the shortcut +a menu. Seven actions carry none, because a chord for them would be arbitrary: +Check for stranded spam, Empty trash, Delete permanently, Empty spam, Not junk, +Edit draft and Save message. They are reachable from the menus, and the shortcut reference prints them as unbound. **Help > Keyboard shortcuts** lists the current bindings, generated from the actions themselves, so it shows your overrides rather than these defaults. -- cgit v1.2.3