| Age | Commit message (Expand) | Author | Files | Lines |
| 5 days | feat(compose): render markdown bodies with cmark-gfm, item 123 | Danilo M. | 3 | -1/+133 |
| 5 days | refactor(ui): extract the busy indicator into a widget, item 134 | Danilo M. | 5 | -12/+129 |
| 5 days | fix(pane): drop Save link from a link's context menu | Danilo M. | 1 | -0/+20 |
| 5 days | fix(pane): open a target="_blank" link, and drop the dead link actions | Danilo M. | 2 | -1/+177 |
| 5 days | fix(worker): read the mail root, not the index directory | Danilo M. | 1 | -4/+26 |
| 6 days | feat(pane): move the copy confirmation into the message pane | Danilo M. | 2 | -3/+135 |
| 6 days | fix(worker): give a moved message a fresh maildir name | Danilo M. | 1 | -4/+73 |
| 6 days | feat(pane): offer Select all, and report what a copy copied | Danilo M. | 2 | -4/+81 |
| 6 days | fix(trash): refresh the list when a restore empties a rowdelete-to-trash | Danilo M. | 1 | -0/+23 |
| 6 days | feat: find mail tagged deleted but never moved to trash | Danilo M. | 3 | -0/+69 |
| 7 days | feat(delete): bind Del, and resolve a restore against the database | Danilo M. | 6 | -6/+232 |
| 7 days | feat(trash): restore mail from the trash view | Danilo M. | 5 | -10/+192 |
| 7 days | fix(delete): repair seven defects in the move-to-trash path | Danilo M. | 2 | -64/+475 |
| 7 days | feat(worker): resolve whole threads to their messages, ids and paths | Danilo M. | 2 | -0/+93 |
| 7 days | fix(tags): let a tag be removed even when its name breaks the rules | Danilo M. | 1 | -10/+19 |
| 8 days | feat(delete): move the message to the account's trash folder | Danilo M. | 6 | -2/+536 |
| 8 days | feat(worker): move messages between maildir folders | Danilo M. | 2 | -0/+124 |
| 8 days | feat(config): add the trash query generator | Danilo M. | 3 | -1/+34 |
| 8 days | feat(config): warn when an account configures no trash folder | Danilo M. | 1 | -0/+15 |
| 8 days | feat(config): read a per-account trash folder | Danilo M. | 2 | -0/+27 |
| 8 days | feat(rules): show each rule's note in the rule list | Danilo M. | 2 | -5/+66 |
| 8 days | fix(ui): drop the browser's own actions from the message pane menu | Danilo M. | 2 | -0/+73 |
| 8 days | fix(ui): make Important a toggle, like Delete and Toggle unread | Danilo M. | 1 | -2/+17 |
| 9 days | feat(ui): act on the message a row displays, not its whole thread | Danilo M. | 13 | -137/+1154 |
| 10 days | feat(ui): open a thread on its own by double-clicking a row | Danilo M. | 2 | -0/+58 |
| 10 days | fix(sync): send held edits before the sync-end refresh reads the database | Danilo M. | 2 | -7/+32 |
| 10 days | fix(sync): re-arm the automatic sync when it skips a concurrent run | Danilo M. | 1 | -1/+14 |
| 10 days | fix(ui): load a thread that was already displayed when the query ran | Danilo M. | 1 | -0/+15 |
| 10 days | feat(ui): highlight the built-in filter matching the current view | Danilo M. | 2 | -0/+77 |
| 10 days | feat(i18n): add a language key overriding the system locale | Danilo M. | 3 | -9/+55 |
| 10 days | feat(i18n): wire translations and ship an Italian one (item 22) | Danilo M. | 6 | -34/+131 |
| 10 days | feat(startup): add startup_account, the account the dropdown opens on | Danilo M. | 3 | -6/+65 |
| 10 days | fix(startup): let startup_query name a built-in filter, and run it | Danilo M. | 3 | -13/+49 |
| 10 days | fix(filters): label the flagged filter Important, and give the four icons | Danilo M. | 2 | -3/+35 |
| 10 days | fix(queries): make a query in the overflow menu runnable | Danilo M. | 1 | -4/+21 |
| 10 days | feat(filters): put the four built-in filters on the query row | Danilo M. | 3 | -28/+96 |
| 10 days | feat(filters): resolve built-in filters per account | Danilo M. | 2 | -1/+166 |
| 10 days | fix(status): count threads as they arrive instead of "Searching..." | Danilo M. | 2 | -0/+25 |
| 11 days | Revert the message-scoped auto mark-read | Danilo M. | 3 | -135/+10 |
| 11 days | fix(read): repaint the card when one message is marked read | Danilo M. | 3 | -4/+109 |
| 11 days | fix(read): auto mark-read touches only the message on screen | Danilo M. | 1 | -6/+26 |
| 11 days | feat(pane): always render one message, never the conversationthread-view-removed | Danilo M. | 6 | -58/+140 |
| 11 days | fix(startup): raise the config-problem modal outside the constructor | Danilo M. | 3 | -9/+34 |
| 11 days | feat(search): offer Exclude from search in both menus | Danilo M. | 3 | -0/+28 |
| 11 days | feat(search): push the query bar's emptiness into the panes | Danilo M. | 5 | -7/+30 |
| 11 days | refactor(search): carry SearchMode instead of bool extend | Danilo M. | 6 | -25/+56 |
| 11 days | refactor(search): add SearchMode, the type replacing bool extend | Danilo M. | 1 | -0/+16 |
| 11 days | feat(search): add SearchTerm::exclude | Danilo M. | 2 | -0/+33 |
| 11 days | fix(details): close the dialog before the search runs, not after | Danilo M. | 1 | -4/+8 |
| 11 days | feat(search): run a search asked for from the message pane | Danilo M. | 3 | -2/+53 |