Commit graph

96 commits

Author SHA1 Message Date
Jesko Anschütz
57e0cdb43c Ergaenze Auto-Refresh auf Detailseite und bereinige Fehlermeldungs-Duplikat
Auto-Refresh auf GET /status/{screenId}:
  screenDetailPageData bekommt RefreshSeconds (wie statusPageData). Das
  Detail-Template rendert das Meta-Tag analog zur Uebersichtsseite mit
  denselben 15 Sekunden, damit ein Screen seinen Zustand (z.B. fresh ->
  stale, connectivity-Wechsel) auch ohne manuellen Reload sichtbar macht.
  Test: meta-refresh-Tag jetzt in TestRouterScreenDetailPageRoute geprueft.

DRY-Refactor: Fehlermeldungen vereinheitlicht:
  overviewQueryErrorMessage und overviewQueryErrorCode sind jetzt in
  playerstatus.go definiert -- dort wo auch die Validierungslogik lebt.
  writeOverviewQueryError delegiert vollstaendig an beide Helper statt
  die Meldungen selbst zu duplizieren. Die vorherige Kopie in statuspage.go
  mit abweichenden Satzendezeichen und Grossschreibung wurde entfernt.
  Beide Fehlerpfade (JSON und HTML) nutzen jetzt exakt dieselben
  Meldungstexte.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 20:16:22 +01:00
Jesko Anschütz
cfab277dc4 Fuege HTML-Detailseite und HTML-Fehlerseite fuer den Status-UI-Pfad hinzu
Drei eng zusammenhaengende Aenderungen in einem Commit, da sie dieselbe
Template-Infrastruktur teilen und gemeinsam die HTML-Diagnoseansicht
abrunden:

1. CSS-Extraktion (Verbesserung, kein Verhalten geaendert)
   Das bisherige Inline-CSS wurde in die Konstante statusPageCSS
   ausgelagert. statusPageCSSBlock injiziert es per String-Konkatenation
   in alle Templates, sodass kein Template-Inheritance-Mechanismus
   benoetigt wird und jede Seite eigenstaendig ausfuehrbar bleibt.

2. GET /status/{screenId} -- neue HTML-Detailseite
   Zeigt den letzten bekannten Datensatz eines einzelnen Screens:
   Derived State, Player-Status, Connectivity und Frische als
   Summary-Cards; Timing- und Endpoints-Details in aufgeraeuemten
   Key-Value-Tabellen. Verlinkung zurueck auf /status und auf den
   bestehenden JSON-Endpunkt. Bei unbekanntem Screen: 404 mit HTML-
   Fehlerseite und Rueck-Link.
   Route: GET /status/{screenId}

3. HTML-Fehlerseite fuer /status bei ungueltigen Query-Parametern
   Bisher lieferte handleStatusPage einen rohen JSON-Fehler, wenn
   z.B. ?stale=banana uebergeben wurde -- inkongruent fuer einen
   HTML-Endpunkt. writeStatusPageQueryError rendert jetzt dasselbe
   statusPageErrorTemplate wie der Not-Found-Fall der Detailseite
   und gibt text/html mit 400 zurueck.

Neue Tests (router_test.go):
- ScreenDetailPageRoute: prueft Inhalt, Links, Content-Type
- ScreenDetailPageNotFound: prueft 404 + HTML + Rueck-Link
- StatusPageRejectsInvalidQueryParams: prueft jetzt auch text/html
  fuer alle Fehlerfaelle

Docs (PLAYER-STATUS-HTTP.md):
- Query-Parameter-Validierung mit erlaubten Werten und Fehlercodes
- Neue /status/{screenId}-Seite und HTML-Fehlerseiten dokumentiert

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 20:03:24 +01:00
Jesko Anschütz
a7889231c0 Validiere server_connectivity und stale als Query-Parameter
Bisher wurden ungueltige Werte fuer server_connectivity und stale im
Listing-Endpunkt und auf der Statusseite stillschweigend ignoriert bzw.
fuehrten zu leeren Ergebnissen ohne Fehlermeldung. Beide Parameter werden
jetzt explizit auf erlaubte Werte geprueft und liefern bei ungueltiger
Eingabe einen 400-Fehler mit beschreibendem error_code – konsistent mit
der bestehenden Validierung fuer updated_since und limit.

Neue Tests (playerstatus_test.go):
- RejectsInvalidServerConnectivity
- RejectsInvalidStale
- RejectsInvalidUpdatedSince
- RejectsInvalidLimit

