| Age | Commit message (Expand) | Author | Files | Lines |
| 19 hours | fix: keep the message bar populated on a spam reply | Danilo M. | 1 | -0/+7 |
| 20 hours | fix: the Not spam review findings | Danilo M. | 1 | -7/+9 |
| 20 hours | feat: a Not spam action | Danilo M. | 1 | -83/+197 |
| 21 hours | fix: gate spam like delete, and keep one origin in the model | Danilo M. | 1 | -1/+42 |
| 21 hours | feat: find stranded spam mail | Danilo M. | 1 | -0/+49 |
| 21 hours | feat: empty spam moves mail to the trash, per account | Danilo M. | 1 | -2/+100 |
| 22 hours | feat: spam on the message bar, with a bug icon and junk fallback | Danilo M. | 1 | -92/+114 |
| 37 hours | feat: mark spam moves mail to the account's spam folder | Danilo M. | 1 | -5/+109 |
| 37 hours | refactor: rename the origin tag to moved-from: with overwrite semantics | Danilo M. | 1 | -16/+16 |
| 38 hours | feat(config): a threaded, path-based spam filter | Danilo M. | 1 | -0/+1 |
| 7 days | feat: make Sync follow the account being looked at | Danilo M. | 1 | -9/+46 |
| 8 days | fix: refresh the current query when the index changes | Danilo M. | 1 | -0/+13 |
| 9 days | fix: index the sent copy so it appears in the Sent view at once | Danilo M. | 1 | -0/+18 |
| 2026-08-29 | fix: draw Important as a star on the message bar | Danilo M. | 1 | -3/+18 |
| 2026-08-29 | feat: put Star and Archive on the message bar too | Danilo M. | 1 | -8/+26 |
| 2026-08-29 | feat: give the trash its own actions on the message bar | Danilo M. | 1 | -16/+131 |
| 2026-08-29 | fix: retry a sync that was skipped because another held the lock | Danilo M. | 1 | -0/+17 |
| 2026-08-29 | feat: have the sync script report what it did | Danilo M. | 1 | -10/+67 |
| 2026-08-29 | fix: say an edit is waiting for the sync instead of claiming it landed | Danilo M. | 1 | -3/+18 |
| 2026-08-29 | fix: refresh the conversation dashboard after a write | Danilo M. | 1 | -0/+25 |
| 2026-08-29 | fix: judge a conversation's trash state on all of its messages | Danilo M. | 1 | -20/+55 |
| 2026-08-28 | feat: show the dashboard when a conversation is selected | Danilo M. | 1 | -0/+179 |
| 2026-08-28 | fix: undo only what the write actually changed | Danilo M. | 1 | -21/+68 |
| 2026-08-28 | feat: judge a row's membership on the thread's union | Danilo M. | 1 | -0/+179 |
| 2026-08-28 | feat: treat a mixed conversation's unread state as unread | Danilo M. | 1 | -22/+32 |
| 2026-08-28 | feat: scope an action to the row it was invoked on | Danilo M. | 1 | -226/+306 |
| 2026-08-28 | feat: draw a conversation row's own tags, in one tier | Danilo M. | 1 | -15/+2 |
| 2026-08-26 | feat: open the unsynced-changes count to see what it counts | Danilo M. | 1 | -0/+76 |
| 2026-08-26 | feat: snapshot the pending changes as rows | Danilo M. | 1 | -5/+53 |
| 2026-08-26 | refactor: drop the unnettable pending-edit counter | Danilo M. | 1 | -12/+9 |
| 2026-08-26 | fix: give a restored message its inbox tag back | Danilo M. | 1 | -1/+12 |
| 2026-08-26 | feat: propose business senders from newly synced mail | Danilo M. | 1 | -0/+22 |
| 2026-08-26 | feat: load the business-senders list at startup | Danilo M. | 1 | -1/+34 |
| 2026-08-26 | feat: flag what you answered, mark what was forwarded to you | Danilo M. | 1 | -7/+153 |
| 2026-08-25 | fix: offer Delete and Restore only where they mean something | Danilo M. | 1 | -3/+75 |
| 2026-08-25 | feat: empty the trash, the one action that asks first | Danilo M. | 1 | -0/+109 |
| 2026-08-25 | feat: say which way the unread action will go, and hide it when it cannot | Danilo M. | 1 | -16/+88 |
| 2026-08-25 | feat: number each build of a dev tree | Danilo M. | 1 | -1/+1 |
| 2026-08-25 | fix(compose): resolve a path a sync renamed, at all three read sites | Danilo M. | 1 | -3/+21 |
| 2026-08-24 | fix(drafts): index a saved draft so it appears without a sync | Danilo M. | 1 | -0/+11 |
| 2026-08-24 | feat(queries): drop pinning, the menu is every saved query's home | Danilo M. | 1 | -44/+22 |
| 2026-08-24 | feat(compose): offer Edit on a draft in the message pane's bar | Danilo M. | 1 | -7/+89 |
| 2026-08-24 | feat(compose): open a draft to finish it | Danilo M. | 1 | -0/+123 |
| 2026-08-24 | feat: add a Drafts filter, and close the composer with Ctrl+W | Danilo M. | 1 | -0/+1 |
| 2026-08-24 | fix(ui): move Compose back, drop the bar below the header, size its icons | Danilo M. | 1 | -7/+16 |
| 2026-08-24 | feat(ui): give the message pane its own action bar | Danilo M. | 1 | -9/+19 |
| 2026-08-23 | fix(compose): close every composer when the main window quits | Danilo M. | 1 | -0/+27 |
| 2026-08-22 | feat(compose): wire the composer into the main window, item 123compose-and-send | Danilo M. | 1 | -10/+615 |
| 2026-08-21 | feat(compose): register the six compose actions, item 123 | Danilo M. | 1 | -0/+87 |
| 2026-08-20 | refactor(ui): extract the busy indicator into a widget, item 134 | Danilo M. | 1 | -10/+8 |