v2.2.0-beta.1
Pre-release
Pre-release
·
1 commit
to main
since this release
Notifications got rebuilt this time. Rules run through one pipeline underneath.
Notifications
- Settings → Notifications is a list of destinations now. Add as many as you like, several of the same type is fine: Discord, JSON webhook, ntfy, Gotify, Apprise, Pushover, plus the built-in mobile push and browser toasts. Each one picks the events it receives and has a Test button.
- The Send Notification rule action picks destinations instead of channels. You can create one from inside the rule dialog.
- Existing setups carry over on first boot: your Discord, webhook, ntfy and Pushover settings and the routing toggles become destinations, and rules using notify are rewritten. No compose change.
- Failed deliveries retry three times, then park in a dead-letter queue instead of vanishing.
- Rule push notifications carry the poster and user avatar again.
- Destination secrets are encrypted at rest with a key derived from JWT_SECRET; ENCRYPTION_KEY wins if set. Rotate JWT_SECRET without ENCRYPTION_KEY and the affected destinations get flagged for you to re-enter. Backups restore only with the same secret.
Rules
- Paused-for rules fire when the threshold passes, not on the next poll or event.
- Inactivity rules count accounts that never played anything.
- v2 rule violations reach mobile push again; the old rule-type filter was dropping them.
- Kill stream fields wrap instead of stretching the rule dialog.
Under the hood
- One rule event dispatcher and one violation writer behind the poller, SSE and the inactivity job, with explicit trigger types (session started/stopped, transcode, pause/resume, media change, account inactive).
- GET /settings no longer returns the notification provider keys; /destinations replaces them.