| Age | Commit message (Expand) | Author | Files | Lines |
| 9 hours | feat: count a card's messages, not its repliesthread-row-identity | Danilo M. | 1 | -19/+20 |
| 10 hours | fix: list a conversation's first message under its row | Danilo M. | 1 | -40/+148 |
| 18 hours | feat: scope an action to the row it was invoked on | Danilo M. | 1 | -159/+33 |
| 18 hours | feat: resolve a selection's scope from what each row is | Danilo M. | 1 | -0/+93 |
| 19 hours | feat: draw a conversation row's own tags, in one tier | Danilo M. | 1 | -160/+17 |
| 19 hours | feat: let a row say whether it is a conversation | Danilo M. | 1 | -0/+79 |
| 3 days | fix: correct the avatar initials, the two-tone fill and the fade | Danilo M. | 1 | -0/+31 |
| 3 days | fix: harden candidate appends and cover the message-row sender roles | Danilo M. | 1 | -0/+27 |
| 3 days | feat: expose a row's sender to the delegate | Danilo M. | 1 | -0/+23 |
| 3 days | feat: flag what you answered, mark what was forwarded to you | Danilo M. | 1 | -0/+97 |
| 12 days | feat(ui): act on the message a row displays, not its whole thread | Danilo M. | 1 | -0/+613 |
| 2026-08-11 | feat(panes): draw the pane marks from shipped SVGs, not font glyphs | Danilo M. | 1 | -8/+36 |
| 2026-08-11 | feat(sent): add a Sent view, flat and by recipient | Danilo M. | 1 | -0/+104 |
| 2026-08-10 | feat(view): follow a background sync without a keystroke | Danilo M. | 1 | -0/+248 |
| 2026-08-10 | fix(ui): expand flat threads, reach the first message, localise the date | Danilo M. | 1 | -5/+88 |
| 2026-08-10 | refactor(view): stop the view painting, and hit-test the reply count | Danilo M. | 1 | -138/+86 |
| 2026-08-10 | refactor(model): collapse the thread list to a single column | Danilo M. | 1 | -0/+28 |
| 2026-08-10 | feat(model): expose the tags a reply has and its thread does not | Danilo M. | 1 | -0/+69 |
| 2026-08-10 | feat(ui): load a thread's replies when its row is expanded | Danilo M. | 1 | -0/+41 |
| 2026-08-10 | feat(model): resolve action scope from the selected row kind | Danilo M. | 1 | -0/+83 |
| 2026-08-10 | feat(model): expose a thread's replies as child rows | Danilo M. | 1 | -0/+115 |
| 2026-08-10 | refactor(model): convert ThreadListModel to QAbstractItemModel | Danilo M. | 1 | -0/+34 |
| 2026-08-10 | feat(types): add MessageNode for message rows in the thread list | Danilo M. | 1 | -0/+26 |
| 2026-08-07 | feat(sync): sync only the accounts with unsynced edits | Danilo M. | 1 | -0/+43 |
| 2026-08-07 | feat(ui): show each thread's tags under its row | Danilo M. | 1 | -7/+111 |
| 2026-08-07 | fix(ui): tell read threads from unread without relying on bold | Danilo M. | 1 | -1/+85 |
| 2026-08-04 | feat: show a paperclip for threads with attachments | Danilo M. | 1 | -0/+42 |
| 2026-08-04 | feat: render tags as chips instead of a text column | Danilo M. | 1 | -7/+81 |
| 2026-08-04 | feat: show that a tag action landed | Danilo M. | 1 | -0/+102 |
| 2026-08-04 | Add GPLv2-only license and per-file headers | Danilo M. | 1 | -0/+18 |
| 2026-08-04 | feat: add ThreadListModel with batch append | Danilo M. | 1 | -0/+282 |