feat(dashboard): Waisen-Banner, Kosten/akzeptierte Note, prompt-basierte Cache-Quote (#196 P1-3)#209
Merged
Merged
Conversation
…rte Cache-Quote (#196 P1-3) P1 — Waisen-Versions-Banner: orphan_versions() meldet generative Pipeline-Versionen numerisch UEBER config.AGENT_VERSION (#191-Fehler- klasse meldet sich selbst; Hinweis-Charakter, bewusste Re-Evals sind legitim; foss/extractive ausgenommen). Dazu jsonl_fallback-Flag, wenn statt SQLite der JSONL-Fallback laeuft (deckt nur einen Teil der Historie — Silent-Staleness sichtbar). Client: amber Hinweis-Banner in der Uebersicht, versteckt wenn nichts anliegt. P2 — Kosten pro akzeptierter Note je Version (kpi_trend.cost_per_note): cost_sum/n_vault; None statt falschem 0-$-Wert fuer subscription-Runs (compute_cost_per_call liefert dort 0) und bei n_vault=0. Anzeige in der Kosten-Sektion-Headline (letzte Version mit API-Kosten). P3 — Cache-Effizienz: cache_c wurde aggregiert, aber nie ausgegeben (totes Feld); cache_pct hatte Output im Nenner und liess cache_creation weg — Planner zeigte 75,8 % statt 51,1 %. Neu: _cache_pct_prompt_based = cache_r/(input+cache_r+cache_c); cache_c in Response + Agent-Tooltip (dreizeilig, Label praezisiert). Empirisch nach Umbau: Planner exakt die im Audit vorhergesagten 51,1 %. TDD: 11 neue Tests (orphan_versions, Cache-Formel, build_data- Integration fuer Warnungen/Fallback/cost_per_note). Playwright- verifiziert: Banner default hidden + simuliert sichtbar (fetch-Patch, beide Meldungen), ins-cost "v0.3.56 (letzter API-Lauf): 0,0050 $ pro akzeptierter Note", Agent-Tooltip "88k tokens / Cache-Hit 51.1 % vom Prompt / Cache-Neuanlage 348 k tokens"; keine JS-Fehler.
This was referenced Jul 11, 2026
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Scope
Issue #196, Punkte 1–3 (aufsteigender Aufwand, wie im Issue priorisiert). P4 (Wilson-CI, braucht Persistenz-Lücke) und P5 (Delta-Bezugsversion) bleiben offen.
P1 — Waisen-Versions-Banner
orphan_versions()(eval_dashboard.py) meldet generative Pipeline-Versionen numerisch überconfig.AGENT_VERSION— die #191-Fehlerklasse (verwaiste WIP-Branch-Läufe) meldet sich damit selbst. Hinweis-Charakter: bewusste Re-Evals/Branch-Läufe sind legitim; foss/extractive haben eine eigene Nummernwelt und sind ausgenommen. Dazujsonl_fallback-Flag, wennquery_note_evalsscheitert oder leer ist (JSONL deckt nur ~32 % der Historie — Silent-Staleness wird sichtbar). Beides indata.jsonunterwarnings; der Client rendert ein amber Hinweis-Banner in der Übersicht (versteckt, wenn nichts anliegt).P2 — Kosten pro akzeptierter Note je Version
kpi_trend.cost_per_note = cost_sum / n_vaultje Version;Nonestatt eines falschen 0-$-Werts für Subscription-Runs (compute_cost_per_callliefert dort 0, Issue-Vorgabe) und bein_vault=0. Anzeige in der Kosten-Sektion-Headline: „v0.3.56 (letzter API-Lauf): 0,0050 $ pro akzeptierter Note." UI-Label „Subscription" an der Kosten-Kachel bleibt unverändert.P3 — Cache-Effizienz prompt-basiert
cache_cwurde serverseitig aggregiert, aber nie ausgegeben (totes Feld); diecache_pct-Formel hatte Output im Nenner und ließ cache_creation weg — Planner zeigte 75,8 %. Neu:_cache_pct_prompt_based = cache_r/(input+cache_r+cache_c),cache_cin Response und Agent-Tooltip (dreizeilig: Tokens+Kosten / Cache-Hit mit Formel-Label / Cache-Neuanlage). Empirisch nach Umbau: Planner zeigt exakt die im Audit vorhergesagten 51,1 %. Anschluss antools/cache_report.py/ #147.Verifikation
test_dashboard_kennzahlen.py) —orphan_versions-Semantik, Cache-Formel, build_data-Integration (Waisen, Fallback-Flag, cost_per_note-Guards)Merge-Hinweis
Trivialer Konflikt mit PR #207 am Agent-Tooltip (beide ändern dieselbe Zeile): bei der Auflösung die dreizeilige #196-Fassung nehmen und
ag.cache_pct/cost_usd-Werte durch_fmtDE(...)aus #207 formatieren.