When both ACLED (no API key) and UCDP (timeout/empty) fail, the
dashboard now falls back to 22 pre-coded conflict hotspots from
INTEL_HOTSPOTS with severity levels (critical/high/moderate/low).
Frontend updated with 3-tier fallback: ACLED → UCDP → conflict_zones.
Marker sizing uses escalation level for hotspots, tooltips show severity.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Backend: add 7 new data feeds to _fetch_overview() (33 total SSE streams).
Frontend: alert banner (critical/high/medium), health outbreak tracker,
election calendar with risk bars, shipping stress gauge, social signals
from Reddit, nuclear test site map layer with concern scoring, weekly
trends with anomaly tracking. New HUD pills for alerts, shipping stress,
outbreaks, nuclear flags.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Backend: wire stablecoin_status, etf_flows, acled_events, ucdp_events,
displacement, risk_scores, and signal_convergence into the SSE overview
endpoint (23 total feeds, up from 16).
Frontend: complete rewrite with 7-tab navigation (Overview, Markets,
Security, Conflict & Humanitarian, Natural & Climate, Geospatial Map,
Trend Charts), Leaflet dark-tile map with toggleable layers, Chart.js
rolling time-series, feed health counter, and DOMPurify sanitization.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>