v0.9.5

BigBodyCobain/Shadowbrokerv0.9.5Mar 14, 2026by BigBodyCobain

AI Summary

A major architectural overhaul (The Voltron Update) that introduces parallelized boot times, improved caching, sliding UI panels, and admin authentication, requiring manual intervention for Docker users.

Key Highlights

  • Parallelized Boot (15s Cold Start) and Adaptive Polling
  • Sliding Edge Panels replacing bulky Record Panel
  • Admin Auth, Rate Limiting, and Auto-Updater
  • Docker Swarm Secrets Support

New Features

  • Parallelized Boot
  • Adaptive Polling + ETag Caching
  • Sliding Edge Panels
  • Admin Auth
  • Auto-Updater
  • Docker Swarm Secrets Support

Full Release Notes

## 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 --build
> ```
> This 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

### Contributors
- **@csysp** — Dismissible threat alerts + stable entity IDs for GDELT & News popups (PR #48, #63)
- **@imqdcr** — Ship toggle split into 4 categories + stable MMSI/callsign entity IDs
- **@suranyami** — Parallel multi-arch Docker builds + runtime BACKEND_URL fix (PR #35, #44)