Commit graph

58 Commits

Autor SHA1 Nachricht Datum
claude-dev
584cfa819b Protect: Grundquellen im Monitor vor Löschen/Bearbeiten schützen
- delete_source/update_source: Quellen mit tenant_id=NULL geschützt
- block/unblock_domain: Nur tenant-spezifische Quellen betroffen

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 19:46:41 +01:00
claude-dev
32f0281a96 Refactor: Email statt Username als Anzeige-Identifier
- Header zeigt volle Email statt Username
- Lagen-Karten/Sidebar zeigen Email-Prefix (vor dem @) als Ersteller
- Feedback-Emails nutzen Email-Prefix statt Username
- Login/Notification-Emails nutzen Email-Prefix als Anrede
- DB-Queries holen email statt username für Ersteller-Anzeige

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 18:55:24 +01:00
claude-dev
a6c24366a0 Quellenverwaltung: Boulevard-Kategorie, Duplikat-Prüfung, Domain-Normalisierung
- Boulevard als Kategorie in HTML-Dropdowns, JS-Labels und Pydantic-Validierung
- create_source: URL-Duplikat-Prüfung (409 Conflict bei existierender URL)
- create_source + update_source: Domain via _DOMAIN_ALIASES normalisieren
- System-Quellen (auto-entdeckt) sind jetzt von allen Nutzern editierbar

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 23:45:01 +01:00
claude-dev
2f6dd97100 Geoparsing als Hintergrund-Task mit Fortschrittsanzeige
- Endpunkt startet async Background-Task statt synchron zu warten
- Batch-Verarbeitung (50 Artikel pro Batch)
- Neuer Status-Endpunkt GET /incidents/{id}/geoparse-status
- Frontend pollt alle 3s und zeigt Fortschritt im Button (z.B. "150/427 Artikel...")
- Kein Timeout-Problem mehr bei grossen Lagen

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 22:39:53 +01:00
claude-dev
f7b5703db3 Fix: Magic-Link URL, Sidebar-Ladereihenfolge, Archiv-Standard + Geoparse-Button
- Magic-Link URL korrigiert: /auth/verify -> / (Login-Seite mit Token-Param)
- Sidebar: loadIncidents() vor NotificationCenter.init() verschoben
- NotificationCenter.init() in try/catch gewrappt
- Archiv-Sektion default geschlossen (display:none im HTML)
- Neuer Endpunkt POST /incidents/{id}/geoparse fuer bestehende Artikel
- "Orte erkennen"-Button in Karten-Kachel

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 22:34:06 +01:00
claude-dev
4bfc626067 Kartenfeature: Geoparsing + Leaflet-Karte im Dashboard
- Neues Geoparsing-Modul (spaCy NER + geonamescache/Nominatim)
- article_locations-Tabelle mit Migration
- Pipeline-Integration nach Artikel-Speicherung
- API-Endpunkt GET /incidents/{id}/locations
- Leaflet.js + MarkerCluster im Dashboard-Grid
- Theme-aware Kartenkacheln (CartoDB dark / OSM light)
- Gold-Akzent MarkerCluster, Popup mit Artikelliste

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 22:04:07 +01:00
claude-dev
71296edb97 Großes Cleanup: Bugs fixen, Features fertigstellen, toten Code entfernen
Bugs behoben:
- handleEdit() async keyword hinzugefügt (E-Mail-Checkboxen funktionieren jetzt)
- parseUTC() Funktion definiert (Fortschritts-Timer nutzt Server-Startzeit)
- Status cancelling wird im Frontend korrekt angezeigt

Features fertiggestellt:
- Sidebar: Lagen nach Typ getrennt (adhoc/research) mit Zählern
- Quellen-Bearbeiten: Edit-Button pro Quelle, Formular vorausfüllen
- Lizenz-Info: Org-Name und Lizenzstatus im Header angezeigt

Toter Code entfernt:
- 5 verwaiste Dateien gelöscht (alte rss_parser, style.css, components.js, layout.js, setup_users)
- 6 ungenutzte Pydantic Models entfernt
- Ungenutzte Funktionen/Imports in auth.py, routers, agents, config
- Tote API-Methoden, Legacy-UI-Methoden, verwaiste WS-Handler
- Abgeschlossene DB-Migrationen aufgeräumt

Sonstiges:
- requirements.txt: passlib[bcrypt] durch bcrypt ersetzt
- Umlaute korrigiert (index.html)
- CSS: incident-type-label → incident-type-badge, .login-success hinzugefügt
- Schließen statt Schliessen im Feedback-Modal
2026-03-04 18:45:38 +01:00
claude-dev
8312d24912 Initial commit: AegisSight-Monitor (OSINT-Monitoringsystem) 2026-03-04 17:53:18 +01:00