| Age | Commit message (Expand) | Author | Files | Lines |
| 2026-08-10 | feat(types): add MessageNode for message rows in the thread list | Danilo M. | 1 | -0/+26 |
| 2026-08-09 | fix(ui): stop a restored splitter position collapsing the message pane | Danilo M. | 1 | -0/+121 |
| 2026-08-09 | fix(config): report an out-of-range message_zoom | Danilo M. | 1 | -0/+29 |
| 2026-08-09 | fix(ui): give Archive its own icon | Danilo M. | 1 | -0/+53 |
| 2026-08-09 | feat(ui): make the toolbar icon size configurable | Danilo M. | 2 | -0/+112 |
| 2026-08-09 | feat(ui): icons on every action, and rename Flag to Important | Danilo M. | 1 | -0/+135 |
| 2026-08-09 | fix(sync): clear the pending-edit count on a cron sync | Danilo M. | 3 | -1/+490 |
| 2026-08-07 | feat(sync): sync only the accounts with unsynced edits | Danilo M. | 3 | -0/+128 |
| 2026-08-07 | feat(ui): add a Maildir overview under Help | Danilo M. | 2 | -0/+141 |
| 2026-08-07 | feat(ui): make Escape deselect the row as well as blank the pane | Danilo M. | 1 | -1/+89 |
| 2026-08-07 | test: pin the offscreen platform, and let the popup test check its own geometry | Danilo M. | 2 | -0/+44 |
| 2026-08-07 | feat(ui): fill the blank message pane with a branded placeholder | Danilo M. | 4 | -1/+303 |
| 2026-08-07 | feat(ui): show each thread's tags under its row | Danilo M. | 2 | -27/+244 |
| 2026-08-07 | fix(ui): tell read threads from unread without relying on bold | Danilo M. | 2 | -1/+140 |
| 2026-08-07 | fix(ui): the message pane follows the desktop theme | Danilo M. | 1 | -0/+121 |
| 2026-08-07 | feat(tags): mark every thread in the view read, in one undoable step | Danilo M. | 1 | -0/+143 |
| 2026-08-07 | feat(sync): the status bar says which account is syncing | Danilo M. | 2 | -0/+264 |
| 2026-08-07 | fix(mime): a body part carrying a Content-Id no longer renders blank | Danilo M. | 2 | -0/+51 |
| 2026-08-07 | fix(tags): the Remove field suggests only tags the selection has | Danilo M. | 1 | -0/+62 |
| 2026-08-06 | fix(ui): one Sync control, and a query bar that looks finished | Danilo M. | 1 | -24/+19 |
| 2026-08-06 | test: stop two tests depending on the machine they run on | Danilo M. | 1 | -1/+21 |
| 2026-08-06 | fix(sync): hold tag edits made during a background sync | Danilo M. | 1 | -0/+199 |
| 2026-08-04 | fix(sync): count unsynced edits as net state, not as writes | Danilo M. | 1 | -0/+93 |
| 2026-08-04 | feat(ui): make Delete a toggle, and expire transient status messages | Danilo M. | 1 | -0/+110 |
| 2026-08-04 | feat(ui): disable Sync during a background sync, and blank the pane on Esc | Danilo M. | 1 | -0/+105 |
| 2026-08-04 | fix(sync): stop a local sync reporting itself as a background one | Danilo M. | 1 | -0/+119 |
| 2026-08-04 | feat(sync): notice syncs this window did not start | Danilo M. | 2 | -0/+181 |
| 2026-08-04 | feat(ui): make multi-select discoverable and stop it opening threads | Danilo M. | 1 | -0/+255 |
| 2026-08-04 | docs: scrub account names from comments, tests and fixtures | Danilo M. | 2 | -7/+7 |
| 2026-08-04 | fix(tags): complete every tag in the list, not only the first | Danilo M. | 1 | -0/+80 |
| 2026-08-04 | feat(tags): add an Edit tags dialog on Ctrl+T | Danilo M. | 2 | -0/+244 |
| 2026-08-04 | feat(sync): show unsynced edits and offer to sync on exit | Danilo M. | 2 | -0/+210 |
| 2026-08-04 | feat(threads): mark an opened thread read after a delay | Danilo M. | 2 | -0/+175 |
| 2026-08-04 | feat(message): show From/To/Cc and add a details dialog | Danilo M. | 1 | -7/+159 |
| 2026-08-04 | feat(completion): size the description column by need, not by half | Danilo M. | 1 | -0/+95 |
| 2026-08-04 | fix(query): let the query bar keep Return instead of open_thread | Danilo M. | 1 | -0/+45 |
| 2026-08-04 | fix(completion): stop the key filter handing itself the key it forwards | Danilo M. | 1 | -0/+138 |
| 2026-08-04 | fix(completion): filter keys on the application, not the line edit | Danilo M. | 1 | -0/+146 |
| 2026-08-04 | fix(completion): drive the popup instead of QLineEdit::setCompleter | Danilo M. | 1 | -0/+144 |
| 2026-08-04 | feat(completion): render the popup with descriptions | Danilo M. | 1 | -0/+55 |
| 2026-08-04 | feat(completion): select candidates per context | Danilo M. | 1 | -0/+96 |
| 2026-08-04 | feat(config): add completion_on_focus and extra_mimetypes | Danilo M. | 1 | -0/+74 |
| 2026-08-04 | keymap: register complete_query bound to Ctrl+Space | Danilo M. | 1 | -0/+8 |
| 2026-08-04 | feat(completion): add the prefix, date and mimetype vocabularies | Danilo M. | 1 | -0/+35 |
| 2026-08-04 | feat(worker): list every tag in the database | Danilo M. | 1 | -0/+39 |
| 2026-08-04 | test(completion): make the lower-bound span test discriminate | Danilo M. | 1 | -3/+7 |
| 2026-08-04 | feat(completion): complete both bounds of a date range | Danilo M. | 1 | -0/+42 |
| 2026-08-04 | feat(completion): complete nothing inside a quoted literal | Danilo M. | 1 | -0/+18 |
| 2026-08-04 | feat(completion): recognise value context after a prefix | Danilo M. | 1 | -0/+41 |
| 2026-08-04 | feat(completion): add the query cursor-context tokenizer | Danilo M. | 2 | -0/+67 |