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
23ac6d6fd7
Fix: researcher.py korrupte Datei repariert (base64-Transfer)
2026-03-04 20:32:31 +01:00
claude-dev
3d9a827bc8
Inkrementelle Analyse + Token-Optimierung + Relevanz-Scoring
...
TOKEN-OPTIMIERUNG:
- Inkrementelle Analyse: Folge-Refreshes senden nur noch das bisherige
Lagebild + neue Artikel an Claude (statt alle Artikel erneut).
Spart ~60-70% Tokens bei Lagen mit vielen Artikeln.
- Inkrementeller Faktencheck: Bestehende Fakten als Zusammenfassung,
nur neue Artikel werden vollstaendig geprueft.
- Modell-Steuerung: Feed-Selektion nutzt jetzt Haiku (CLAUDE_MODEL_FAST)
statt Opus. Spart ~50-70% bei Feed-Auswahl.
- Set-basierte DB-Deduplizierung: Bestehende URLs/Headlines einmal
in Sets geladen statt N*M einzelne DB-Queries pro Artikel.
INHALTLICHE VERBESSERUNGEN:
- Relevanz-Scoring: Artikel nach Keyword-Dichte (40%),
Quellen-Reputation (30%), Inhaltstiefe (20%), RSS-Score (10%).
- Flexibles RSS-Matching: min. Haelfte der Keywords statt alle.
RSS-Artikel bekommen einen relevance_score.
- Fuzzy Claim-Matching: SequenceMatcher (0.7) statt exakter
String-Vergleich. Verhindert Duplikat-Akkumulation.
- Translation-Fix: Nur gueltige DB-IDs (isinstance int).
- Researcher: WebFetch fuer Top-Artikel, erweiterte Zusammenfassungen.
DATEIEN:
- config.py: CLAUDE_MODEL_FAST
- claude_client.py: model-Parameter
- researcher.py: Haiku Feed-Selektion, erweiterte Prompts
- analyzer.py: Inkrementelle Analyse + analyze_incremental()
- factchecker.py: Inkrementeller Check + Fuzzy-Matching
- orchestrator.py: Set-Dedup, Relevanz-Scoring, inkrementeller Flow
- rss_parser.py: Flexibles Keyword-Matching + relevance_score
2026-03-04 20:22:47 +01:00
claude-dev
54d02d2c5b
Dünne Trennlinie zwischen Sidebar-Sektionen
2026-03-04 19:03:36 +01:00
claude-dev
247b72133e
CLAUDE.md aktualisiert + broadcast_for_incident tenant_id Fix
...
- CLAUDE.md komplett neu geschrieben mit aktueller Projektstruktur
- broadcast_for_incident: tenant_id Parameter hinzugefuegt (TypeError Fix)
2026-03-04 18:55:17 +01:00
claude-dev
d9e0bab907
Fix: broadcast_for_incident Signatur um tenant_id erweitern
...
Die Methode wurde mit 4 Argumenten aufgerufen (message, visibility,
created_by, tenant_id), akzeptierte aber nur 3. Das führte zu einem
TypeError bei jedem Auto-Refresh und WebSocket-Broadcast.
2026-03-04 18:49:21 +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
2a155c084d
E-Mail-Benachrichtigungs-Toggles mit Backend verbinden
...
Die Toggle-Switches im Lage-Modal (Anlegen/Bearbeiten) waren nicht
mit den API-Endpunkten verbunden. Jetzt werden die Subscription-
Einstellungen korrekt geladen, gespeichert und zurueckgesetzt.
- api.js: getSubscription() und updateSubscription() hinzugefuegt
- app.js: handleFormSubmit() speichert Subscription nach Create/Edit
- app.js: handleEdit() laedt bestehende Subscription beim Oeffnen
- app.js: openModal() setzt Checkboxen im Create-Modus zurueck
2026-03-04 18:19:01 +01:00
claude-dev
8312d24912
Initial commit: AegisSight-Monitor (OSINT-Monitoringsystem)
2026-03-04 17:53:18 +01:00