Stop announcing the same email twice

Both notification paths feed one channel, which is how a single arrival
came to be announced twice: Gmail names the sender, then the unread count
says "1 new" behind it seconds later.

A count is now skipped when the app has spoken for itself in the last
twenty seconds - generous, because a count is only noticed on a
four-second tick, well after the app raised its own. Settings can also
turn count notifications off outright, for hearing only what an app says
in its own words, at the cost of the tools that never say anything.

`npm run ship` now updates only /Applications. The Desktop installer
moved behind `--dmg`, for when a build is going to someone else.
This commit is contained in:
2026-09-02 09:36:57 +02:00
parent c989fef6fe
commit aa19da48de
10 changed files with 121 additions and 21 deletions
@@ -240,7 +240,15 @@ always believes that. They come from the **unread count in the title**: `Inbox (
moves into a service worker this app cannot reach. A rise while the app is not the one on
screen raises a banner; a fall is you reading things, and is not news.
The site's own notifications still work when they fire — both paths feed the same channel.
The site's own notifications still work when they fire — both paths feed the same channel,
which is exactly how the same arrival came to be announced twice: Gmail names the sender,
and the count says "1 new" behind it seconds later.
A count is therefore skipped when the app has spoken for itself in the last twenty seconds.
The window is generous because a count is only noticed on a four-second tick, well after
the app raised its own. Settings can also turn count notifications off outright, for
someone who would rather hear only what an app says in its own words — at the cost of the
tools that never say anything, Google Chat among them.
### Counting what was missed