| Age | Commit message (Expand) | Author | Files | Lines |
| 2026-08-08 | feat(ui): render a single message when its row is selected | Danilo M. | 6 | -0/+227 |
| 2026-08-08 | feat(ui): mark replies with a thread line, a tint and dimmer text | Danilo M. | 5 | -6/+311 |
| 2026-08-08 | fix(ui): make the expander visible and the reply indent readable | Danilo M. | 7 | -5/+231 |
| 2026-08-08 | feat(ui): load a thread's replies when its row is expanded | Danilo M. | 5 | -0/+127 |
| 2026-08-08 | refactor(view): make ThreadListView a QTreeView for message rows | Danilo M. | 5 | -85/+373 |
| 2026-08-08 | feat(model): resolve action scope from the selected row kind | Danilo M. | 4 | -0/+153 |
| 2026-08-08 | feat(model): expose a thread's replies as child rows | Danilo M. | 3 | -5/+268 |
| 2026-08-08 | refactor(model): convert ThreadListModel to QAbstractItemModel | Danilo M. | 3 | -14/+136 |
| 2026-08-08 | feat(worker): load a thread as a reply tree with per-message depth | Danilo M. | 5 | -0/+165 |
| 2026-08-08 | feat(types): add MessageNode for message rows in the thread list | Danilo M. | 2 | -0/+57 |
| 2026-08-08 | docs(item-20): specify message rows in the thread list and plan the work | Danilo M. | 2 | -10/+1603 |
| 2026-08-07 | docs: record that QString::arg does not collapse %% into % | Danilo M. | 1 | -0/+13 |
| 2026-08-07 | feat(sync): sync only the accounts with unsynced edits | Danilo M. | 15 | -8/+353 |
| 2026-08-07 | release: 0.11.0v0.11.0 | Danilo M. | 2 | -1/+33 |
| 2026-08-07 | feat(ui): add a Maildir overview under Help | Danilo M. | 8 | -1/+375 |
| 2026-08-07 | feat(ui): make Escape deselect the row as well as blank the pane | Danilo M. | 4 | -3/+201 |
| 2026-08-07 | test: pin the offscreen platform, and let the popup test check its own geometry | Danilo M. | 3 | -1/+74 |
| 2026-08-07 | docs: record four items the usage notes had and the backlog did not | Danilo M. | 1 | -0/+168 |
| 2026-08-07 | feat(ui): fill the blank message pane with a branded placeholder | Danilo M. | 14 | -5/+982 |
| 2026-08-07 | docs: record what item 30 was specified as | Danilo M. | 1 | -0/+51 |
| 2026-08-07 | build: bundle the fonts the placeholder pane will need | Danilo M. | 5 | -0/+214 |
| 2026-08-07 | docs: record how rendering probes mislead, and ThreadListView | Danilo M. | 1 | -4/+42 |
| 2026-08-07 | feat(ui): show each thread's tags under its row | Danilo M. | 12 | -101/+836 |
| 2026-08-07 | fix(ui): tell read threads from unread without relying on bold | Danilo M. | 9 | -17/+287 |
| 2026-08-07 | fix(ui): the message pane follows the desktop theme | Danilo M. | 7 | -19/+340 |
| 2026-08-07 | feat(tags): mark every thread in the view read, in one undoable step | Danilo M. | 7 | -1/+311 |
| 2026-08-07 | feat(sync): the status bar says which account is syncing | Danilo M. | 8 | -15/+560 |
| 2026-08-07 | docs: record how to find the messages item 41 affected | Danilo M. | 1 | -1/+21 |
| 2026-08-07 | fix(mime): a body part carrying a Content-Id no longer renders blank | Danilo M. | 4 | -2/+60 |
| 2026-08-07 | fix(tags): the Remove field suggests only tags the selection has | Danilo M. | 3 | -3/+80 |
| 2026-08-06 | docs: record item 48, tag removal suggests every tag | Danilo M. | 1 | -0/+43 |
| 2026-08-06 | release: 0.10.0v0.10.0 | Danilo M. | 2 | -1/+44 |
| 2026-08-06 | fix(ui): one Sync control, and a query bar that looks finished | Danilo M. | 5 | -61/+216 |
| 2026-08-06 | test: stop two tests depending on the machine they run on | Danilo M. | 4 | -4/+85 |
| 2026-08-06 | fix(sync): hold tag edits made during a background sync | Danilo M. | 6 | -3/+581 |
| 2026-08-05 | docs: reconcile backlog with usage notes, add items 39-45 | Danilo M. | 1 | -2/+263 |
| 2026-08-04 | docs: print the open backlog as a table at session start | Danilo M. | 1 | -0/+32 |
| 2026-08-04 | release: 0.9.0v0.9.0 | Danilo M. | 2 | -1/+39 |
| 2026-08-04 | fix(sync): count unsynced edits as net state, not as writes | Danilo M. | 4 | -11/+192 |
| 2026-08-04 | feat(ui): make Delete a toggle, and expire transient status messages | Danilo M. | 4 | -13/+239 |
| 2026-08-04 | docs: record item 36, and mark 24/25 done in the table | Danilo M. | 1 | -2/+47 |
| 2026-08-04 | fix(ui): name the default button on the quit prompt | Danilo M. | 2 | -1/+26 |
| 2026-08-04 | feat(ui): disable Sync during a background sync, and blank the pane on Esc | Danilo M. | 5 | -9/+210 |
| 2026-08-04 | docs: record items 28-35 from the user's notes, and how to keep them in sync | Danilo M. | 4 | -1/+351 |
| 2026-08-04 | release: 0.8.0v0.8.0 | Danilo M. | 2 | -1/+37 |
| 2026-08-04 | Merge branch 'multiselect-discoverability' | Danilo M. | 10 | -0/+1084 |
| 2026-08-04 | fix(sync): stop a local sync reporting itself as a background one | Danilo M. | 3 | -10/+157 |
| 2026-08-04 | feat(sync): notice syncs this window did not start | Danilo M. | 7 | -0/+487 |
| 2026-08-04 | docs: record the two selection-model traps found in 987a9e7 | Danilo M. | 1 | -0/+21 |
| 2026-08-04 | feat(ui): make multi-select discoverable and stop it opening threads | Danilo M. | 4 | -0/+429 |