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
+9 -6
View File
@@ -98,14 +98,17 @@ Build, replace the copy in `/Applications`, and relaunch — one command:
npm run ship
```
One build, two destinations, every time:
That replaces `/Applications/Work.app` and relaunches it.
- `/Applications/Work.app` — the copy tested here
- `~/Desktop/Work-<version>.dmg` — the installer to send someone else
To hand a build to someone else:
Both come from the same build, so a tester runs byte for byte what was just verified
rather than a second build that drifted. The disk image is the ordinary drag-to-Applications
kind — what someone expects to be handed, rather than a bare bundle to file themselves.
```bash
npm run ship -- --dmg
```
which also writes `~/Desktop/Work-<version>.dmg` from the same build, so a tester runs
byte for byte what was just verified rather than a second build that drifted. It is the
ordinary drag-to-Applications disk image.
The app is ad-hoc signed, so the first launch on someone else's Mac needs
**right-click → Open** rather than a double-click. Gatekeeper refuses it silently