summaryrefslogtreecommitdiffstats
path: root/docs/superpowers/specs
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-08-15 10:44:16 +0200
committerDanilo M. <danix@danix.xyz>2026-08-15 10:44:16 +0200
commite6e18849bd5aa49dbdd299982d39a92e7360d0aa (patch)
tree081e25b645ec52dd361c3e26ee74ffaeafff7ec3 /docs/superpowers/specs
parentfdbe1d207e2fbdf3224c929ff24e947fe8591ba3 (diff)
downloadqtmaildir-e6e18849bd5aa49dbdd299982d39a92e7360d0aa.tar.gz
qtmaildir-e6e18849bd5aa49dbdd299982d39a92e7360d0aa.zip
docs: open item 94, dropping pinned once the buttons are built-in
The user's end state for the query row is built-in filters only, with every saved query living in the menu. At that point SavedQuery::pinned has nothing left to decide. Blocked on 93 and deliberately separate from it: the four buttons have to be lived with first, and if one of them is wrong, pinning is the escape hatch, which has to still exist to be used. Recorded as a user-visible removal rather than a cleanup. pinned shipped in 0.18.0 as a checkbox in SaveQueryDialog and a right-click action, so removing it is a minor bump with an Upgrading note. The stored field is a separate decision from the UI, and leaving it in queries.json unread is both cheaper and reversible. The spec for 93 gains the ordering rule this resolves: filters first in fixed order, the user's pinned queries after them, and nothing configurable, since the mixed row exists only until 94 lands.
Diffstat (limited to 'docs/superpowers/specs')
-rw-r--r--docs/superpowers/specs/2026-08-15-builtin-filters-design.md16
1 files changed, 16 insertions, 0 deletions
diff --git a/docs/superpowers/specs/2026-08-15-builtin-filters-design.md b/docs/superpowers/specs/2026-08-15-builtin-filters-design.md
index cd22bab..d44502e 100644
--- a/docs/superpowers/specs/2026-08-15-builtin-filters-design.md
+++ b/docs/superpowers/specs/2026-08-15-builtin-filters-design.md
@@ -143,6 +143,22 @@ class of complaint item 89 is about. And the account combo is a plain
`QComboBox`, so a keyboard user arrowing through it would fire a query per
account passed on the way to the one they wanted.
+## Ordering, and why it is temporary
+
+The four filters and the user's remaining pinned queries share one row, so
+something has to order them. **Filters first, in the fixed order Unread, Inbox,
+Flagged, Sent; the user's pinned queries after them, keeping their own order.**
+
+Do not build anything configurable for this. The arrangement is transitional:
+item 94 removes `pinned` entirely once the user has confirmed the four buttons
+cover what they use, after which the row is filters only and there is nothing
+left to order. A settings surface for a mixed row would be built and deleted
+inside two items.
+
+`pinned` itself is untouched by this item and stays exactly as it is. The user's
+own queries are unpinned as a migration step, which is a change to their data,
+not to the mechanism.
+
## Constraints
- **One rule across all three surfaces.** Buttons, the "more queries" menu and