# Intent: Nutzungsanzeige in der Board-Kopfzeile ## Ziel Ein kleines, dauerhaft sichtbares UI-Element im Intent-Board, das auf einen Blick zeigt, wie viel Prozent des aktuellen Nutzungslimits für Claude Code und Codex CLI noch übrig sind — damit vor dem Losschicken einer Karte sichtbar ist, ob überhaupt noch Spielraum besteht. ## Umfang - In `hosts/blunix/localServices/board-agent/board.html`: - Ein kompaktes Element in der bestehenden `
`-Zeile neben `

Intent-Board

` (oder als schmale eigene Leiste direkt darunter), unauffällig gestaltet im vorhandenen Stil. - Periodischer Abruf von `GET /api/board/usage` alle 60 Sekunden, getrennt vom bestehenden `setInterval(render, 5000)`, plus ein initialer Abruf beim Laden. - Anzeige der *verbleibenden* Prozent, berechnet aus den vom Endpunkt gelieferten verbrauchten Prozent (`100 - used_percent`, auf ganze Prozent gerundet und auf 0..100 begrenzt), knapp formatiert, etwa "Claude: 60 % übrig · Codex: 0 % übrig". - Der Endpunkt liefert je Anbieter ein 5-Stunden- und ein Wochenfenster; angezeigt wird pro Anbieter der knappere der beiden Werte (also das kleinere "übrig"), damit die Anzeige nie zu optimistisch ist. Die `resets_at`-Zeitstempel dürfen höchstens als `title`-Tooltip erscheinen. - Bei `null` oder fehlgeschlagenem Abruf für einen Anbieter dessen Wert als "—" darstellen; die jeweils andere Seite bleibt sichtbar. Ein fehlgeschlagener Abruf darf das übrige Board-Rendering nicht stören. - Ein Strukturtest in `test_board_agent.py` im Stil der vorhandenen `board.html`-Tests (Vorhandensein des Elements, des Abrufs von `/api/board/usage` und des 60-Sekunden-Intervalls). ## Explizit ausgeschlossen - Keine Änderung an `trigger.py`, `board-agent.nix` oder am Antwortvertrag des Endpunkts. - Kein neuer Dialog, keine neue Spalte, keine Änderung an Board-Spalten oder Trigger-Logik. - Kein Verlauf/Graph über die Zeit, keine Alarmierung bei niedrigem Kontingent, keine Aufschlüsselung pro Rolle. ## Annahmen - `GET /api/board/usage` existiert bereits und liefert je Anbieter `five_hour_used_percent`, `seven_day_used_percent` und die zugehörigen `resets_at`-Felder, jeweils möglicherweise `null`. - Der Endpunkt gibt bereits nur berechnete Prozentwerte heraus; das Frontend braucht keine zusätzliche Filterung von Secrets. ## Offene Risiken - Bei dauerhaft fehlschlagendem Endpunkt darf die Kopfzeile nicht flackern oder Fehlermeldungen aufdrängen; die Leerdarstellung muss ruhig bleiben. ## Erfolgskriterien - Das Board zeigt einen aktuellen, unaufdringlichen Prozentwert für Claude und für Codex oder eine klare Leerdarstellung. - Die Anzeige aktualisiert sich ohne Seitenneuladen. - Der Testlauf von `test_board_agent.py` ist grün.