fix(sources): Feinschliff nach Konsistenz-Pruefung + UI-Rueckmeldungen

Echte Fehler:
- esc() maskiert jetzt auch Anfuehrungszeichen. Quellennamen mit
  Apostroph (z.B. LExpress) brachen sonst die Zeilen-Knoepfe.
- formatDateTime parst SQLite-UTC-Zeitstempel jetzt als UTC statt
  Lokalzeit (Zeiten waren um den Zeitzonen-Offset verschoben).
- Audit-Filter Bis-Datum schliesst den gewaehlten Tag jetzt komplett ein.

UI-Rueckmeldungen:
- Beschreibung in der Vorschlags-Tabelle bricht mehrzeilig um statt
  abgeschnitten zu werden.
- Bestaetigen-Knopf im Dialog ist standardmaessig Gold, Rot nur noch bei
  destruktiven Aktionen (Org/Nutzer/Quelle loeschen, X-Konto entfernen).
- Alle >= 0.85 genehmigen ist ausgegraut, solange keine Klassifikationen
  ausstehen.

Konsistenz:
- GET /suggestions deckelt pending nicht mehr auf 50 (Badge und Tabelle
  liefen auseinander), bearbeitete weiterhin letzte 50.
- /stats zaehlt jetzt alle Quellen wie die Liste (nicht nur aktive),
  Grundquellen/Kundenquellen-Aufteilung wird immer angezeigt.
- Health-Spalte sortiert nach Schweregrad statt alphabetisch.
- Aufgaben-Badge laedt schon beim Seitenstart, nicht erst beim Reiterklick.
- Loesung-suchen-Knopf stellt nach Fehler das Icon wieder her, native
  confirm()-Dialoge durch showConfirm ersetzt.
- Tote Endpoints GET /health (Alt-Liste) und GET /classification/stats
  entfernt, tote CSS-Bloecke (activity-*, badge-health-*,
  review-conf-filter) geloescht.
- Smoke-Test deckt jetzt alle Klassifikations-/Upload-/Sync-Endpoints ab.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Dieser Commit ist enthalten in:
claude-dev
2026-07-25 18:48:16 +00:00
Ursprung bc3b0bb9ee
Commit c5f63b1d14
9 geänderte Dateien mit 100 neuen und 219 gelöschten Zeilen

Datei anzeigen

@@ -52,12 +52,20 @@ AUTH_PROTECTED = [
("POST", "/api/sources/tenant/bulk-promote"),
("POST", "/api/sources/discover"),
("POST", "/api/sources/discover/add"),
("GET", "/api/sources/health"),
("GET", "/api/sources/health/history"),
("GET", "/api/sources/suggestions"),
("PUT", "/api/sources/suggestions/1"),
("POST", "/api/sources/health/run"),
("GET", "/api/sources/health/run-status"),
("POST", "/api/sources/health/search-fix/1"),
("GET", "/api/sources/classification/queue"),
("POST", "/api/sources/classification/bulk-classify"),
("POST", "/api/sources/classification/bulk-approve"),
("POST", "/api/sources/1/classification/approve"),
("POST", "/api/sources/1/classification/reject"),
("POST", "/api/sources/1/classification/reclassify"),
("POST", "/api/sources/external-reputation/sync"),
("POST", "/api/sources/global/upload-pdf"),
("GET", "/api/statistik"),
("GET", "/api/token-usage/overview"),
("GET", "/api/token-usage/1"),