chore: update ChangelogModal for v0.7.0

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
anoracleofra-code
2026-03-11 06:37:15 -06:00
co-authored by Claude Opus 4.6
parent 4a14a2f078
commit a771fe8cfb
+21 -21
View File
@@ -2,45 +2,45 @@
import React, { useState, useEffect } from "react"; import React, { useState, useEffect } from "react";
import { motion, AnimatePresence } from "framer-motion"; import { motion, AnimatePresence } from "framer-motion";
import { X, Rss, Server, Zap, Shield, Bug } from "lucide-react"; import { X, Zap, Gauge, Anchor, Layers, Bug } from "lucide-react";
const CURRENT_VERSION = "0.6"; const CURRENT_VERSION = "0.7";
const STORAGE_KEY = `shadowbroker_changelog_v${CURRENT_VERSION}`; const STORAGE_KEY = `shadowbroker_changelog_v${CURRENT_VERSION}`;
const NEW_FEATURES = [ const NEW_FEATURES = [
{ {
icon: <Rss size={14} className="text-orange-400" />, icon: <Gauge size={14} className="text-green-400" />,
title: "Custom News Feed Manager", title: "Parallelized Data Fetches",
desc: "Add, remove, and prioritize up to 20 RSS intelligence sources directly from the Settings panel. Assign weight levels (1-5) to control feed importance. No more editing Python files — your custom feeds persist across restarts.", desc: "Stock and oil ticker fetches now run in parallel via ThreadPoolExecutor — backend data updates ~4x faster (~2s vs ~8s serial).",
color: "orange", color: "green",
}, },
{ {
icon: <Server size={14} className="text-purple-400" />, icon: <Anchor size={14} className="text-blue-400" />,
title: "Global Data Center Map Layer", title: "AIS WebSocket Stability",
desc: "2,000+ data centers plotted worldwide from a curated dataset. Click any DC for operator details — and if an internet outage is detected in the same country, the popup flags it automatically.", desc: "Exponential backoff now properly resets after 200 consecutive successes. Removed lock-contention vessel pruning — replaced with time-based logging every 60s.",
color: "purple", color: "blue",
}, },
{ {
icon: <Zap size={14} className="text-yellow-400" />, icon: <Zap size={14} className="text-yellow-400" />,
title: "Imperative Map Rendering", title: "Deferred Icon Loading",
desc: "High-volume layers (flights, satellites, fire hotspots) now bypass React reconciliation and update the map directly via setData(). Debounced updates on dense layers. Smoother panning and zooming under load.", desc: "~35 critical map icons load immediately on startup. ~50 non-critical icons (fire markers, satellites, color variants) are deferred — faster initial map render.",
color: "yellow", color: "yellow",
}, },
{ {
icon: <Shield size={14} className="text-cyan-400" />, icon: <Layers size={14} className="text-cyan-400" />,
title: "Enhanced Health Observability", title: "Smarter Data Tiering",
desc: "The /api/health endpoint now reports per-source freshness timestamps and counts for all data layers — UAVs, FIRMS fires, LiveUAMap, GDELT, and more. Better uptime monitoring for self-hosters.", desc: "Satellites removed from fast endpoint (was duplicated). Geopolitics polling reduced from 5min to 30min. Single-pass ETag serialization — clients get 304 Not Modified most of the time.",
color: "cyan", color: "cyan",
}, },
]; ];
const BUG_FIXES = [ const BUG_FIXES = [
"Settings panel now has tabbed UI — API Keys and News Feeds on separate tabs", "News feed entrance animations capped at 15 items — no more 100+ simultaneous Framer Motion instances",
"Data center coordinates fixed for 187 Southern Hemisphere entries (were mirrored north of equator)", "FIRMS fire hotspots and internet outages use heapq.nlargest() instead of full sort — faster processing of 60K+ records",
"Docker networking: CORS_ORIGINS env var properly passed through docker-compose", "Ship counts in left panel memoized with single-pass loop instead of 3 separate filter calls",
"Start scripts warn on Python 3.13+ compatibility issues before install", "Color map objects extracted to module-level constants — no allocation on every 2s tick",
"Satellite and fire hotspot layers debounced (2s) to prevent render thrashing", "GDELT headline extraction improved — skips gibberish URL slugs and hex IDs",
"Entries with invalid geocoded coordinates automatically filtered out", "Multi-arch Docker images now available (amd64 + arm64) — runs on Raspberry Pi and Apple Silicon",
]; ];
export function useChangelog() { export function useChangelog() {