Rename project to Kao

- Renamed sentry.py to kao.py
- Updated all references from Sentry-Emote to Kao
- Kao (顔) means "face" in Japanese

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-02-02 21:50:12 -06:00
parent 53e6f0bcdd
commit 71c7bb756a
4 changed files with 18 additions and 18 deletions

View File

@@ -4,7 +4,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
## Project Overview ## Project Overview
Sentry-Emote is a minimalist system status monitor designed for an old Pixel phone used as an ambient display. It uses ASCII "emotes" to represent system health instead of complex graphs. Kao is a minimalist system status monitor designed for an old Pixel phone used as an ambient display. It uses ASCII "emotes" to represent system health instead of complex graphs.
## Architecture ## Architecture
@@ -20,7 +20,7 @@ Sentry-Emote is a minimalist system status monitor designed for an old Pixel pho
- **Aggregator** (`aggregator.py`) — Flask service managing the event queue and priority logic - **Aggregator** (`aggregator.py`) — Flask service managing the event queue and priority logic
- **Detectors** (`detectors/*.py`) — Independent scripts monitoring system metrics - **Detectors** (`detectors/*.py`) — Independent scripts monitoring system metrics
- **Emote-UI** (`index.html`) — OLED-optimized web frontend - **Emote-UI** (`index.html`) — OLED-optimized web frontend
- **Sentry** (`sentry.py`) — Unified entry point managing all processes - **Sentry** (`kao.py`) — Unified entry point managing all processes
## Quick Start ## Quick Start
@@ -28,7 +28,7 @@ Sentry-Emote is a minimalist system status monitor designed for an old Pixel pho
python -m venv venv python -m venv venv
source venv/bin/activate # or .\venv\Scripts\activate on Windows source venv/bin/activate # or .\venv\Scripts\activate on Windows
pip install -r requirements.txt pip install -r requirements.txt
python sentry.py python kao.py
``` ```
UI available at http://localhost:5000 UI available at http://localhost:5000
@@ -107,7 +107,7 @@ Additional states:
## File Structure ## File Structure
``` ```
├── sentry.py # Unified entry point ├── kao.py # Unified entry point
├── aggregator.py # Event broker/API server ├── aggregator.py # Event broker/API server
├── index.html # OLED-optimized frontend ├── index.html # OLED-optimized frontend
├── config.json # Runtime configuration ├── config.json # Runtime configuration

View File

@@ -1,4 +1,4 @@
# Sentry-Emote # Kao
A minimalist system status monitor that uses ASCII emotes to display server health on an old phone. A minimalist system status monitor that uses ASCII emotes to display server health on an old phone.
@@ -20,14 +20,14 @@ Turn an old phone (with its OLED screen) into a glanceable ambient display for y
```bash ```bash
# Clone and setup # Clone and setup
git clone https://github.com/yourusername/sentry-emote.git git clone https://github.com/yourusername/kao.git
cd sentry-emote cd kao
python -m venv venv python -m venv venv
source venv/bin/activate # Windows: .\venv\Scripts\activate source venv/bin/activate # Windows: .\venv\Scripts\activate
pip install -r requirements.txt pip install -r requirements.txt
# Run everything # Run everything
python sentry.py python kao.py
``` ```
Open http://localhost:5000 on your phone (use Fully Kiosk Browser for best results). Open http://localhost:5000 on your phone (use Fully Kiosk Browser for best results).

View File

@@ -1,5 +1,5 @@
""" """
Sentry-Emote Aggregator Kao Aggregator
A lightweight event broker that manages priority-based system status. A lightweight event broker that manages priority-based system status.
""" """

View File

@@ -1,9 +1,9 @@
""" """
Sentry-Emote Kao
Single entry point for the entire system - aggregator + all detectors. Single entry point for the entire system - aggregator + all detectors.
Usage: Usage:
python sentry.py [--config config.json] python kao.py [--config config.json]
""" """
import json import json
@@ -22,7 +22,7 @@ RESTART_DELAY = 5
AGGREGATOR_STARTUP_TIMEOUT = 10 AGGREGATOR_STARTUP_TIMEOUT = 10
class SentryEmote: class KaoManager:
def __init__(self, config_path): def __init__(self, config_path):
self.config_path = Path(config_path) self.config_path = Path(config_path)
self.base_dir = self.config_path.parent self.base_dir = self.config_path.parent
@@ -150,7 +150,7 @@ class SentryEmote:
def stop_all(self): def stop_all(self):
"""Stop all processes (detectors first, then aggregator).""" """Stop all processes (detectors first, then aggregator)."""
self.running = False self.running = False
print("\nShutting down Sentry-Emote...") print("\nShutting down Kao...")
# Stop detectors first # Stop detectors first
for name, info in list(self.processes.items()): for name, info in list(self.processes.items()):
@@ -176,14 +176,14 @@ class SentryEmote:
except subprocess.TimeoutExpired: except subprocess.TimeoutExpired:
process.kill() process.kill()
print("Sentry-Emote stopped.") print("Kao stopped.")
def run(self): def run(self):
"""Main run loop.""" """Main run loop."""
self.load_config() self.load_config()
print("=" * 50) print("=" * 50)
print(" Sentry-Emote") print(" Kao")
print("=" * 50) print("=" * 50)
print(f"Config: {self.config_path}") print(f"Config: {self.config_path}")
print(f"Aggregator URL: {self.config.get('aggregator_url')}") print(f"Aggregator URL: {self.config.get('aggregator_url')}")
@@ -247,17 +247,17 @@ def main():
sys.exit(1) sys.exit(1)
# Setup signal handlers # Setup signal handlers
sentry = SentryEmote(config_path) kao = KaoManager(config_path)
def signal_handler(sig, frame): def signal_handler(sig, frame):
sentry.stop_all() kao.stop_all()
sys.exit(0) sys.exit(0)
signal.signal(signal.SIGINT, signal_handler) signal.signal(signal.SIGINT, signal_handler)
signal.signal(signal.SIGTERM, signal_handler) signal.signal(signal.SIGTERM, signal_handler)
# Run # Run
sentry.run() kao.run()
if __name__ == "__main__": if __name__ == "__main__":