waechter: schlafende Spracherkennung ist kein Kernbefund mehr

Nach dem Schlafenlegen des voice-service (disable --now) meldete die Kern-Probe
"Der Hoer-Dienst antwortet nicht" als roten Hinweis samt Telegram (24.09. 14:56, Fehlalarm).
Die Probe laeuft jetzt nur, wenn der Dienst nicht schlaeft. Dazu ein Lint-Nachtrag im Test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Hitonabi
2026-09-24 15:19:55 +02:00
co-authored by Claude Opus 5.5
parent b0c9549a29
commit 99ba6a78ab
2 changed files with 18 additions and 3 deletions
+4 -2
View File
@@ -392,8 +392,10 @@ def pruefe_kern() -> list[Befund]:
proben.append(("kern:hermes", "Hermes antwortet nicht", proben.append(("kern:hermes", "Hermes antwortet nicht",
"Der Agent-Dienst reagiert nicht. Telegram und Lucys Werkzeuge gehen gerade nicht.", "Der Agent-Dienst reagiert nicht. Telegram und Lucys Werkzeuge gehen gerade nicht.",
_reach(HERMES_API_URL, "/v1/models", _hermes_kopf()))) _reach(HERMES_API_URL, "/v1/models", _hermes_kopf())))
proben.append(("kern:hoeren", "Der Hör-Dienst antwortet nicht", # Die Spracherkennung schläft seit 24.09.2026 (bis zur Android-App) — dann ist Schweigen kein Fehler.
"Spracheingabe über Lucy-Desktop kann hängen.", _reach(VOICE_SERVICE_URL, "/health"))) if not schlaeft(_systemctl_show("voice-service", False)):
proben.append(("kern:hoeren", "Die Spracherkennung antwortet nicht",
"Spracheingabe über Lucy-Desktop kann hängen.", _reach(VOICE_SERVICE_URL, "/health")))
if WATCH_MC2: if WATCH_MC2:
proben.append(("kern:mc2", "MC2 antwortet nicht", proben.append(("kern:mc2", "MC2 antwortet nicht",
"Die Oberfläche und Lucys Sprach-Schnittstellen hängen.", _reach(MC2_URL, "/api/health"))) "Die Oberfläche und Lucys Sprach-Schnittstellen hängen.", _reach(MC2_URL, "/api/health")))
+14 -1
View File
@@ -152,7 +152,7 @@ def test_ausblenden_gilt_bis_zum_naechsten_lauf(monkeypatch, tmp_path):
monkeypatch.setattr(waechter, "_hermes_jobs", lambda: [{"id": "news", "name": "Daily News Report", monkeypatch.setattr(waechter, "_hermes_jobs", lambda: [{"id": "news", "name": "Daily News Report",
"enabled": True, "last_status": "ok"}]) "enabled": True, "last_status": "ok"}])
monkeypatch.setattr(waechter, "_letzter_lauf", lambda jid: lauf) monkeypatch.setattr(waechter, "_letzter_lauf", lambda jid: lauf)
monkeypatch.setattr(waechter, "_errors_log_ende", lambda: []) monkeypatch.setattr(waechter, "_errors_log_ende", list)
monkeypatch.setattr(waechter, "werkzeugfehler_im_lauf", lambda zeilen, jid, start: (2, "web_extract: Fehler")) monkeypatch.setattr(waechter, "werkzeugfehler_im_lauf", lambda zeilen, jid, start: (2, "web_extract: Fehler"))
befunde = waechter.pruefe_hermes_jobs() befunde = waechter.pruefe_hermes_jobs()
@@ -164,3 +164,16 @@ def test_ausblenden_gilt_bis_zum_naechsten_lauf(monkeypatch, tmp_path):
lauf["started_at"] = (datetime.now() - timedelta(minutes=5)).isoformat(timespec="seconds") lauf["started_at"] = (datetime.now() - timedelta(minutes=5)).isoformat(timespec="seconds")
assert [b.id for b in waechter.pruefe_hermes_jobs()] == ["job:news:werkzeug"] assert [b.id for b in waechter.pruefe_hermes_jobs()] == ["job:news:werkzeug"]
def test_schlafende_spracherkennung_ist_kein_kernbefund(monkeypatch):
"""24.09.2026: Die Spracherkennung schläft bis zur Android-App — kein roter Hinweis mehr."""
monkeypatch.setattr(waechter.llamaswap, "engine_reachable", lambda: True)
monkeypatch.setattr(waechter.llamaswap, "brain_status", lambda: {"ready": True})
monkeypatch.setattr(waechter, "_reach", lambda url, pfad, kopf=None: "8650" not in url)
monkeypatch.setattr(waechter, "_systemctl_show",
lambda name, system: {"ActiveState": "inactive", "UnitFileState": "disabled"})
assert "kern:hoeren" not in {b.id for b in waechter.pruefe_kern()}
monkeypatch.setattr(waechter, "_systemctl_show",
lambda name, system: {"ActiveState": "active", "UnitFileState": "enabled"})
assert "kern:hoeren" in {b.id for b in waechter.pruefe_kern()}