Welle 3 · Lucys Freiheiten je Aktionsart, Rückfragen mit „ja 7“, Lucy untersucht rote Hinweise, Wochenbericht

- services/lucy_autonomie.py: Stufe je Aktionsart (nur lesen, erst fragen, selbst handeln), Start „mehr Freiheit“;
  Meldung danach (POST /api/lucy/gehandelt)
- services/rueckfragen.py: nummerierte Rückfragen, nur Knöpfe der Oberfläche (ERLAUBT), „ja“ führt genau die
  gespeicherte Aktion aus, 24 h gültig, hinfällig wenn der Hinweis weg ist, Nachprüfung danach
- notify.sh -k: Antworttasten (Antworttastatur über den Direktweg, ohne Eingriff in Hermes)
- services/ermittlung.py: Wächter meldet rote Hinweise an Lucy; Knopf wird Rückfrage, Lucy sieht über den
  api_server nach und schickt Ursache und Weg als eine Nachricht
- services/wochenbericht.py + mc2-wochenbericht.timer (So 07:30): feste Sätze, Absatz vom Modell, offene
  App-Updates als Rückfragen
- MCP: Werkzeuge fragen die Freiheiten (auf_bitte), neu: freiheiten, rueckfragen, rueckfrage_beantworten,
  sicherheitsupdates_einspielen, snapshot_zurueckspielen, snapshots, geraet_logs, dienst_logs
- Ausführer-Aktion journal (nur lesend), POST /api/homelab/ziele/{id}/sicherheitsupdates
- Läufe des Homelabs mit flock (Oberfläche und Steward schreiben beide)
- Skill homelab-orchestrator, SOUL-Abschnitt als Kopie in deploy/nur-box

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Hitonabi
2026-09-25 19:12:50 +02:00
co-authored by Claude Opus 5.5
parent dd23f3fb4c
commit 12cefb427a
37 changed files with 2649 additions and 169 deletions
+16 -2
View File
@@ -81,6 +81,20 @@ def docker(ziel_id: str) -> dict:
return _antwort(updates.starten(ziel_id, "docker"))
@router.post("/ziele/{ziel_id}/sicherheitsupdates")
def sicherheitsupdates(ziel_id: str) -> dict:
"""Nur die Sicherheitsupdates (seit 25.09.2026): für Lucy und Rückfragen, wie im Wartungsfenster — Snapshot vorher,
Prüfung danach, bei Rot zurück; der Proxmox-Host startet dabei nicht neu."""
return _antwort(updates.starten(ziel_id, "sicherheit"))
@router.get("/ziele/{ziel_id}/journal")
def journal(ziel_id: str, zeilen: int = 80) -> dict:
"""Warnungen und Fehler aus dem Journal eines Containers (seit 25.09.2026, für Lucys Untersuchungen)."""
from services.homelab import journal as geraete_journal
return _antwort(geraete_journal.lesen(ziel_id, zeilen))
@router.post("/ziele/{ziel_id}/rueckweg-probe")
def rueckweg_probe(ziel_id: str) -> dict:
"""Rückweg testen (seit 25.09.2026): Snapshot anlegen, absichtlich rot werten, zurückgehen, nachprüfen."""
@@ -121,8 +135,8 @@ def hinweis_aktion(hinweis_id: str, aktion_id: str) -> dict:
@router.get("/laeufe")
def laeufe() -> dict:
return {"laeufe": updates.laeufe()}
def laeufe(anzahl: int = 20) -> dict:
return {"laeufe": updates.laeufe(max(1, min(anzahl, 100)))}
# --- „Alle aktualisieren“, Protokoll, Einstellungen (24.09.2026) ------------------------------------------------