| Age | Commit message (Expand) | Author | Files | Lines |
| 9 hours | feat: count a card's messages, not its repliesthread-row-identity | Danilo M. | 8 | -39/+55 |
| 10 hours | fix: list a conversation's first message under its row | Danilo M. | 1 | -14/+29 |
| 11 hours | feat: show the dashboard when a conversation is selected | Danilo M. | 5 | -1/+348 |
| 12 hours | feat: read a thread's digest from the index | Danilo M. | 2 | -0/+234 |
| 12 hours | fix: undo only what the write actually changed | Danilo M. | 3 | -33/+220 |
| 12 hours | feat: add the thread dashboard | Danilo M. | 4 | -0/+690 |
| 12 hours | feat: judge a row's membership on the thread's union | Danilo M. | 4 | -0/+293 |
| 13 hours | feat: treat a mixed conversation's unread state as unread | Danilo M. | 1 | -22/+32 |
| 18 hours | feat: scope an action to the row it was invoked on | Danilo M. | 6 | -415/+393 |
| 18 hours | feat: resolve a selection's scope from what each row is | Danilo M. | 2 | -0/+45 |
| 19 hours | refactor: remove the sibling chip tier | Danilo M. | 4 | -111/+12 |
| 19 hours | feat: draw a conversation row's own tags, in one tier | Danilo M. | 4 | -165/+23 |
| 19 hours | feat: let a row say whether it is a conversation | Danilo M. | 2 | -0/+31 |
| 41 hours | feat: forward an HTML message with its formattingHEADmaster | Danilo M. | 8 | -3/+698 |
| 42 hours | fix: flag a saved draft seen so it is not tagged unread | Danilo M. | 1 | -1/+8 |
| 2 days | fix: size the pending-changes dialog to its content | Danilo M. | 1 | -1/+11 |
| 2 days | feat: open the unsynced-changes count to see what it counts | Danilo M. | 5 | -0/+302 |
| 2 days | feat: resolve pending-change ids to subjects | Danilo M. | 2 | -0/+104 |
| 2 days | feat: snapshot the pending changes as rows | Danilo M. | 3 | -9/+130 |
| 2 days | refactor: drop the unnettable pending-edit counter | Danilo M. | 2 | -17/+9 |
| 3 days | fix: give a restored message its inbox tag back | Danilo M. | 1 | -1/+12 |
| 3 days | fix: correct the avatar initials, the two-tone fill and the fade | Danilo M. | 6 | -51/+166 |
| 3 days | fix: harden candidate appends and cover the message-row sender roles | Danilo M. | 1 | -2/+11 |
| 3 days | feat: propose business senders from newly synced mail | Danilo M. | 3 | -0/+86 |
| 3 days | feat: load the business-senders list at startup | Danilo M. | 2 | -1/+65 |
| 3 days | feat: draw a sender's avatar on every card | Danilo M. | 2 | -0/+61 |
| 3 days | feat: fade the account colour across a card | Danilo M. | 2 | -0/+46 |
| 3 days | feat: expose a row's sender to the delegate | Danilo M. | 4 | -0/+34 |
| 3 days | feat: reserve a card's avatar gutter | Danilo M. | 2 | -0/+20 |
| 3 days | feat: propose business-sender candidates, always commented out | Danilo M. | 2 | -0/+111 |
| 3 days | feat: read the business-senders list | Danilo M. | 3 | -0/+137 |
| 3 days | feat: paint the avatar squircle from a hashed seed | Danilo M. | 1 | -0/+78 |
| 3 days | feat: choose an avatar fill and derive its colour | Danilo M. | 1 | -0/+22 |
| 3 days | feat: derive a sender's avatar initials | Danilo M. | 3 | -0/+156 |
| 3 days | feat: carry the first message's sender address on a thread summary | Danilo M. | 2 | -0/+78 |
| 3 days | feat: flag what you answered, mark what was forwarded to you | Danilo M. | 16 | -14/+514 |
| 3 days | fix: offer Delete and Restore only where they mean something | Danilo M. | 2 | -3/+89 |
| 3 days | feat: empty the trash, the one action that asks first | Danilo M. | 5 | -0/+256 |
| 4 days | feat: say which way the unread action will go, and hide it when it cannot | Danilo M. | 3 | -18/+111 |
| 4 days | feat: number each build of a dev tree | Danilo M. | 5 | -4/+33 |
| 4 days | fix(worker): reopen the notmuch handle so queries see new mail | Danilo M. | 1 | -1/+21 |
| 4 days | fix(compose): resolve a path a sync renamed, at all three read sites | Danilo M. | 4 | -6/+126 |
| 4 days | fix(delete): recover when a sync renamed the file underneath a move | Danilo M. | 2 | -1/+83 |
| 4 days | feat(compose): a menu bar on the composer | Danilo M. | 2 | -5/+122 |
| 4 days | feat(compose): report autosave state in a status bar | Danilo M. | 2 | -6/+151 |
| 4 days | fix(drafts): list drafts as messages, not threadssignatures | Danilo M. | 1 | -10/+27 |
| 4 days | fix(drafts): index a saved draft so it appears without a sync | Danilo M. | 5 | -1/+142 |
| 4 days | fix(compose): a resumed draft does not re-seed on a From: change | Danilo M. | 1 | -0/+5 |
| 4 days | feat(compose): the signature follows the account until it is chosen | Danilo M. | 1 | -5/+22 |
| 4 days | fix(signatures): match the guard against on-disk text, newline and all | Danilo M. | 1 | -1/+24 |