Add TODO.md and reframe CLAUDE.md around REST-push philosophy
Kao is a display, not a monitor — external systems push events via REST rather than Kao polling things itself. Update CLAUDE.md to reflect this: - New Design Philosophy section making the REST-first approach explicit - Architecture diagram updated to show external systems as the push source - Detectors section demoted to "Legacy Detectors" with a note to prefer push - TODO.md added with planned REST API improvements (SSE, notify queue, sticky notifications, named presets, batch notify, /history endpoint) and display improvements (brightness curve, scrolling ticker) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
26
TODO.md
Normal file
26
TODO.md
Normal file
@@ -0,0 +1,26 @@
|
||||
# Kao — TODO
|
||||
|
||||
Feature ideas for future work, roughly in priority order.
|
||||
|
||||
## REST API improvements
|
||||
|
||||
- **`/status` SSE stream** — replace frontend polling with a Server-Sent Events
|
||||
endpoint so the display reacts instantly and the 2s polling overhead disappears
|
||||
- **Notification queue** — buffer rapid `/notify` calls and auto-advance through
|
||||
them instead of clobbering; important when HA fires several events at once
|
||||
- **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`
|
||||
(e.g. `"doorbell"` → specific emote/sound/color/duration) so callers can
|
||||
POST `{"preset": "doorbell"}` without repeating fields every time
|
||||
- **Batch `/notify`** — accept an array in a single POST so multiple
|
||||
notifications can be queued atomically
|
||||
- **`/history` endpoint** — a ring buffer of the last N state changes/events
|
||||
received, for auditing what fired overnight without tailing logs
|
||||
|
||||
## Display / frontend
|
||||
|
||||
- **Brightness curve** — dim gradually after dark rather than hard-sleeping;
|
||||
reduces OLED burn-in without losing glanceability
|
||||
- **Scrolling ticker** — when multiple events are active, cycle through their
|
||||
messages rather than only showing the top one
|
||||
Reference in New Issue
Block a user