Commit Graph

21 Commits

Author SHA1 Message Date
dbba288d24 Fix: event TTL and version display - add default TTL for priority 1/2 events, fetch fresh state after version tap 2026-02-26 19:59:03 -06:00
aaae20281d Bump to v2.3.0: replace polling with SSE stream, fix detector imports
- Add GET /stream SSE endpoint to aggregator.py; state is pushed
  instantly on every change instead of fetched every 2s
- Replace setInterval polling in index.html with EventSource;
  onerror shows the ( ?.?) face and auto-reconnect is handled by
  the browser natively
- Fix ModuleNotFoundError in detectors: inject project root into
  PYTHONPATH when launching subprocesses from kao.py
- Update openapi.yaml, CLAUDE.md, README.md with /stream endpoint
- Remove completed SSE item from TODO.md

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-24 17:25:15 -06:00
50e34b24c6 Bump to v2.2.0: fix warning/bubble sounds, add klaxon, refresh docs
- index.html: fix playWarningSound (440→550 Hz, louder), fix playBubbleSound
  (audible volumes/durations), add looping klaxon sound (sawtooth wah-wah),
  stopKlaxon() on tap and state clear, bump VERSION to v2.2.0
- kao_tui.py: add klaxon to SOUNDS list, drop notify duration 5→2s for
  faster iteration; also include improved post() error reporting
- CLAUDE.md: add kao_tui.py to file structure, fix personality table
  (remove ˙▿˙ row not in aggregator), add klaxon to sound list
- README.md: add klaxon to sound list, update counts
- openapi.yaml: bump version to 2.2.0, add klaxon to sound enum

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-20 17:30:19 -06:00
92e6441218 Bump to v2.1.0: add kao_tui.py developer TUI and WSL venv
- Add kao_tui.py: Textual TUI with Sounds, Faces, Events, Controls tabs
- Add textual to requirements.txt
- Add venv activation instructions to README
- Add Developer TUI section to README

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-20 17:12:05 -06:00
a074a42d40 Bump to v2.0.0: daily emote rotation + expanded sound library
- Emote face is now stable all day; /wake picks a fresh random face each
  morning instead of rotating every 5 minutes. Removes EMOTE_ROTATION_INTERVAL
  and last_emote_change entirely.
- Added 10 new synthesized sounds for /notify: doorbell, knock, ding, blip,
  siren, tada, ping, bubble, fanfare, and alarm (loops until tapped or TTL
  expires). stopAlarm() wired into tap handler and handleStateChange().
- openapi.yaml: new sound names added to enum.
- CLAUDE.md / README.md updated to reflect both changes.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-20 16:36:23 -06:00
dd8bf6005b Bump to v1.5.0: deduplicate detectors, fix aggregator bugs, fix blocking I/O
- Extract shared send_event/clear_event into detectors/base.py, removing
  ~150 lines of duplication across all 6 detectors
- Fix default aggregator URL from port 5000 to 5100 in all detectors
- Standardize cpu.py and memory.py to use active_alerts set pattern
- Fix immediate emote rotation on startup (last_emote_change = time.time())
- Extract magic numbers to named constants in aggregator
- Protect write_status() with try/except OSError
- Fix notify event ID collision with monotonic counter
- Replace blocking stream_output() with background daemon threads in kao.py

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 12:17:17 -06:00
c3ceb74ce8 Bump to v1.4.0: tap-to-dismiss, docker restart detection, cleanup thread fix
Add /clear-all endpoint and wire it to the tap handler so tapping the
display dismisses active warnings/critical alerts. Fix docker detector
to track restart count deltas instead of relying on the transient
"restarting" state. Wrap cleanup thread in try/except so it can't die
silently and leave events stuck forever.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 11:54:00 -06:00
fa0c16609d And bumped Version 2026-02-06 11:10:37 -06:00
94f29bf4f4 Fix /docs: add explicit route for openapi.yaml
Flask static folder wasn't serving .yaml files automatically.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 16:36:42 -06:00
5e76ce9597 Add interactive API docs at /docs endpoint
Swagger UI served via CDN for browsing OpenAPI spec.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 16:33:21 -06:00
4262865520 Add OpenAPI 3.0 documentation for API
Documents all endpoints with request/response schemas and examples.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 16:28:50 -06:00
8ad86d1c6e Bump to v1.3.0, add commit guidelines to CLAUDE.md
- Version bump to v1.3.0
- Added instruction to bump version and update README on every commit

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 22:02:47 -06:00
1ec67b4033 Enhance /notify with custom emote, color, animation, sound
- /notify now accepts optional: emote, color, animation, sound
- Backend passes custom properties to status response
- Frontend handles custom sounds (chime, alert, success, etc.)
- Added new sound effects: chime, alert, success
- Updated documentation with full notify options
- Added HA automation examples for doorbell and timer

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 21:50:32 -06:00
942cdad5b8 Bump version to v1.2.0
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 21:18:59 -06:00
66c9790d2b Bump to v1.1.0, enable network and docker detectors
- Version bump reflecting new features (sounds, tap reaction, docker detector)
- Rename title to Kao
- Enable network and docker detectors by default

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 20:57:18 -06:00
b99ac96ffa Add tap reaction with version display
Tap the screen to see a surprised face and version number.
Returns to normal after 1.5 seconds.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 18:02:08 -06:00
e82151daa0 Add optional sound effects for state changes
- Warning: soft double-beep
- Critical: urgent descending tone
- Notify: gentle ping
- Recovery: happy ascending chirp

Enable with ?sound=on or tap screen to activate.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 17:45:23 -06:00
5783a52cfa Add Linux deployment scripts
- install.sh: Sets up /opt/kao with systemd service
- uninstall.sh: Clean removal
- Hide message when optimal (only show when something to report)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 22:31:20 -06:00
53e6f0bcdd Add sleep mode and documentation
- Sleep/wake endpoints for Home Assistant webhooks
- Sleep state: dim ( -_-)zzZ with slow breathing animation
- Updated CLAUDE.md with full technical reference
- Added README.md with user guide and HA integration examples

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 21:43:25 -06:00
af4ccb9a35 Add personality system with emote variations and animations
- Rotating optimal faces with paired animations (breathing, floating, bouncing, swaying)
- Occasional idle expressions (winks/blinks) with 15% chance
- Recovery celebration emote with bounce animation
- Connection lost state with searching animation
- Face rotation every 5 minutes

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 21:31:27 -06:00
11896919e4 Initial commit: Sentry-Emote system monitor
- Aggregator: Flask-based event broker with priority queue
- Frontend: OLED-optimized UI with animations
- Detectors: disk, cpu, memory, service, network
- Unified entry point (sentry.py) with process management
- Heartbeat TTL system for auto-clearing stale events

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 21:04:02 -06:00