Neue Tests (router_test.go):
- StatusPageRejectsInvalidQueryParams (table-driven, alle 4 Faelle)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 19:50:01 +01:00
Jesko Anschütz
0b199f9289 Mache Statusseite als Diagnoseansicht nutzbarer
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-22 19:39:17 +01:00
Jesko Anschütz
bdc77e87e3 Lege erste sichtbare Statusseite an
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-22 19:19:45 +01:00
Jesko Anschütz
9727e53e35 Ergaenze Statusuebersicht um Summenwerte
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-22 19:12:00 +01:00
Jesko Anschütz
5a109f95cb Erweitere Statusuebersicht um Zeit- und Mengengrenzen
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-22 19:08:55 +01:00
Jesko Anschütz
cbe0c40f45 Priorisiere Statusuebersicht fuer Diagnosefaelle
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-22 18:52:18 +01:00
Jesko Anschütz
4ba3b4ddef Leite Diagnosezustand im Statuspfad ab
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-22 18:49:48 +01:00
Jesko Anschütz
852bba6264 Filtere Statusuebersicht nach Diagnosekriterien
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-22 18:47:16 +01:00
Jesko Anschütz
85949937cc Validiere Statuswerte und verfeinere Frischelogik
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-22 18:45:37 +01:00
Jesko Anschütz
e219eac5d7 Ziehe Meta-Tests fuer Player-Status nach
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-22 18:42:11 +01:00
Jesko Anschütz
1f4fa3d985 Schaerfe Semantik des Statuspfads nach
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-22 18:41:32 +01:00
Jesko Anschütz
45e7b776ab Erweitere Basis-API um Status-Endpunkte
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-22 18:35:43 +01:00
Jesko Anschütz
7d4a7f6194 Beschreibe Status-Endpunkte in der API-Meta
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-22 18:34:28 +01:00
Jesko Anschütz
943553234d Lege Statusuebersicht fuer Screens an
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-22 18:33:14 +01:00
Jesko Anschütz
cc06b5a728 Leite Frische des letzten Player-Status ab
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-22 18:30:49 +01:00
Jesko Anschütz
8f0f06ae25 Transportiere Server-Connectivity im Statuspfad
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-22 18:27:44 +01:00
Jesko Anschütz
a69135c0b9 Fuehre Offline-Schwelle fuer Server-Connectivity ein
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-22 18:25:01 +01:00
Jesko Anschütz
2c780d3e60 Dokumentiere Statusspeicherung und Connectivity-Zustaende
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-22 18:22:31 +01:00
Jesko Anschütz
9ee24fe4ae Trenne Lifecycle und Server-Connectivity im Agenten
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-22 18:22:23 +01:00
Jesko Anschütz
896eade0fb Halte letzten Player-Status im Backend
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-22 18:19:17 +01:00
Jesko Anschütz
f8a57b3e6b Bereinige signalstarke Linter-Funde
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-22 17:56:56 +01:00
Jesko Anschütz
f3dd37fb3d Richte revive auf den Repo-Stil aus
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-22 17:56:47 +01:00
Jesko Anschütz
d2ea58ed72 Dokumentiere aktuellen Linter-Stand
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-22 17:53:32 +01:00
Jesko Anschütz
1bfcdfd922 Integriere golangci-lint in den Entwicklungsablauf
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-22 17:53:24 +01:00
Jesko Anschütz
b04acdee09 Dokumentiere ersten HTTP-Statuspfad fuer den Agenten
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-22 17:43:08 +01:00
Jesko Anschütz
6623a313bb Melde Agent-Status periodisch an das Backend
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-22 17:43:01 +01:00
Jesko Anschütz
0c7f0b5b13 Fuehre HTTP-Status-Reporter fuer den Agenten ein
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-22 17:42:51 +01:00
Jesko Anschütz
3fd6ed7432 Lege ersten Player-Status-Endpunkt an
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-22 17:42:37 +01:00
Jesko Anschütz
d87bb2b269 Pruefe Layout-Validierung systematischer
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-22 17:42:30 +01:00
Jesko Anschütz
ad3d4316b6 Ergaenze HTTP-Tests fuer Basisendpunkte
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-22 17:41:40 +01:00
Jesko Anschütz
ef657997b2 Plane Backend-Agent-Status als naechsten Slice
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-22 17:26:38 +01:00
Jesko Anschütz
30b862008a Aktualisiere naechste Agent-Schritte im Entwicklungsleitfaden
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-22 17:00:24 +01:00
Jesko Anschütz
fa57cb4e71 Bereinige Agent-Shutdown fuer bereits gestoppte Contexts
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-22 17:00:17 +01:00
Jesko Anschütz
9294f5e324 Aktualisiere Entwicklungsstand zum Agent-Lifecycle
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-22 16:55:42 +01:00
Jesko Anschütz
45fb9b2bf4 Dokumentiere Agent-Lifecycle fuer v1
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-22 16:55:29 +01:00
Jesko Anschütz
3b01594638 Fuehre Health-Modell und strukturierte Agent-Logs ein
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-22 16:55:20 +01:00
Jesko Anschütz
a976312e21 Dokumentiere erste Dev-Testschritte 2026-03-22 16:35:59 +01:00
Jesko Anschütz
bf993a5945 Baue Layout-Resolver und lokale Entwicklungsgerueste aus 2026-03-22 16:03:21 +01:00
Jesko Anschütz
6a65505304 Lege Entwicklungsleitfaden und Go-Gerueste an 2026-03-22 13:42:00 +01:00
Jesko Anschütz
7befa61805 Triff verbindliche Architekturentscheidungen 2026-03-22 13:35:41 +01:00
Jesko Anschütz
ae183d399e Forme das Datenmodell als Schemaentwurf aus 2026-03-22 13:11:51 +01:00
Jesko Anschütz
3dc82bf4f7 Ergaenze Player- und Serverkonzept 2026-03-22 13:10:09 +01:00
Jesko Anschütz
ceaecaa234 Erweitere Planung um Templates und Provisionierung 2026-03-22 13:06:31 +01:00
Jesko Anschütz
de15ee2e63 Lege Planungsgrundlage fuer neues Info-Board an 2026-03-22 12:46:34 +01:00