Files
mission-control-v2/deploy/specs/curator-idle-watchdog.md
T
Hitonabi a1de1ec2ac feat: Curator Idle Watchdog implementieren
- Skript deploy/curator-idle-watchdog.sh für 14-Tage-Idle-Erkennung
- Spezifikation deploy/specs/curator-idle-watchdog.md
- Wöchentliche Prüfung (Sonntag 00:00), Trigger bei Überschreitung
2026-07-24 08:53:19 +02:00

77 lines
2.8 KiB
Markdown

# Curator Idle Watchdog Spezifikation
## Ziel
Automatische Reaktivierung des Hermes Curator nach **14 Tagen Idle**, damit der Skill-Graph nicht dauerhaft isoliert bleibt.
## Problem
- Curator läuft normalerweise alle 7 Tage (`interval: every 7d`)
- Wenn der Curator ausfällt (z. B. aufgrund von `paused: true`), bleiben Skills isoliert
- Derzeitige Beobachtung: Curator blockiert seit 16 Tagen (Stand 24.07.2026)
- Keine automatische Erkennung → keine automatische Wiederherstellung
## Lösung: Watchdog-Skript
### `curator-idle-watchdog.sh`
**Zweck:** Cron-basierte Prüfung, ob der Curator zu lange offline war.
**Ablauf:**
1. `hermes curator status` ausführen
2. "last run"-Zeit extrahieren (z. B. `17d ago`)
3. Tage berechnen und mit `THRESHOLD_DAYS=14` vergleichen
4. Bei Überschreitung → `hermes curator run` triggern
5. Alle Aktionen nach `~/.hermes/logs/curator/idle-watchdog-YYYYMMDD.log` protokollieren
### Cron-Eintrag
**Zeitplan:** Sonntag 00:00 (wöchentlich)
```bash
0 0 * * 0 ~/.hermes/profiles/werkstatt/scripts/curator-idle-watchdog.sh
```
**Logik:**
- Prüfung nur, wenn Curator `ENABLED` ist
- Wenn `last run` < 14 Tage → nichts tun
- Wenn `last run` ≥ 14 Tage → `hermes curator run` aufrufen
- Fehler protokollieren, aber nicht blockieren
## Implementierung
### Dateien
- Skript: `~/.hermes/profiles/werkstatt/scripts/curator-idle-watchdog.sh`
- Cron: `/etc/cron.d/curator-idle-watchdog` (oder user-level via `crontab -e`)
- Logs: `~/.hermes/logs/curator/idle-watchdog-*.log`
### Akzeptanzkriterien
- [ ] Skript existiert und ist ausführbar (`chmod +x`)
- [ ] Cron-Eintrag ist aktiv (wöchentliche Prüfung Sonntag 00:00)
- [ ] Reaktivierung triggert `hermes curator run`
- [ ] Protokollierung in `~/.hermes/logs/curator/` funktioniert
- [ ] Keine Änderungen an `main` oder `~/mission-control-v2`
## Test
### Manueller Test
```bash
# Simuliere 15-Tage-Idle
sed -i 's/last run:.*$/last run: 15d ago/' <(hermes curator status)
# Watchdog ausführen
~/.hermes/profiles/werkstatt/scripts/curator-idle-watchdog.sh
```
### Erwartetes Verhalten
1. Log-Eintrag: `WARNUNG: Curator ist für 15 Tage idle (>= 14) → triggere 'hermes curator run'`
2. `hermes curator run` wird ausgeführt
3. Log-Eintrag: `ERFOLG: Curator-Reaktivierung gestartet`
## Rollback-Plan
- Cron-Eintrag löschen: `crontab -e` → Zeile entfernen
- Skript löschen: `rm ~/.hermes/profiles/werkstatt/scripts/curator-idle-watchdog.sh`
- Logs archivieren: `tar -czf idle-watchdog-logs-$(date +%Y%m%d).tar.gz ~/.hermes/logs/curator/idle-watchdog-*.log`
## Anmerkungen
- 14 Tage Threshold = Kompromiss zwischen zu häufigem Trigger (z. B. bei kurzen Wartungen) und zu spätem Erkennen
- Watchdog prüft nur bei `ENABLED` Curator (kein Fehlalarm bei `paused`)
- Keine Abhängigkeit zu externen Diensten (reines Hermes-System)