| Age | Commit message (Expand) | Author | Files | Lines |
| 7 hours | fix: give a restored message its inbox tag back | Danilo M. | 1 | -0/+15 |
| 7 hours | fix: correct the avatar initials, the two-tone fill and the fade | Danilo M. | 4 | -7/+192 |
| 9 hours | fix: harden candidate appends and cover the message-row sender roles | Danilo M. | 2 | -0/+58 |
| 9 hours | feat: propose business senders from newly synced mail | Danilo M. | 1 | -0/+39 |
| 9 hours | feat: load the business-senders list at startup | Danilo M. | 1 | -0/+18 |
| 9 hours | feat: draw a sender's avatar on every card | Danilo M. | 1 | -0/+41 |
| 9 hours | feat: fade the account colour across a card | Danilo M. | 1 | -0/+25 |
| 9 hours | feat: expose a row's sender to the delegate | Danilo M. | 1 | -0/+23 |
| 9 hours | feat: reserve a card's avatar gutter | Danilo M. | 1 | -2/+71 |
| 10 hours | feat: propose business-sender candidates, always commented out | Danilo M. | 1 | -0/+100 |
| 10 hours | feat: read the business-senders list | Danilo M. | 2 | -0/+102 |
| 10 hours | feat: paint the avatar squircle from a hashed seed | Danilo M. | 1 | -0/+30 |
| 10 hours | feat: choose an avatar fill and derive its colour | Danilo M. | 1 | -0/+28 |
| 10 hours | feat: derive a sender's avatar initials | Danilo M. | 2 | -0/+96 |
| 10 hours | feat: carry the first message's sender address on a thread summary | Danilo M. | 1 | -0/+36 |
| 12 hours | feat: flag what you answered, mark what was forwarded to you | Danilo M. | 3 | -6/+474 |
| 30 hours | fix: offer Delete and Restore only where they mean something | Danilo M. | 1 | -0/+162 |
| 30 hours | feat: empty the trash, the one action that asks first | Danilo M. | 2 | -0/+216 |
| 31 hours | feat: say which way the unread action will go, and hide it when it cannot | Danilo M. | 1 | -2/+210 |
| 37 hours | fix(worker): reopen the notmuch handle so queries see new mail | Danilo M. | 1 | -0/+55 |
| 38 hours | fix(compose): resolve a path a sync renamed, at all three read sites | Danilo M. | 2 | -0/+174 |
| 38 hours | fix(delete): recover when a sync renamed the file underneath a move | Danilo M. | 1 | -0/+78 |
| 39 hours | feat(compose): a menu bar on the composer | Danilo M. | 1 | -0/+165 |
| 39 hours | feat(compose): report autosave state in a status bar | Danilo M. | 2 | -0/+202 |
| 40 hours | fix(drafts): list drafts as messages, not threadssignatures | Danilo M. | 1 | -9/+27 |
| 2 days | fix(drafts): index a saved draft so it appears without a sync | Danilo M. | 2 | -0/+160 |
| 2 days | fix(compose): a resumed draft does not re-seed on a From: change | Danilo M. | 1 | -0/+58 |
| 2 days | feat(compose): the signature follows the account until it is chosen | Danilo M. | 1 | -0/+119 |
| 2 days | fix(signatures): match the guard against on-disk text, newline and all | Danilo M. | 1 | -0/+17 |
| 2 days | feat(compose): a signature switch on the editor bar | Danilo M. | 2 | -0/+221 |
| 2 days | feat(config): read the three signature keys | Danilo M. | 1 | -0/+73 |
| 2 days | test(signatures): record what the quoted-delimiter test does not pin | Danilo M. | 1 | -0/+10 |
| 2 days | feat(signatures): replace an existing signature, guarded by a match | Danilo M. | 1 | -0/+101 |
| 2 days | feat(signatures): splice a signature into a buffer | Danilo M. | 1 | -0/+62 |
| 2 days | feat(signatures): read a directory of markdown signatures | Danilo M. | 2 | -0/+105 |
| 2 days | feat(queries): drop pinning, the menu is every saved query's home | Danilo M. | 2 | -214/+214 |
| 2 days | feat(compose): offer Edit on a draft in the message pane's bar | Danilo M. | 1 | -0/+164 |
| 3 days | feat(compose): open a draft to finish it | Danilo M. | 1 | -0/+289 |
| 3 days | feat: add a Drafts filter, and close the composer with Ctrl+W | Danilo M. | 2 | -2/+126 |
| 3 days | fix(compose): make the Send button a square that reads as one item | Danilo M. | 1 | -0/+15 |
| 3 days | feat(compose): lay the composer out by scope | Danilo M. | 1 | -7/+234 |
| 3 days | fix(ui): move Compose back, drop the bar below the header, size its icons | Danilo M. | 1 | -5/+93 |
| 3 days | feat(ui): give the message pane its own action bar | Danilo M. | 1 | -1/+110 |
| 3 days | fix(compose): default to quoting below, and focus the body on a reply | Danilo M. | 2 | -6/+49 |
| 3 days | feat(messageview): give the notice bars a ground and a severity | Danilo M. | 1 | -0/+76 |
| 3 days | fix(messageview): drop the receive-only ribbon when the pane is blanked | Danilo M. | 1 | -0/+96 |
| 3 days | fix(compose): put the reply cursor on blank space, not on the quote | Danilo M. | 1 | -0/+55 |
| 3 days | fix(compose): close every composer when the main window quits | Danilo M. | 1 | -0/+38 |
| 3 days | feat(hooks): own the notmuch hooks, and keep sent mail out of the inbox | Danilo M. | 1 | -0/+20 |
| 5 days | feat(compose): wire the composer into the main window, item 123compose-and-send | Danilo M. | 1 | -0/+955 |