v2.5.9
koala73/worldmonitorv2.5.9Feb 26, 2026by github-actions[bot]
AI Summary
A major feature release introducing new data services (WTO, BIS), a new HappyMonitor dashboard, and UI enhancements like a command palette.
Key Highlights
- Added WTO trade policy intelligence service with tariffs and barriers
- Integrated BIS central bank data for policy rates and exchange rates
- Introduced HappyMonitor dashboard for positive news
- Added command palette for Cmd+K search modal
- Implemented Supply Chain Disruption Intelligence service
New Features
- Global streaming video quality setting
- Ransomware.live RSS feed
- WTO trade policy service
- BIS central bank data integration
- Supply Chain Disruption Intelligence
- HappyMonitor dashboard
- Command palette
- Universal country detection with CII scoring
Full Release Notes
## What's Changed - chore: bump v2.5.9 and update README for recent features (#398) - fix: sort supply chain chokepoints by disruption score descending (#399) - fix: sort tariff datapoints newest-first and fix cachedFetchJson test (#400) - fix: restore Linux AppImage updater routing and fallback port reporting (#397) - feat: add global streaming video quality setting (#365) (#396) - fix: Linux AppImage crashes, RSS proxy 403s, and console noise (#395) - ci: add TypeScript type-check workflow on PRs (#394) - feat: add Ransomware.live RSS feed to cyber/security sources (#392) - fix: restore FilterSpecification type annotation on country highlight filters (#393) - fix: keep flat news on cluster failure and fix deckgl filter typing (#382) - fix: supply chain panel bugs — invalid FRED series, global banner, feature gate (#391) - fix: respect Browser Local Model toggle — skip ML worker init when disabled (#390) - feat: dynamic sidecar port with EADDRINUSE fallback + let scoping bug (#375) - feat: add Supply Chain Disruption Intelligence service (#387) - fix: eliminate cache stampede across all server handlers (#389) - fix: trade policy panel visual overhaul and false unavailable banner (#385) - fix: economic panel showing wrong values and unresponsive tabs (#384) - fix: correct trade policy panel data display issues (#383) - fix: add diagnostic logging to WTO API fetch for silent failures (#376) - fix: use cachedFetchJson for WTO endpoints + add 10-min refresh schedule (#373) - fix: WTO API indicator codes, disable giving panel, update README (#371) - Add WTO trade policy intelligence service with tariffs, flows, and barriers (#364) - Add BIS central bank data integration (policy rates, exchange rates, credit) (#363) - fix: filter deck.gl Uint8Array WebGL pick noise in Sentry (#362) - fix: improve API key signup link discoverability in settings (#361) - fix: RSS proxy allowlist + add 9 new positive news feeds (#360) - chore: bump version to 2.5.8 and align README with recent features (#359) - feat: add trade route & chokepoint visualization layer (#358) - fix: add redirect target domains to RSS proxy allowlist (#357) - chore: remove .claudedocs + tighten Sentry noise filters (#356) - feat: country commands + command palette UX improvements (#355) - fix: guard data-loader against post-destroy work (#353) - perf: reduce OpenSky API calls from 4 to 2 via merged query regions (#352) - fix: desktop updater toast notification + XSS hardening (#351) - feat: add command palette to Cmd+K search modal (#350) - fix: narrow markdown lint scope to product docs only (#349) - security: harden IPC, gate DevTools, isolate external windows, exempt /api/version (#348) - feat: HappyMonitor — positive news dashboard (happy.worldmonitor.app) (#229) - fix: suppress notification sound when alerts disabled + bump v2.5.7 (#346) - perf: defer YouTube/map init and stagger data loads to reduce blocking time (#287) (#345) - Security hardening: SSRF protection, auth gating, and token generation (#343) - feat: universal country detection — CII scoring for all countries (#344) - fix: prevent entity conflation in pane summarization (#341) - fix: prevent entity conflation in pane summarization (#339) - fix: add Mexico to COUNTRY_BOUNDS and COUNTRY_ALIASES for brief news/geo matching (#338) - fix: add Mexico to CII scoring (TIER1, keywords, ports, mappings) (#337) - fix: make OpenSky cache TTLs env-configurable, bump positive to 60s (#333) - fix: serialize OpenSky requests with global 429 cooldown (#332) - fix: replace RSSHub feeds with native/Google News alternatives (#331) - fix: OpenSky auth resilience — retry, IPv4, no negative cache on auth fail (#329) - Harden Railway relay auth, caching, and proxy routing (#320) - feat: add Mexico as CII hotspot for cartel/security monitoring (#327) - feat: add Mexico and LatAm security feeds for instability coverage (#325) - fix: add CARTO and OpenStreetMap attribution to map (#323) - feat: add category pills and search filter to Panels tab (#322) - feat: consolidate settings into unified tabbed modal with variant-aware source regions (#319) - chore: remove unused WORLDPOP_API_KEY from .env.example (#318) - feat: add Island Times (Palau) RSS feed for Asia Pacific coverage (#317) - Add AI Flow settings popup for web-only AI provider control (#314) - fix: add Sentry noise filters and extend deck.gl crash suppression (#316) - fix: add drag cleanup handlers and suppress click after drag-drop (#315) - fix: replace HTML5 drag API with mouse events for WKWebView compatibility (#313) - feat: add Bild RSS feed scoped to German locale (#312) - fix: open channel settings as inline modal instead of separate window (#311) - fix: add missing country brief i18n keys and export PDF option (#308) - fix: add Greek flag mapping to language selector (#307) - fix: add Greek flag mapping to language selector (#305) - fix: add missing country brief i18n keys and export PDF option (#306) - Build/runtime hardening and dependency security updates (#286) - fix: harden embed postMessage origin check and add channel validation (#302) - fix: increase live channels window size to fit channel grid (#301) - test: add Playwright e2e tests for flushStaleRefreshes (#280) - fix: sync YouTube live panel mute state with native player controls (#285) - fix: strip Ollama reasoning tokens and plain-text thinking from summaries (#299) - fix: open external links in system browser on Tauri desktop (#297) - fix: add User-Agent and Cloudflare 403 detection to all secret validation probes (#296) - feat(live): optional channels with tab-based region browse UI (#295) - fix: infra cost optimizations round 2 — polling, TTLs, ACLED dedup (#275) - fix: enforce military bbox filtering and add behavioral cache tests (#284) - fix: infrastructure cost optimizations across caching, polling, and batching (#283) - feat(live): custom channel management with review fixes (#282) - fix: circuit breaker persistent cache with safety fixes (#281) - fix: immediately refresh stale services when tab regains focus (#277) - chore: bump version to 2.5.6 with changelog (#272) - feat: add Nigeria feeds and Greek locale feeds (#271) - fix: add negative caching + cascade-resistant dedup to RSS proxy (#270) - Add Brasil Paralelo source (#260) - Fix GLib symbol mismatch when running as AppImage on newer distros (#263) - Optimize AIS relay: backpressure queue, spatial indexing, response caching (#266) - fix: allow http:// origin from tauri.localhost for Windows CORS (#262) - feat: add Greek (Ελληνικά) locale (#256) - fix: whitelist social preview bots + restrict SW routes to same-origin (#251) - fix: restrict SW route patterns to same-origin only (#247) **Full Changelog**: https://github.com/koala73/worldmonitor/compare/v2.5.5...v2.5.9