Phase 17: Health-Tab Filter + Org-Spalte + History-View + URL-Schema-Fix
Backend: - shared/services/source_health.py: URL ohne https://-Prefix wird normalisiert bevor httpx.get() aufgerufen wird (Bug-Fix: t.me/kanal liess httpx mit ValueError crashen, Synchron mit Monitor-Fix 1ee6c4d). - routers/sources.py /health: Query erweitert um tenant_id, category, language, bias, org_name (LEFT JOIN organizations) - Frontend kann jetzt pro Issue Tenant-Info anzeigen. - routers/sources.py /health/history NEU: letzte N Runs aus source_health_history aggregiert (run_id, archived_at, errors/warnings/ok). Frontend (source-health.js): - healthFilters State: status / check_type / org. - applyHealthFilter() reduziert die Anzeige. - Filter-Bar mit 3 Dropdowns + Counter "X / Y Ergebnisse". - Tabelle erweitert: Org-Spalte ("global" oder Org-Name), Sprache-Spalte. - History-View neu: letzte 10 Runs als Tabelle (Zeitpunkt, Run-ID, Counts). Cache-Buster auf 20260509c gebumpt.
Dieser Commit ist enthalten in:
@@ -112,6 +112,10 @@ async def _check_source_reachability(
|
||||
checks = []
|
||||
url = source["url"]
|
||||
|
||||
# URL-Schema sicherstellen: t.me-Kanaele und andere Domains koennen ohne https:// vorkommen
|
||||
if url and not url.startswith(("http://", "https://")):
|
||||
url = "https://" + url.lstrip("/")
|
||||
|
||||
try:
|
||||
resp = await client.get(url)
|
||||
|
||||
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren