fix(dashboard): UX-Politur — Run-Badge-Label, Trade-off-Legenden, Versions-Label-Case, n=0-Wertkennzeichnung, PDF-Dropdown-Sprachfilter#294
Merged
Conversation
…sions-Label-Case, n=0-Wertkennzeichnung, PDF-Dropdown-Sprachfilter
Fünf unabhängig verifizierte Fixes aus dem Multi-Perspektiven-Review 2026-07-15:
U3: Lauf-Filter-Badge zeigte die rohe Run-ID (select-value) statt des
lesbaren Options-Texts. _renderFilterBadges() übernimmt für den run-Filter
jetzt selectedOptions[0].text.
U4: Trade-off-Chart-2 ("Akzeptanzrate über Versionen", ch4/leg4) zeigte für
PDFs außerhalb der 3 registrierten _PDF_LABELS-Einträge den rohen,
kleingeschriebenen Key (z.B. "cobaltite-paper") — inzwischen über die
DB-Fallback-Runs der Regelfall statt die Ausnahme. Fallback prettified
("Cobaltite Paper") statt roh.
U7: .sub-label ist uppercase, traf auch die eingebettete Versionsnummer
("V0.3.143" statt "v0.3.143"). text-transform:none auf #kpi-ver-label;
#kpi-ver-label-perf (PR #291, offen) vorsorglich mit abgedeckt.
U5: ch1-Wert-Labels bei n=0 (keine Eval-Basis) wirkten wie echte Werte.
Dieselbe Bedingung wie barColor zusätzlich per Sternchen ("100,0 %*") und
globalAlpha-Dimmung im Text markiert.
D6: PDF-Dropdown ignorierte den aktiven Sprachfilter — das Versions-Dropdown
direkt darunter berücksichtigte ihn bereits. Gleiche Einschränkung jetzt auch
auf die PDF-Optionen angewandt.
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.
Kontext
Fünf kleine, unabhängig verifizierte UX-Fixes aus dem Multi-Perspektiven-Review 2026-07-15. Kein Redesign, keine Änderung an eval_dashboard_server.py:507-528 (Fallback-Block), _trendChart oder den KPI-Aggregationen (_calc_kpis/kpi_trend) — parallele PRs arbeiten dort.
Die 5 Fixes
U3 — Lauf-Filter-Badge zeigt rohe Run-ID
Befund:
_renderFilterBadges()nutzte für denrun-Filter_globalFilters.run(select-value, z.B."20260713-084724") statt des sichtbaren Options-Texts.Fix: für
k === 'run'wirdselectedOptions[0].textins Badge übernommen ("13.07. 08:47 · Schlebbe … · v0.3.143").U4 — Trade-off-Chart-2-Legende zeigt rohe kleingeschriebene PDF-Keys
Befund:
_chart_longitudinal(ch4/leg4, "Akzeptanzrate über Versionen") resolved über_PDF_LABELS.get(key, key)— für PDFs außerhalb der 3 registrierten Einträge (bates/kuhlthau/schlebbe) fiel das auf den rohen Key zurück (z.B."cobaltite-paper"). Live-Daten zeigen: das ist über die DB-Fallback-Runs inzwischen der Regelfall (25 von 26 PDFs unregistriert), nicht die Ausnahme.Fix: Fallback prettified den Key (
re.sub(r"[-_]+", " ", key).strip().title()→"Cobaltite Paper") statt ihn roh durchzureichen. Registrierte Keys bleiben unverändert.Hinweis: dieselbe rohe Darstellung besteht unverändert in Trade-off-Chart-1 (ch3/leg3, "Skaliert die Pipeline mit der PDF-Länge?",
SCALING/scaling_chart) — außerhalb des hier beauftragten Scopes, nicht mit angefasst.U7 — kpi-ver-label wird per CSS uppercase gerendert
Befund:
.sub-labelhattext-transform: uppercase, trifft auch die eingebettete Versionsnummer ("V0.3.143"statt"v0.3.143").Fix:
text-transform: noneauf#kpi-ver-label. PR #291 (offen, fügt ein zweites Label#kpi-ver-label-perfam "Kosten & Performance"-Header hinzu) ist noch nicht gemergt — der Selektor deckt#kpi-ver-label-perfbereits vorsorglich mit ab (ID gegen den #291-Diff verifiziert, nicht geraten), damit es denselben Fix ohne Nacharbeit erbt.U5 — n=0-Balken: aufgedruckte "100,0 %" wirkt wie echter Wert
Befund: ch1-Wert-Labels (afterDatasetsDraw) übernahmen bei
nMap[label]==0bereits die graue Balkenfarbe (barColor), aber ohne zusätzliches Signal im Text selbst.Fix: dieselbe Bedingung zusätzlich für Sternchen (
"100,0 %*") undglobalAlpha-Dimmung im Wert-Label genutzt. Kein Redesign.D6 — PDF-Dropdown ignoriert aktiven Sprachfilter
Befund: Das Versions-Dropdown (
_all_pvers_opts) filtert bei aktivem Sprachfilter bereits auf passende Zeilen (if language: _pver_rows = [...]); das PDF-Dropdown (_all_pdfs_opts) direkt darüber tat das nicht.Fix: dieselbe Sprachfilter-Bedingung auf die PDF-Options-Zeilen angewandt.
Verifikation
Volle Suite grün (5899 passed, 3 skipped, 0 failed),
ruff checkclean auf allen geänderten/neuen Dateien, TDD (rot→grün) für alle 5 Fixes inkl. expliziter Red-Bestätigung pergit stashfür Fix D6. Playwright (Firefox, playwright-core) gegen eigenen Server (Port 8070,ATOMIC_DB_PATH=C:\tmp\kpi-db.db) mit echten Daten:"Lauf: 13.07. 18:41 · Hrastinski · v0.3.143"statt roher Run-ID."Cobaltite Paper"statt"cobaltite-paper".getComputedStyle(#kpi-ver-label).textTransform === 'none', sichtbarer Text"v0.3.140"(klein)."Bates 2017 (n=0)","extreme-events-decis... (n=0)") mit"100,0 %*"/"77,8 %*"in gedimmtem Grau.DE→DEgesetzt → PDF-Dropdown-Optionen 26 → 10 (9 PDFs + "Alle"), API-seitig gegengeprüft (25 → 9).NUL-Byte-Check (Python, kein bash grep/sed): vorher/nachher exakt 1 NUL-Byte in
internal/dashboard/eval_dashboard.html.Screenshots:
C:\tmp\uxpolish-verify\(fix1–fix5, inkl. fix2b für Einzel-PDF-Legende).Kollisionsvermeidung
Nicht angefasst:
eval_dashboard_server.py:507-528(DB-only-Runs-Fallback-Block für token_runs),_trendChart(~Z.1600), KPI-Aggregationen (_calc_kpis,kpi_trend,version_delta) ineval_dashboard.py. Fix U4 berührt zwangsläufig_chart_longitudinal(dieselbe Funktion, die der Review explizit als Fundort nennt) — Änderung ist eine einzelne Zeile (Fallback-Ausdruck), keine Signatur-/Strukturänderung, kein Overlap mit den genannten Bereichen.Quelle: Multi-Perspektiven-Review 2026-07-15.