summaryrefslogtreecommitdiffstats
path: root/CHANGELOG.md
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-08-04 11:54:59 +0200
committerDanilo M. <danix@danix.xyz>2026-08-04 12:54:57 +0200
commit1f25f2b10d995dd0978d5846e175c9094b69f53f (patch)
tree302c92595100981dcee2ba3ef02b8613649e2dbc /CHANGELOG.md
parent260b64d1d21afc2b124b98d13cce157e5b9d2f2d (diff)
downloadqtmaildir-1f25f2b10d995dd0978d5846e175c9094b69f53f.tar.gz
qtmaildir-1f25f2b10d995dd0978d5846e175c9094b69f53f.zip
release: 0.7.0v0.7.0
Arbitrary tagging from the UI and the unsynced-edits work are both new features, so this takes the minor slot. The SlackBuild's MD5SUM stays at the previous value until the 0.7.0 snapshot tarball exists, which is after the tag is pushed. Update it with sbodl before building the package. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Diffstat (limited to 'CHANGELOG.md')
-rw-r--r--CHANGELOG.md48
1 files changed, 48 insertions, 0 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 744fd71..e09e176 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -13,6 +13,54 @@ point at which they are stable.
Nothing yet.
+## [0.7.0] - 2026-08-04
+
+Tagging stops being limited to the five tags someone chose in advance, and the
+application admits when your work has not reached the mail store yet.
+
+### Added
+
+- **An Edit tags dialog**, on **Ctrl+T** or Message > Edit tags. Type tags to
+ add or remove, separated by commas, or clear a checkbox to drop a tag already
+ on the selection without retyping it. Until now archive, delete, spam, flag
+ and toggle-unread were the only tags reachable from the UI, and applying any
+ other one meant leaving for a terminal.
+- Both fields **complete against every tag in the database**, matching on
+ substrings so `amazon` finds `shopping/amazon`. Completion is a guard against
+ typing `shoppping` beside `shopping`, not a restriction: a tag that does not
+ exist yet is exactly what the dialog is for.
+- With several threads selected, a tag on only some of them shows a partially
+ checked box saying how many. **Leaving it alone changes nothing.** Check it to
+ apply to all, clear it to remove from all.
+- Tag names are refused if empty, if they start with `-` (notmuch reads that as
+ "remove this tag", so such a tag is a trap), or if they contain spaces or
+ unprintable characters. Nothing is applied until the whole set is valid, since
+ a half-applied change leaves you unable to tell which half landed.
+- **The status bar counts tag changes a sync has not carried over**, and clears
+ the count when one succeeds. A failed sync leaves it standing.
+- **Quitting with changes outstanding asks what to do**, via the new
+ `[general] sync_on_exit`: `ask` (the default) offers to sync, quit anyway or
+ stay; `always` syncs without asking; `never` quits silently. A sync started at
+ exit holds the window open until it finishes rather than being killed
+ mid-run, and one that fails does not quit.
+
+### Fixed
+
+- In the tag fields, only the first tag completed. `QLineEdit::setCompleter`
+ matches against the widget's entire text, so once a field read `unread, fl`
+ that whole string was matched against the tag names and nothing was offered
+ again. The same defect the query bar hit in 0.5.0, in a second place.
+
+### Notes
+
+The unsynced count is a lower bound rather than a guarantee: an external
+`notmuch new` from your own cron can carry changes over without the application
+noticing.
+
+The exit prompt is not a destructive-action confirmation of the kind this
+project avoids. Those cover tag mutations, which keep undo instead of a dialog.
+This asks about losing work at the one point where undo cannot help.
+
## [0.6.0] - 2026-08-04
Two things the app knew and would not say: who a message was addressed to,