| Age | Commit message (Collapse) | Author | Files | Lines |
|
Why a revision counter rather than a count delta or a date
watermark, why the state file carries a UUID, and why an unseeded
run stays quiet. Also records the final notification presentation:
the split heading, the absolute-path icon, and the show_indicators
setting that keeps the action indicator off.
|
|
The watcher already writes ~/.local/state/mail-watcher.heartbeat every
60s, so the drawer reads it and shows a dot: green when idling, yellow
when a folder gave up, red when the heartbeat is stale or missing.
Backoff stays green because it is normal recovery and the watcher's own
health check treats it that way. The staleness rule is reimplemented in
a few lines rather than shelling out to --status; the heartbeat file is
the documented cheap-to-poll surface.
Read once per open rather than watched: the heartbeat is written by
atomic replace, so an inotify watch held on the old inode dies with it.
"Sync now" is removed with its Process. The watcher triggers syncs, the
cron tick is the backstop, and waybar's right-click still runs
mailsync.sh.
|
|
Records the decisions a later reader would otherwise reverse, each with the
measurement behind it: counting by the account tag rather than the path glob
qtmaildir itself uses, because notmuch deduplicates by message id and a glob
double-counts a message that arrived at two addresses; validating notmuch
output as an integer, because a rejected query prints nothing while a
misparsed one returns a plausible wrong number; and parsing the config by
walking lines, because account folders named like [Gmail]/Bozze end a
bracket-delimited section body before its label.
Also notes the one property that differs from the other two panels,
exclusionMode Normal, with the measured geometry showing the overlay starting
exactly where waybar ends.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WWL8JYHu7yhAdtx5pU9PMU
|