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:
@@ -84,7 +84,7 @@ All detectors support: `AGGREGATOR_URL`, `CHECK_INTERVAL`, `THRESHOLD_WARNING`,
|
||||
| `/event` | POST | Register event: `{"id": "name", "priority": 1-4, "message": "optional", "ttl": seconds}` |
|
||||
| `/clear` | POST | Clear event: `{"id": "name"}` |
|
||||
| `/clear-all` | POST | Clear all active events |
|
||||
| `/notify` | POST | Notification with optional customization (see below) |
|
||||
| `/notify` | POST | Queued notification — buffered if one is playing, auto-advances when it expires |
|
||||
| `/sleep` | POST | Enter sleep mode |
|
||||
| `/wake` | POST | Exit sleep mode |
|
||||
| `/stream` | GET | SSE stream — pushes state JSON on every change (used by the frontend) |
|
||||
@@ -105,6 +105,8 @@ All detectors support: `AGGREGATOR_URL`, `CHECK_INTERVAL`, `THRESHOLD_WARNING`,
|
||||
}
|
||||
```
|
||||
|
||||
Rapid calls are buffered — each notification plays for its full `duration` before the next is shown. `/clear-all` also drains the queue.
|
||||
|
||||
| Field | Required | Description |
|
||||
|-------|----------|-------------|
|
||||
| `message` | No | Text to display below emote |
|
||||
|
||||
Reference in New Issue
Block a user