diff --git a/backend/services/waechter.py b/backend/services/waechter.py index 9cba63f..a9ead32 100644 --- a/backend/services/waechter.py +++ b/backend/services/waechter.py @@ -392,8 +392,10 @@ def pruefe_kern() -> list[Befund]: proben.append(("kern:hermes", "Hermes antwortet nicht", "Der Agent-Dienst reagiert nicht. Telegram und Lucys Werkzeuge gehen gerade nicht.", _reach(HERMES_API_URL, "/v1/models", _hermes_kopf()))) - proben.append(("kern:hoeren", "Der Hör-Dienst antwortet nicht", - "Spracheingabe über Lucy-Desktop kann hängen.", _reach(VOICE_SERVICE_URL, "/health"))) + # Die Spracherkennung schläft seit 24.09.2026 (bis zur Android-App) — dann ist Schweigen kein Fehler. + 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: proben.append(("kern:mc2", "MC2 antwortet nicht", "Die Oberfläche und Lucys Sprach-Schnittstellen hängen.", _reach(MC2_URL, "/api/health"))) diff --git a/backend/tests/test_waechter.py b/backend/tests/test_waechter.py index 5ef97b1..2c4be1b 100644 --- a/backend/tests/test_waechter.py +++ b/backend/tests/test_waechter.py @@ -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", "enabled": True, "last_status": "ok"}]) 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")) 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") 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()}