Files
Kao/TODO.md
Spencer 9291066263 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>
2026-02-20 17:42:21 -06:00

1.3 KiB

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