Feat: notification queue — buffer rapid /notify calls, play sequentially

When multiple /notify calls arrive in quick succession, they now queue up
and display one at a time rather than clobbering each other. Each notification
plays for its full duration before the next is promoted.

- /notify returns `queued: true` and `notify_queue_size` when buffered
- Cleanup thread auto-advances the queue when the playing notification expires
- /clear on the playing notification promotes the next immediately
- /clear on a queued (not-yet-playing) notification removes it from the queue
- /clear-all also drains the queue
- Status response includes `notify_queue_size` for frontend awareness

Bump to v2.3.3. Update OpenAPI spec, README, TODO.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-28 23:32:06 -06:00
parent 9f48dec4fc
commit 9a10a6e10c
6 changed files with 100 additions and 25 deletions

View File

@@ -4,8 +4,7 @@ Feature ideas for future work, roughly in priority order.
## REST API improvements
- **Notification queue** — buffer rapid `/notify` calls and auto-advance through
them instead of clobbering; important when HA fires several events at once
- ~~**Notification queue**~~done in v2.3.3
- **Sticky notifications** — a `sticky: true` flag on `/notify` to keep a
notification visible until explicitly cleared via `/clear`, rather than TTL-expiring
- **Named presets** — define reusable notification profiles in `config.json`