| Age | Commit message (Expand) | Author | Files | Lines |
| 3 days | feat(compose): wire the composer into the main window, item 123compose-and-send | Danilo M. | 1 | -0/+955 |
| 3 days | feat(compose): the composer window, item 123 | Danilo M. | 1 | -0/+1154 |
| 4 days | feat(compose): the send popup and its undo window, item 123 | Danilo M. | 2 | -0/+469 |
| 4 days | feat(compose): register the six compose actions, item 123 | Danilo M. | 1 | -4/+191 |
| 4 days | feat(compose): transform the markdown buffer for the toolbar, item 123 | Danilo M. | 2 | -0/+347 |
| 4 days | feat(compose): derive a reply's recipients and headers, item 123 | Danilo M. | 3 | -0/+1085 |
| 4 days | feat(compose): hand outgoing mail to the send command, item 123 | Danilo M. | 2 | -0/+533 |
| 4 days | feat(compose): save drafts atomically into a Maildir, item 123 | Danilo M. | 2 | -0/+256 |
| 5 days | fix(compose): refuse a directory attachment and a bad recipient, item 123 | Danilo M. | 1 | -0/+111 |
| 5 days | feat(compose): build outgoing messages with GMime, item 123 | Danilo M. | 2 | -0/+323 |
| 5 days | fix(config): reject garbage numerics instead of silently reading zero, item 123 | Danilo M. | 1 | -0/+91 |
| 5 days | refactor(maildir): extract freshMaildirName for reuse, item 123 | Danilo M. | 2 | -0/+94 |
| 5 days | fix(compose): correct the header's attribution and harden three tests, item 123 | Danilo M. | 2 | -3/+10 |
| 5 days | feat(config): send_command and the [compose] section, item 123 | Danilo M. | 1 | -0/+105 |
| 5 days | fix(compose): document what actually suppresses raw HTML, item 123 | Danilo M. | 1 | -3/+26 |
| 5 days | feat(compose): render markdown bodies with cmark-gfm, item 123 | Danilo M. | 2 | -0/+122 |
| 5 days | test(keys): a shortcut is a chosen subset, not a requirement, item 132 | Danilo M. | 2 | -17/+1 |
| 5 days | refactor(ui): extract the busy indicator into a widget, item 134 | Danilo M. | 1 | -0/+136 |
| 5 days | fix(pane): drop Save link from a link's context menu | Danilo M. | 1 | -0/+6 |
| 5 days | fix(pane): open a target="_blank" link, and drop the dead link actions | Danilo M. | 1 | -0/+124 |
| 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 |