Der globale setupNavTabs in app.js fing nav-tab-Clicks aus ALLEN
nav-tabs ab, ausser #orgDetailTabs und #sourceSubTabs. Das neue
#healthSubTabs (aus dem letzten Commit) war nicht in der :not()-
Liste und triggerte daher den Top-Level-Handler, der getElementById("sec-suggestions")
suchte und null bekam -> Crash beim classList.add("active").
Fix: :not(#healthSubTabs) ergaenzt an allen drei Stellen
(setupNavTabs, setupNavTabs Click-Handler, openSection-Helfer in Z. 408).
Cache-Buster fuer app.js gebumpt 20260509d -> 20260509j.
Splittet die Quellen-Health-Section in drei eigene Sub-Tabs auf, damit
der User je nach Aufgabe nur den relevanten Bereich sieht und nicht
durch die ganze Seite scrollen muss.
dashboard.html:
- Innerhalb von <div id=sub-source-health>: neue nav-tabs healthSubTabs
mit drei Buttons (Vorschläge / Health-Status / Verlauf).
- Drei Pane-Container ht-suggestions / ht-checks / ht-verlauf,
jeweils per inline-style display kontrolliert.
source-health.js:
- setupHealthSubTabs(): Click-Handler fuer den Tab-Wechsel
(toggle .active auf den Buttons + display none/block auf den Panes).
- renderHealthDashboard splittet jetzt in drei innerHTML-Calls,
einen pro Pane:
paneSuggestions <- Vorschlaege offen
paneChecks <- Counter + Filter + Tabelle + Mehr-laden
paneVerlauf <- erledigte Vorschlaege + Run-Verlauf
- Tab-Label "Vorschlaege" wird mit Counter angereichert (z.B.
"Vorschlaege (24 offen)"), wenn welche offen sind.
- LUCIDE_ICONS-Konstante mit Inline-SVG fuer check, x, search,
refresh. Emojis und HTML-Entities (✓ × ) ersetzt.
Inline-SVG statt CDN-Library, damit keine externe Abhaengigkeit.
Cache-Buster fuer source-health.js auf 20260509i gebumpt.
Vier UX-Hebel zusammengelegt, alle reines Frontend:
1. Vorschlaege-Tabelle: Beschreibung als Einzeiler mit Ellipsis;
voller Text im title-Tooltip. Spart bei 24 offenen Vorschlaegen
~25 Bildschirmhoehen.
2. Verlauf-Card: standardmaessig eingeklappt via <details>-Element.
Header zeigt nur "Verlauf (N erledigte Vorschlaege - klick zum
Aufklappen)". Klick expandiert die Tabelle.
3. Health-Tabelle: Spalten Domain und Sprache aus der Tabelle raus,
beide als Tooltip auf dem Quellen-Namen. Tabelle hat statt 8
Spalten nur noch 6, ist schmaler und besser lesbar.
4. Aktionen-Spalten: Text-Buttons ("Annehmen", "Ablehnen", "Lösung
suchen") durch kompakte Icon-Buttons ersetzt (✓ ✗ 🔍).
Funktion identisch, Tooltip via title-Attribut.
Cache-Buster fuer source-health.js auf 20260509h gebumpt.
Frontend ruft ausschliesslich /health/run-stream auf. Der Legacy-Endpoint
/health/run war ein simples synchrones Pendant ohne Fortschrittsanzeige
und wurde nirgends mehr aufgerufen (verifiziert via grep -r im Repo).
Schritt 2 der Quellen-Health-Aufraeumung. Reine Code-Saeuberung,
keine UX- oder Backend-Verhaltensaenderung.