diff options
Diffstat (limited to 'CHANGELOG.md')
| -rw-r--r-- | CHANGELOG.md | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 3dcc0a4..28e1571 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,15 @@ point at which they are stable. ### Added +- **The unsynced-changes count opens.** Clicking `N unsynced changes` in the + status bar lists what those changes are: each message with the actions + waiting on it beneath it, and a whole-thread action shown as one entry with + the number of messages it covers. The list is read-only and is a snapshot + taken when it is opened, so it does not rewrite itself while you read it. A + change whose message has since left the index is still listed, saying so, + rather than being dropped: the number you clicked always matches the number + of entries you get. + - **The composer says when it saved a draft.** A status bar reports the age of the last autosave, and an `unsaved content` cue sits beside it whenever there is text newer than that save. The window title carries the platform's @@ -25,6 +34,93 @@ point at which they are stable. already there and is now findable: Send and Close under File, the editor's undo and clipboard actions under Edit, and the formatting buttons, Attach, Send as HTML and the signature switch under Format. +- **Empty trash**, under Message. It permanently deletes every message in the + trash of the selected account, or of every account in the All accounts view. + This is the one action in qtmaildir that cannot be undone, so it is also the + one that asks first, naming how many messages it will destroy and where; + Cancel is the default and it has no keyboard shortcut. The files are removed + locally, and a channel configured with `Expunge Both` carries that to the + server on the next sync. +- **A build number on unreleased builds.** A build of an unreleased version + now reports `X.Y.Z build N`, so one binary can be told from the one it + replaced; a release reports a plain `X.Y.Z`. Shown by `--version`, `--help`, + the About dialog and the placeholder pane, and deliberately not in the + window title. + +- **A mark for mail someone forwarded to you.** A card now carries its own + glyph when the subject reads as a forward, in any of the spellings clients + actually send (`Fwd:`, `Fw:`, `WG:`, `ENC:`, `RV:`, `TR:`), including under + a `Re:` chain. Add more with `[general] forward_prefixes`, which extends + that list rather than replacing it. This is display only: nothing is written + to the message and nothing reaches your mail server. It is deliberately a + different mark from `passed`, which is the Maildir `P` flag and means *you* + forwarded something. +- Cards carry the sender's avatar: a squircle with their initials, filled with + a pattern generated from their address so the same sender always looks the + same. Senders that present a display name get an identicon, bulk senders a + two-tone fill, and `~/.config/qtmaildir/business-senders` decides the + borderline cases. Nothing is fetched from the network. +- The account's colour now fades across the left of a card instead of only + marking its edge, and a reply's fade starts at its own indent. + +### Changed + +- **The unread action says which way it will go.** "Toggle unread" read the + same whichever direction it would take; it is now "Mark as read" on unread + mail and "Mark as unread" on read mail, and it is hidden entirely when the + selection holds both, where no label would be true. +- **Marking a whole thread read or unread is now two entries**, both under + Whole thread, replacing the single toggle. A thread's unread state is the + union over its messages, so a thread with one unread reply always answered + "unread" and the toggle could only ever mark it read. Neither entry carries + a shortcut, and `Ctrl+Alt+U` is now unbound. +- **Delete and Restore appear only where they apply.** Delete is hidden on + mail already in the trash, where it reported success and did nothing, and + Restore is hidden on mail that was never deleted. +- **Deleting a message also marks it read, and takes it out of the inbox.** + Mail you threw away no longer counts towards unread, and no longer sits in + the Inbox view: `inbox` is stripped along with `unread`, and the row leaves + the list straight away rather than waiting for the next sync. Restore and + Undo both put the tag back with the file, so nothing comes home invisible. + One consequence worth knowing: pressing Delete a second time to undelete is + gone for ordinary mail, because there is no longer a row sitting there to + press it on. Undo retracts, and Restore in the Trash view is the deliberate + route. The second press still works on stranded mail, which is the one place + a message can carry `deleted` without being in a trash folder. +- **The trash no longer paints every row red.** The deleted highlight exists + to tell you a message is on its way out of a view it is still sitting in; in + the Trash that is every row, so it said nothing and cost legibility. Deleted + mail there is now drawn normally, still struck through. A message tagged + spam keeps its tint, since that is still news in a folder that only promises + "thrown away". + +### Fixed + +- **New mail reached the index but not the window.** The worker never reopened + its read-only notmuch handle, so nothing indexed after startup appeared in + any query and the application looked like it had stopped syncing. +- **Replying or forwarding never flagged the message you answered.** The + Maildir `R` and `P` flags, which every other client sets and which notmuch + reads back as the `replied` and `passed` tags, were never written by + qtmaildir: measured on the developer's own index, all 317 `replied` and all + 6 `passed` had come from other clients. A reply now marks its source + replied, a forward marks its source forwarded, and both reach the server on + the next sync. Neither goes on the undo stack, for the reason the automatic + mark-read does not: the flag records that the mail went, and the send itself + cannot be undone. A reply or forward finished from a saved draft is not + flagged, since a resumed draft cannot be told from a new message. +- **A sent message could leave its draft behind.** mbsync renames an uploaded + draft to add its own `,U=<uid>` marker, while the composer still held the + name it originally wrote, so the removal on send ran against a path that no + longer existed and failed silently. The message went, the sent copy was + filed, and the draft stayed in the Drafts view looking unfinished. The same + rename was already handled everywhere a draft is READ; this was the one + place it is written. +- **Mail sent to another of your own accounts lost `inbox`** and was missing + from the account that received it. notmuch stores one message with two files + in that case, the sender's copy and the recipient's, and the `post-new` + hook's sent-mail carve-out matched the sent copy and stripped the tag from + both. ## [0.27.0] - 2026-08-25 |
