v0.9.0
BigBodyCobain/Shadowbrokerv0.9.0Mar 13, 2026by BigBodyCobain
AI Summary
A major update focusing on stability and user experience, introducing an in-app auto-updater, granular ship controls, and fixing entity selection issues.
Key Highlights
- In-app Auto-Updater for one-click updates without manual downloads
- Granular Ship Layer Controls with 4 independent toggles (Military, Cargo, Civilian, Cruise)
- Stable Entity Selection using MMSI/callsign instead of volatile array indices
- Dismissable Threat Alerts with stable content hashing
- Faster Data Loading with background enrichment and duplicate fetch elimination
New Features
- In-App Auto-Updater with backup and restart capabilities
- Granular Ship Layer Controls with live counts
- Stable Entity Selection for map markers
- Dismissable Threat Alerts
- Faster Data Loading (GDELT enrichment, duplicate fetch elimination)
- Bug fixes for viewport filtering, carrier tracker crashes, and ETag collisions
Full Release Notes
## What's New in v0.9.0 ### In-App Auto-Updater One-click updates directly from the dashboard — no more manual downloads. Click **CHECK UPDATES** → confirmation dialog → **AUTO UPDATE**. The backend downloads the latest release zip, backs up your files, extracts over the project, and auto-restarts. Your `.env`, databases, and cache files are never touched. A **MANUAL DOWNLOAD** fallback link is always available if anything goes wrong. ### Granular Ship Layer Controls Ships are now split into 4 independent toggles in the sidebar: - **Military / Carriers** — naval vessels and aircraft carriers - **Cargo / Tankers** — commercial shipping - **Civilian Vessels** — everything else - **Cruise / Passenger** — passenger ships Each toggle shows its own live count. Default: military, cargo, and passenger ON; civilian OFF. ### Stable Entity Selection Ship and flight markers now use **MMSI/callsign** as identifiers instead of volatile array indices. Selecting a ship or plane stays locked on even when data refreshes every 60 seconds. No more "phantom deselection" when the backend sends updated data. ### Dismissible Threat Alerts Click the **×** on any threat alert bubble to dismiss it for the current session. Uses stable content hashing (title + coordinates) so dismissed alerts stay hidden even across 60-second data refresh cycles. ### Faster Data Loading - **GDELT military incidents** now load instantly with background title enrichment (previously blocked for 2+ minutes) - Eliminated duplicate startup fetch jobs for faster boot - Docker healthcheck timing tuned to prevent false restarts during preload --- ## Bug Fixes - Removed viewport bbox filtering that caused 20-second delays when panning - Fixed carrier tracker crash on GDELT 429/TypeError responses - Removed fake intelligence assessment generator — all data is now real OSINT only - Fixed ETag collision (full payload hash instead of first 256 chars) - Added concurrent `/api/refresh` guard to prevent duplicate data fetches --- ## Community Contributors - **@imqdcr** — Ship toggle split into 4 categories + stable MMSI/callsign entity IDs for map markers - **@csysp** — Dismissible threat alert bubbles with stable content hashing + stopPropagation crash fix ([#48](https://github.com/BigBodyCobain/Shadowbroker/pull/48)) - **@suranyami** — Parallel multi-arch Docker builds + runtime BACKEND_URL fix ([#35](https://github.com/BigBodyCobain/Shadowbroker/pull/35), [#44](https://github.com/BigBodyCobain/Shadowbroker/pull/44)) --- ## Upgrade Download `ShadowBroker_v0.9.0.zip`, extract over your existing install, and run `start.bat` (Windows) or `start.sh` (macOS/Linux). Your `.env`, databases, and caches are preserved. Or if you're already running v0.8.0+, just click **CHECK UPDATES** in the top-right corner of the dashboard!