ShadowBroker v0.9.5
The Voltron Update
The best of both worlds — GitHub community contributions merged with our modular local architecture.
Docker users: This is a major architectural update. The in-app updater cannot apply it inside containers. Run:
docker-compose down && git pull && docker-compose up -d --buildThis is the last manual update required — v0.9.5+ supports bulletproof in-app updates going forward.
New Capabilities
- Parallelized Boot (15s Cold Start) — ThreadPoolExecutor runs all data tiers concurrently
- Adaptive Polling + ETag Caching — continuous data flow, no more bbox interrupts
- Sliding Edge Panels (LAYERS / INTEL) — spring-animated side tabs replace bulky Record Panel
- Admin Auth + Rate Limiting + Auto-Updater — X-Admin-Key, slowapi, one-click GitHub updates
- Docker Swarm Secrets Support — load API keys from /run/secrets/ in production
Fixes & Improvements
- Stable entity IDs for GDELT & News popups — no more wrong popup after data refresh (PR #63)
- useCallback optimization for interpolation — eliminates redundant re-renders every 1s tick
- Restored missing GDELT and datacenter background refreshes in slow-tier loop
- Server-side viewport bbox filtering reduces JSON payloads 80%+
- Modular fetcher architecture (flights, geo, infrastructure, financial, earth_observation)
- CCTV ingestors instantiated once at startup — no more fresh DB connections every 10min
Architecture
- 85+ vitest tests + CI pipeline (
.github/workflows/ci.yml) - Extracted geoJSONBuilders, useInterpolation, useClusterLabels, alertSpread utilities
- Custom hooks: useDataPolling, useRegionDossier, useReverseGeocode
- Backend env_check.py with warning tiers + retry decorator on all fetchers