Gives every notification kind its own notification and briefing card switches #81

Merged
natemsz merged 2 commits from feat/notify-card-routing into main 2026-11-02 05:42:51 +00:00
Owner

Each event kind that can be a notification, a briefing card, or both now has two independent per-user switches in notification settings: notifications on or off, and briefing card on or off. Together they give notification only, card only, both, or neither. The card switch is account level. Channel choices for notifications stay as they are.

Storage stays in the existing notification preferences. The save uses the same shown-marker pattern as the channel switches, so submitting the form with every box unticked still saves as all off. Notification creation and delivery check the notification switch. The briefing builder checks the card switch after dismissal bookkeeping, so a stored dismissal survives the card being switched off and back on. Kinds with no card show No card instead of a dead switch.

New kinds in this round:

  • Undercut digest: digest only, never one notification per beaten order, with a per-user maximum frequency enforced when the digest is built. Opens My Orders. No undercut tool page.
  • Gate camp alerts: for systems the user chooses in settings, fired only while one of their characters is online. Has a card and a notification.
  • Contract events: accepted, finished, and expired, courier included. Deduped on contract and event so repeat polls do not notify twice. Has a card and a notification.
  • Re-login needed: fires once on the transition when a token is parked dead on a definitive invalid_grant, not on every worker cycle. Has a card and a notification, and the hint on the character itself is plainer.
  • Industry job done keeps its existing notification and follows the same routing.

Two things to flag. The briefing deck cap moves from 12 to 14 because the new contract and camp cards pushed a dense fixture over the cap and hid the mail card. And TestBriefingFontPreloadAndFooter fails on clean main too (font 404), so that failure predates this branch.

Gate: gofmt clean, go vet clean, targeted suites pass (settings, notify routing, briefing routing). No version.txt changes.

Each event kind that can be a notification, a briefing card, or both now has two independent per-user switches in notification settings: notifications on or off, and briefing card on or off. Together they give notification only, card only, both, or neither. The card switch is account level. Channel choices for notifications stay as they are. Storage stays in the existing notification preferences. The save uses the same shown-marker pattern as the channel switches, so submitting the form with every box unticked still saves as all off. Notification creation and delivery check the notification switch. The briefing builder checks the card switch after dismissal bookkeeping, so a stored dismissal survives the card being switched off and back on. Kinds with no card show No card instead of a dead switch. New kinds in this round: - Undercut digest: digest only, never one notification per beaten order, with a per-user maximum frequency enforced when the digest is built. Opens My Orders. No undercut tool page. - Gate camp alerts: for systems the user chooses in settings, fired only while one of their characters is online. Has a card and a notification. - Contract events: accepted, finished, and expired, courier included. Deduped on contract and event so repeat polls do not notify twice. Has a card and a notification. - Re-login needed: fires once on the transition when a token is parked dead on a definitive invalid_grant, not on every worker cycle. Has a card and a notification, and the hint on the character itself is plainer. - Industry job done keeps its existing notification and follows the same routing. Two things to flag. The briefing deck cap moves from 12 to 14 because the new contract and camp cards pushed a dense fixture over the cap and hid the mail card. And TestBriefingFontPreloadAndFooter fails on clean main too (font 404), so that failure predates this branch. Gate: gofmt clean, go vet clean, targeted suites pass (settings, notify routing, briefing routing). No version.txt changes.
Gives every notification kind its own notification and briefing card switches
Some checks failed
github/analysis Analysis gate on GitHub runners
github/core-only Core-only gate on GitHub runners
github/test Test gate on GitHub runners
github/race Race gate on GitHub runners
6a5feac393
Each kind that can appear as a notification, a briefing card, or both now has two independent per-user switches in notification settings, so each user can pick notification only, card only, both, or neither. The choices live in the existing notification preferences and the save keeps an all-off state. The briefing builder checks the card switch after dismissal bookkeeping, and creation and delivery check the notification switch.

New kinds: undercut digest (digest only, with a per-user maximum frequency, opens My Orders), gate camp alerts for chosen systems (online characters only, card and notification), contract accepted, finished, and expired including courier (deduped per contract and event, card and notification), and re-login needed on a definitive invalid_grant (fires once on the transition, card and notification, with a plainer hint on the character). Industry job done follows the same routing.
Include the kinds marker when the push test switches a kind off
All checks were successful
github/analysis Analysis gate on GitHub runners
github/test Test gate on GitHub runners
github/core-only Core-only gate on GitHub runners
github/race Race gate on GitHub runners
a5b98469e3
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
EveSynapse/evesynapse!81
No description provided.