| Age | Commit message (Expand) | Author | Files | Lines |
| 12 hours | fix: say an edit is waiting for the sync instead of claiming it landed | Danilo M. | 1 | -0/+65 |
| 12 hours | fix: refresh the conversation dashboard after a write | Danilo M. | 1 | -0/+78 |
| 12 hours | fix: judge a conversation's trash state on all of its messages | Danilo M. | 1 | -0/+81 |
| 25 hours | feat: count a card's messages, not its repliesthread-row-identity | Danilo M. | 1 | -4/+5 |
| 26 hours | fix: list a conversation's first message under its row | Danilo M. | 1 | -14/+38 |
| 27 hours | feat: show the dashboard when a conversation is selected | Danilo M. | 1 | -75/+255 |
| 28 hours | fix: undo only what the write actually changed | Danilo M. | 1 | -0/+88 |
| 28 hours | feat: judge a row's membership on the thread's union | Danilo M. | 1 | -0/+112 |
| 29 hours | feat: treat a mixed conversation's unread state as unread | Danilo M. | 1 | -34/+63 |
| 34 hours | feat: scope an action to the row it was invoked on | Danilo M. | 1 | -314/+552 |
| 35 hours | feat: draw a conversation row's own tags, in one tier | Danilo M. | 1 | -68/+0 |
| 2 days | feat: forward an HTML message with its formatting | Danilo M. | 1 | -9/+17 |
| 2 days | fix: flag a saved draft seen so it is not tagged unread | Danilo M. | 1 | -2/+6 |
| 3 days | feat: open the unsynced-changes count to see what it counts | Danilo M. | 1 | -0/+48 |
| 3 days | feat: snapshot the pending changes as rows | Danilo M. | 1 | -0/+85 |
| 3 days | refactor: drop the unnettable pending-edit counter | Danilo M. | 1 | -10/+40 |
| 3 days | fix: give a restored message its inbox tag back | Danilo M. | 1 | -0/+15 |
| 3 days | feat: load the business-senders list at startup | Danilo M. | 1 | -0/+18 |
| 3 days | feat: flag what you answered, mark what was forwarded to you | Danilo M. | 1 | -6/+300 |
| 4 days | fix: offer Delete and Restore only where they mean something | Danilo M. | 1 | -0/+162 |
| 4 days | feat: empty the trash, the one action that asks first | Danilo M. | 1 | -0/+85 |
| 4 days | feat: say which way the unread action will go, and hide it when it cannot | Danilo M. | 1 | -2/+210 |
| 4 days | fix(compose): resolve a path a sync renamed, at all three read sites | Danilo M. | 1 | -0/+78 |
| 5 days | feat(queries): drop pinning, the menu is every saved query's home | Danilo M. | 1 | -181/+178 |
| 5 days | feat(compose): offer Edit on a draft in the message pane's bar | Danilo M. | 1 | -0/+164 |
| 5 days | feat(compose): open a draft to finish it | Danilo M. | 1 | -0/+289 |
| 5 days | feat: add a Drafts filter, and close the composer with Ctrl+W | Danilo M. | 1 | -1/+60 |
| 5 days | fix(compose): make the Send button a square that reads as one item | Danilo M. | 1 | -0/+15 |
| 5 days | feat(compose): lay the composer out by scope | Danilo M. | 1 | -7/+234 |
| 5 days | fix(ui): move Compose back, drop the bar below the header, size its icons | Danilo M. | 1 | -5/+93 |
| 5 days | feat(ui): give the message pane its own action bar | Danilo M. | 1 | -1/+110 |
| 5 days | fix(compose): default to quoting below, and focus the body on a reply | Danilo M. | 1 | -0/+43 |
| 5 days | fix(messageview): drop the receive-only ribbon when the pane is blanked | Danilo M. | 1 | -0/+96 |
| 5 days | fix(compose): put the reply cursor on blank space, not on the quote | Danilo M. | 1 | -0/+55 |
| 6 days | fix(compose): close every composer when the main window quits | Danilo M. | 1 | -0/+38 |
| 7 days | feat(compose): wire the composer into the main window, item 123compose-and-send | Danilo M. | 1 | -0/+955 |
| 7 days | feat(compose): the composer window, item 123 | Danilo M. | 1 | -0/+1154 |
| 8 days | feat(compose): register the six compose actions, item 123 | Danilo M. | 1 | -4/+191 |
| 9 days | test(keys): a shortcut is a chosen subset, not a requirement, item 132 | Danilo M. | 1 | -17/+0 |
| 10 days | fix(worker): give a moved message a fresh maildir name | Danilo M. | 1 | -2/+38 |
| 10 days | fix(trash): refresh the list when a restore empties a rowdelete-to-trash | Danilo M. | 1 | -0/+175 |
| 11 days | test: assert a move that relocates nothing writes no tag | Danilo M. | 1 | -0/+67 |
| 11 days | i18n: translate the trash strings, and document the trash key | Danilo M. | 1 | -4/+13 |
| 11 days | feat: find mail tagged deleted but never moved to trash | Danilo M. | 1 | -0/+206 |
| 11 days | feat(delete): bind Del, and resolve a restore against the database | Danilo M. | 1 | -3/+75 |
| 11 days | feat(trash): restore mail from the trash view | Danilo M. | 1 | -0/+211 |
| 11 days | fix(delete): repair seven defects in the move-to-trash path | Danilo M. | 1 | -14/+765 |
| 12 days | feat(delete): move the message to the account's trash folder | Danilo M. | 1 | -20/+395 |
| 12 days | feat(config): add the trash query generator | Danilo M. | 1 | -3/+13 |
| 12 days | fix(ui): make Important a toggle, like Delete and Toggle unread | Danilo M. | 1 | -0/+129 |