| Age | Commit message (Expand) | Author | Files | Lines |
| 5 days | fix(worker): read the mail root, not the index directory | Danilo M. | 2 | -6/+160 |
| 6 days | feat(pane): move the copy confirmation into the message pane | Danilo M. | 1 | -7/+119 |
| 6 days | fix(worker): give a moved message a fresh maildir name | Danilo M. | 2 | -5/+178 |
| 6 days | feat(pane): offer Select all, and report what a copy copied | Danilo M. | 1 | -0/+93 |
| 6 days | fix(trash): refresh the list when a restore empties a rowdelete-to-trash | Danilo M. | 1 | -0/+175 |
| 6 days | test: assert a move that relocates nothing writes no tag | Danilo M. | 1 | -0/+67 |
| 6 days | i18n: translate the trash strings, and document the trash key | Danilo M. | 1 | -4/+13 |
| 6 days | feat: find mail tagged deleted but never moved to trash | Danilo M. | 1 | -0/+206 |
| 7 days | feat(delete): bind Del, and resolve a restore against the database | Danilo M. | 1 | -3/+75 |
| 7 days | feat(trash): restore mail from the trash view | Danilo M. | 1 | -0/+211 |
| 7 days | fix(delete): repair seven defects in the move-to-trash path | Danilo M. | 1 | -14/+765 |
| 7 days | fix(tags): let a tag be removed even when its name breaks the rules | Danilo M. | 1 | -0/+57 |
| 8 days | feat(delete): move the message to the account's trash folder | Danilo M. | 1 | -20/+395 |
| 8 days | feat(worker): move messages between maildir folders | Danilo M. | 1 | -0/+144 |
| 8 days | feat(config): add the trash query generator | Danilo M. | 2 | -5/+66 |
| 8 days | feat(config): warn when an account configures no trash folder | Danilo M. | 1 | -11/+45 |
| 8 days | feat(config): read a per-account trash folder | Danilo M. | 1 | -0/+30 |
| 8 days | feat(rules): show each rule's note in the rule list | Danilo M. | 1 | -0/+69 |
| 8 days | fix(ui): drop the browser's own actions from the message pane menu | Danilo M. | 1 | -0/+80 |
| 8 days | fix(ui): make Important a toggle, like Delete and Toggle unread | Danilo M. | 1 | -0/+129 |
| 9 days | feat(ui): act on the message a row displays, not its whole thread | Danilo M. | 4 | -14/+1778 |
| 10 days | feat(ui): open a thread on its own by double-clicking a row | Danilo M. | 1 | -0/+142 |
| 10 days | fix(sync): send held edits before the sync-end refresh reads the database | Danilo M. | 1 | -0/+95 |
| 10 days | fix(sync): re-arm the automatic sync when it skips a concurrent run | Danilo M. | 1 | -0/+62 |
| 10 days | fix(ui): load a thread that was already displayed when the query ran | Danilo M. | 1 | -1/+104 |
| 10 days | feat(ui): highlight the built-in filter matching the current view | Danilo M. | 1 | -0/+129 |
| 10 days | feat(i18n): add a language key overriding the system locale | Danilo M. | 1 | -0/+81 |
| 10 days | feat(i18n): wire translations and ship an Italian one (item 22) | Danilo M. | 3 | -0/+329 |
| 10 days | test(config): pin the dotted account key for startup_account | Danilo M. | 1 | -0/+48 |
| 10 days | feat(startup): add startup_account, the account the dropdown opens on | Danilo M. | 2 | -0/+134 |
| 10 days | fix(startup): let startup_query name a built-in filter, and run it | Danilo M. | 2 | -11/+161 |
| 10 days | fix(filters): label the flagged filter Important, and give the four icons | Danilo M. | 2 | -21/+86 |
| 10 days | fix(queries): make a query in the overflow menu runnable | Danilo M. | 1 | -0/+69 |
| 10 days | feat(filters): put the four built-in filters on the query row | Danilo M. | 2 | -31/+390 |
| 10 days | feat(filters): resolve built-in filters per account | Danilo M. | 1 | -0/+136 |
| 10 days | fix(status): count threads as they arrive instead of "Searching..." | Danilo M. | 1 | -0/+99 |
| 11 days | Revert the message-scoped auto mark-read | Danilo M. | 1 | -210/+0 |
| 11 days | fix(read): repaint the card when one message is marked read | Danilo M. | 1 | -0/+58 |
| 11 days | fix(read): auto mark-read touches only the message on screen | Danilo M. | 1 | -0/+152 |
| 11 days | test(worker): cover the Sent view's matched-message branch | Danilo M. | 1 | -0/+37 |
| 11 days | feat(pane): always render one message, never the conversationthread-view-removed | Danilo M. | 2 | -0/+97 |
| 11 days | docs: close item 36, narrow item 66 with a negative result | Danilo M. | 1 | -2/+5 |
| 11 days | test(mainwindow): give it a real worker, and probe item 66 | Danilo M. | 1 | -4/+199 |
| 11 days | fix(startup): raise the config-problem modal outside the constructor | Danilo M. | 1 | -0/+35 |
| 11 days | feat(search): offer Exclude from search in both menus | Danilo M. | 1 | -0/+39 |
| 11 days | refactor(search): carry SearchMode instead of bool extend | Danilo M. | 3 | -10/+15 |
| 11 days | feat(search): add SearchTerm::exclude | Danilo M. | 1 | -0/+39 |
| 11 days | feat(search): run a search asked for from the message pane | Danilo M. | 2 | -0/+116 |
| 11 days | feat(details): rebuild the message details dialog as rows | Danilo M. | 2 | -0/+183 |
| 11 days | feat(search): search for the selected body text | Danilo M. | 1 | -0/+34 |