From 94462ae2cc68d563f883b29f1812f93d6b5a6c06 Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Mon, 24 Aug 2026 18:55:38 +0200 Subject: feat(queries): drop pinning, the menu is every saved query's home Item 94. The query row is the six built-in filters (Unread, Inbox, Important, Sent, Drafts, Trash), which compose with the account dropdown, and every saved query lives in the More queries menu. Nothing has to decide which of the user's queries get button space, which is the question item 93 would otherwise have had to answer. SavedQuery::pinned is gone from the struct, the reader, the writer, the save dialog's checkbox and the pin/unpin context action. The stored key is stripped rather than left ignored, at the user's choice. That has one non-obvious requirement: `pinned` stays named in loadSavedQueries' `known` list precisely so it is NOT collected as an unknown field, since those are preserved and written straight back. A mutation removing that name puts the key in the file for ever. Confirmed with the user before starting that the built-in set covers their use, since removing pinning removes the escape hatch this item was blocked on. Tests: four pinning tests replaced by two on the new rule, four more converted from buttons to menu entries. migrationPinsEveryEntry and aStoredGeneratedQueryIsUnpinnedNotDropped are rewritten around the property that outlived the flag rather than deleted: an entry must be KEPT, which is what both assertions were really guarding. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01KEcn3u19xPqv6ggD15PG4c --- CHANGELOG.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'CHANGELOG.md') diff --git a/CHANGELOG.md b/CHANGELOG.md index 1ee21a2..1144402 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -74,6 +74,16 @@ point at which they are stable. - The main toolbar keeps the actions that need no particular message (Compose, Sync, Archive, Delete, Mark all read, Undo). Reply moves to the new message-pane bar, where Forward joins it. +- **Saved queries live in the "More queries" menu, and only there.** The query + row is the six built-in filters (Unread, Inbox, Important, Sent, Drafts, + Trash), which compose with the account dropdown. Pinning a saved query to the + row is gone: nothing has to decide which of the user's queries get button + space, and every saved query is reached the same way. Each menu entry still + offers Run, Edit, Delete and, for a stored query, Create tagging rule. +- The message-pane bar shows **Edit draft** in place of Reply and Forward when + the message on display is a draft, and the bar itself now appears and + disappears with the pane's subject and details rows rather than sitting over + an empty pane. ### Fixed @@ -92,6 +102,12 @@ point at which they are stable. ### Upgrading +**Pinned saved queries are no longer buttons.** If any of your saved queries +sat on the query row, it is now in the "More queries" menu with the rest. The +`pinned` key is no longer read, and it is dropped from `queries.json` the next +time a query is saved, edited or deleted. Nothing else about a saved query +changes, and none are removed. + **To send, an account needs a `send_command`.** Without one it is receive-only: it still reads, tags and syncs exactly as before, and the compose actions are simply disabled for it. Nothing breaks by doing nothing. -- cgit v1.2.3