aboutsummaryrefslogtreecommitdiffstats
path: root/docs/superpowers/specs/2026-09-12-mail-overview-design.md
AgeCommit message (Collapse)AuthorFilesLines
37 hoursdocs: record why mail-overview counts by tag, not pathDanilo M.1-0/+23
qtmaildir scopes an account with a path glob, so the obvious move was to copy that query. It is wrong for this panel. notmuch deduplicates by message id, so a message that arrived at two configured addresses is one message with two paths, and a path glob counts it under both accounts: the five accounts here sum to 102 against a global total of 101. The icon shows one global total and the panel header repeats it, so rows that sum to a different number would look like a bug. Counting by the account tag, which is a property of the message and therefore singular, makes the rows sum to the header. The cost is that a cross posted message appears under only the account the post-new hook attributed it to. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WWL8JYHu7yhAdtx5pU9PMU
37 hoursdocs: design for mail-overview, a notmuch mail drawerDanilo M.1-0/+259
Replaces three waybar modules that each poll the Gmail API through a python script with its own credentials file, cover three of five accounts, and open Thunderbird. Everything they fetch over the network is already in the local notmuch index, tagged per account. Two decisions carry most of the design. Counts are scoped to "tag:unread and tag:inbox" rather than plain "tag:unread", which for one account is the difference between 32 and 41, because the inbox number is the one that means new mail worth looking at. And the waybar module runs in continuous mode with an inotifywait loop, so waybar owns the watcher process and there is no daemon to supervise on a machine with no systemd; the watch is on the xapian directory rather than on named files because a commit replaces them, which breaks a watch held on a file. The account list is not in the component. qtmaildir.conf already has one [account.<key>] section per account, where <key> is the notmuch tag suffix, carrying a display label and a colour, so the panel parses that and a new account appears without touching QML. Thread level actions are out of scope because they are blocked rather than deferred: qtmaildir takes no arguments, so nothing can tell it which thread to open. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WWL8JYHu7yhAdtx5pU9PMU