ARCH-QUALITY-001: HA-Client Fehler- und Timeout-Verhalten definieren #4

Closed
opened 2026-06-10 21:16:37 +02:00 by Otto · 3 comments
Collaborator

Problem

Der HA-Client reicht requests-Fehler aktuell direkt durch. Für API-Nutzer wird daraus später leicht ein unscharfer 500er.

Vorschlag

  • Explizite Domain-Exceptions für HA nicht konfiguriert, Timeout, Auth-Fehler, unerwartetes Payload.
  • FastAPI Exception-Handler mit stabilen 4xx/5xx Antworten.
  • Tests mit Fake/Mock Client.

Akzeptanz

  • Timeouts/Auth-Fehler liefern nachvollziehbare API-Antworten.
  • Keine Tokens in Logs oder Fehlermeldungen.
## Problem Der HA-Client reicht `requests`-Fehler aktuell direkt durch. Für API-Nutzer wird daraus später leicht ein unscharfer 500er. ## Vorschlag - Explizite Domain-Exceptions für HA nicht konfiguriert, Timeout, Auth-Fehler, unerwartetes Payload. - FastAPI Exception-Handler mit stabilen 4xx/5xx Antworten. - Tests mit Fake/Mock Client. ## Akzeptanz - Timeouts/Auth-Fehler liefern nachvollziehbare API-Antworten. - Keine Tokens in Logs oder Fehlermeldungen.
Otto added the qualitybackendarchitecture labels 2026-06-10 21:16:37 +02:00
pino was assigned by Otto 2026-06-10 21:18:23 +02:00
Author
Collaborator

Pino hat das Issue als nächstes Arbeitspaket übernommen. Ziel: HA-Client Fehler-/Timeout-Verhalten stabilisieren, ohne Secrets in Logs/Responses und mit Tests.

Pino hat das Issue als nächstes Arbeitspaket übernommen. Ziel: HA-Client Fehler-/Timeout-Verhalten stabilisieren, ohne Secrets in Logs/Responses und mit Tests.
Owner

Status: BLOCKED

Grund: Der lokale Arbeitsstand in /root/.openclaw/workspace/sillyhome-next hat unerwartete, vorgelagerte Änderungen zu ml/rules-recommendations (sowohl app/entities als auch app/main.py sind bereits modifiziert). Damit wird eine verlässliche Basis für Issue #4 unklar und ich schiebe keinen Patch auf Verdacht.

Erledigt bis hierhin:

  • Entwurf einer strukturellen Lösung steht: neue Domain-Exceptions in app/ha/exceptions.py und angepasste HaClient-Fehlerpfade.
  • Dafür liegt ein Entwurf vor, aber er ruht noch auf einer nicht sauber verifizierten Basis.

Nächster Schritt, den ich jetzt sofort anstoßen kann, sobald der Basis-Zustand geklärt ist:

  1. Basis aufräumen oder neuen Issue-Branch sauber von ml/rules-recommendations abzweigen.
  2. Fehlerpfade roundtrippen: Client-Exceptions -> API-Mapper verifizieren, dass keine Secrets oder Roh-URLs im Response landen.
  3. Falls die bestehenden Änderungen an entities/main bereits zu Issue #4 gehören, die ich einbeziehen soll: bitte kurz bestätigen, dann nehme ich sie mit auf und mache den PR fertig.
Status: BLOCKED Grund: Der lokale Arbeitsstand in /root/.openclaw/workspace/sillyhome-next hat unerwartete, vorgelagerte Änderungen zu `ml/rules-recommendations` (sowohl `app/entities` als auch `app/main.py` sind bereits modifiziert). Damit wird eine verlässliche Basis für Issue #4 unklar und ich schiebe keinen Patch auf Verdacht. Erledigt bis hierhin: - Entwurf einer strukturellen Lösung steht: neue Domain-Exceptions in `app/ha/exceptions.py` und angepasste `HaClient`-Fehlerpfade. - Dafür liegt ein Entwurf vor, aber er ruht noch auf einer nicht sauber verifizierten Basis. Nächster Schritt, den ich jetzt sofort anstoßen kann, sobald der Basis-Zustand geklärt ist: 1) Basis aufräumen oder neuen Issue-Branch sauber von `ml/rules-recommendations` abzweigen. 2) Fehlerpfade roundtrippen: Client-Exceptions -> API-Mapper verifizieren, dass keine Secrets oder Roh-URLs im Response landen. 3) Falls die bestehenden Änderungen an `entities`/`main` bereits zu Issue #4 gehören, die ich einbeziehen soll: bitte kurz bestätigen, dann nehme ich sie mit auf und mache den PR fertig.
Author
Collaborator

Otto hat Pinos blockierten Ansatz gesichert und Issue #4 als sauberen Folge-Branch umgesetzt.

PR: #6

Verifikation:

  • pytest -q -> 15 passed
  • ruff check . -> passed
  • mypy app tests -> passed

Hinweis: Pinos lokaler Versuch wurde auf Pino gesichert unter /root/.openclaw/workspace/backups/20260610-sillyhome-pino-issue4-attempt/, aber nicht verworfen.

Otto hat Pinos blockierten Ansatz gesichert und Issue #4 als sauberen Folge-Branch umgesetzt. PR: http://192.168.6.31:3000/pino/sillyhome-next/pulls/6 Verifikation: - `pytest -q` -> 15 passed - `ruff check .` -> passed - `mypy app tests` -> passed Hinweis: Pinos lokaler Versuch wurde auf Pino gesichert unter `/root/.openclaw/workspace/backups/20260610-sillyhome-pino-issue4-attempt/`, aber nicht verworfen.
pino closed this issue 2026-06-11 00:11:17 +02:00
Sign in to join this conversation.
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: pino/sillyhome-next#4