worldmonitor

AIAGPL-3.0

worldmonitor release notes.

Latest v2.5.23 · by worldmonitorWritten in TypeScriptWebsitekoala73/worldmonitorRSS

Release activity

Release activity — 10 releases across 3 days since Feb 26, 2026. Each cell is one day; darker means more releases that day. Nothing is recorded before Feb 26, 2026. Older weeks are hidden at this screen width.
JunJulAugSep
SundayNo releases on May 24, 2026No releases on May 31, 2026No releases on Jun 7, 2026No releases on Jun 14, 2026No releases on Jun 21, 2026No releases on Jun 28, 2026No releases on Jul 5, 2026No releases on Jul 12, 2026No releases on Jul 19, 2026No releases on Jul 26, 2026No releases on Aug 2, 2026No releases on Aug 9, 2026No releases on Aug 16, 2026No releases on Aug 23, 2026No releases on Aug 30, 2026No releases on Sep 6, 2026
MondayNo releases on May 25, 2026No releases on Jun 1, 2026No releases on Jun 8, 2026No releases on Jun 15, 2026No releases on Jun 22, 2026No releases on Jun 29, 2026No releases on Jul 6, 2026No releases on Jul 13, 2026No releases on Jul 20, 2026No releases on Jul 27, 2026No releases on Aug 3, 2026No releases on Aug 10, 2026No releases on Aug 17, 2026No releases on Aug 24, 2026No releases on Aug 31, 2026No releases on Sep 7, 2026
TuesdayNo releases on May 26, 2026No releases on Jun 2, 2026No releases on Jun 9, 2026No releases on Jun 16, 2026No releases on Jun 23, 2026No releases on Jun 30, 2026No releases on Jul 7, 2026No releases on Jul 14, 2026No releases on Jul 21, 2026No releases on Jul 28, 2026No releases on Aug 4, 2026No releases on Aug 11, 2026No releases on Aug 18, 2026No releases on Aug 25, 2026No releases on Sep 1, 2026No releases on Sep 8, 2026
WednesdayNo releases on May 27, 2026No releases on Jun 3, 2026No releases on Jun 10, 2026No releases on Jun 17, 2026No releases on Jun 24, 2026No releases on Jul 1, 2026No releases on Jul 8, 2026No releases on Jul 15, 2026No releases on Jul 22, 2026No releases on Jul 29, 2026No releases on Aug 5, 2026No releases on Aug 12, 2026No releases on Aug 19, 2026No releases on Aug 26, 2026No releases on Sep 2, 2026
ThursdayNo releases on May 28, 2026No releases on Jun 4, 2026No releases on Jun 11, 2026No releases on Jun 18, 2026No releases on Jun 25, 2026No releases on Jul 2, 2026No releases on Jul 9, 2026No releases on Jul 16, 2026No releases on Jul 23, 2026No releases on Jul 30, 2026No releases on Aug 6, 2026No releases on Aug 13, 2026No releases on Aug 20, 2026No releases on Aug 27, 2026No releases on Sep 3, 2026
FridayNo releases on May 29, 2026No releases on Jun 5, 2026No releases on Jun 12, 2026No releases on Jun 19, 2026No releases on Jun 26, 2026No releases on Jul 3, 2026No releases on Jul 10, 2026No releases on Jul 17, 2026No releases on Jul 24, 2026No releases on Jul 31, 2026No releases on Aug 7, 2026No releases on Aug 14, 2026No releases on Aug 21, 2026No releases on Aug 28, 2026No releases on Sep 4, 2026
SaturdayNo releases on May 30, 2026No releases on Jun 6, 2026No releases on Jun 13, 2026No releases on Jun 20, 2026No releases on Jun 27, 2026No releases on Jul 4, 2026No releases on Jul 11, 2026No releases on Jul 18, 2026No releases on Jul 25, 2026No releases on Aug 1, 2026No releases on Aug 8, 2026No releases on Aug 15, 2026No releases on Aug 22, 2026No releases on Aug 29, 2026No releases on Sep 5, 2026

10 releases since Feb 26, 2026, busiest day 7

Changelog

v2.5.23Latest

World Monitor v2.5.23

Added 6
  • Add drag-to-reorder city rows in world-clock
  • Add Czech (cs) translation
  • Add World Clock panel with live financial city times
  • Add Fox News HLS stream and fullscreen toggle to live-news
  • Enable clicking breaking news banner to scroll to source panel
  • Add 104 missing translation keys for Italian and Spanish
Changed 2
  • Reduce default-enabled feed sources and add locale-aware boost
  • Backfill missing translations for 17 locales
Fixed 11
  • Make drag handles always visible in world-clock
  • Merge duplicate .wc-row CSS rules in world-clock
  • Allow localhost in media-src for proxied HLS and remove CNN HLS from CSP
  • Redesign World Clock with proper layout and working settings
  • Resolve sidecar 401s, variant lock, and registration form on desktop
  • Render live news fullscreen above all UI elements
Removed 1
  • Remove LiveNOW from FOX channel due to YouTube error 150

From worldmonitor

What's Changed
  • fix(world-clock): make drag handles always visible (#715)
  • fix(world-clock): merge duplicate .wc-row CSS rules (#714)
  • feat(world-clock): add drag-to-reorder city rows (#712)
  • fix(csp): allow localhost in media-src for proxied HLS & remove CNN HLS (#711)
  • fix(panel): redesign World Clock with proper layout and working settings (#710)
  • fix(desktop): resolve sidecar 401s, variant lock, and registration form (#v2.5.23) (#709)
  • fix(panel): live news fullscreen now renders above all UI elements (#708)
  • Add Czech (cs) translation (#701)
  • chore: bump version to 2.5.22 & comprehensive README update (#706)
  • feat(panel): add World Clock panel with live financial city times (#705)
  • fix(i18n): add 12 missing translation keys across all 18 locales (#703)
  • fix(sentry): add noise filters for 7 unresolved issues (#698)
  • feat(feeds): reduce default-enabled sources & add locale-aware boost (#699)
  • fix(oref): sanitize Hebrew Unicode control chars for reliable translation (#694)
  • fix(live-news): remove LiveNOW from FOX channel (YouTube error 150) (#693)
  • feat(i18n): backfill missing translations for 17 locales (#692)
  • fix(web): improve mobile responsiveness — collapsible map, panel sizing, font bump (#688)
  • feat(live-news): add Fox News HLS stream & fullscreen toggle (#689)
  • feat(breaking-news): click banner to scroll to source panel (#690)
  • feat(i18n): add 104 missing translation keys for Italian and Spanish (#687)
  • fix(pwa): stop auto-reload on service worker update (#686)
  • perf(web): lazy-load DeductionPanel to exclude dompurify from web bundle (#685)
  • feat(feeds): add Asharq News & Business to Middle East (#683)
  • feat(live-news): add CNN & CNBC HLS streams via sidecar proxy (#682)
  • fix(sentry): triage 10 unresolved issues — 2 code fixes + 8 noise filters (#681)
  • feat: implement deduct situation feature (#636) (#642)
  • feat(rag): worker-side vector store with opt-in Headline Memory (#675)
  • fix(country-intel): align strike/aviation matching with CII bounds fallback (#677)
  • feat(settings): badge pulse animation with settings toggle (#676)
  • feat: persist OREF history to Redis + retry bootstrap (#674)
  • fix(market): replace dead Yahoo Finance Gulf index tickers (#672)
  • feat(market): add Gulf Economies panel with GCC indices, currencies & oil (#667)
  • fix(ci): strip bundled GPU/Wayland libs from AppImage to fix black screen on non-Ubuntu distros (#666)
  • fix(map): stabilize deck.gl layer IDs to prevent interleaved-mode null crash (#664)
  • ui(investments): redesign panel with card layout and collapsible filters (#663)
  • feat(oref): add 1,478 Hebrew→English location translations + wire sirens into breaking news banner (#661)
  • feat: expand live channels with HLS support, Oceania region, and YouTube fallbacks (#660)
  • feat(api): add cache-purge edge function for admin Redis cache invalidation (#657)
  • fix(oref): add static Hebrew→English translations for common alert types (#655)
  • fix(finance): restore 6 missing news categories + add finance favicons (#654)
  • fix(oref): grab newest history records and preserve bootstrap data (#653)
  • fix(server): cache hardening across 27 RPC handlers (#651)
  • feat: add Oman Observer and NDTV feeds + NDTV live TV (#650)
  • perf(map): optimize DeckGLMap pan/zoom by deferring work off hot path (#620)
  • fix(oref): show history count in badge and stop swallowing fetch errors (#648)
  • feat: add Redis caching for GPS jamming data (#646)
  • fix: remove accidental intelhq submodule entry (#640)
  • Cost/traffic hardening, runtime fallback controls, and PostHog removal (#638)
  • fix(desktop): route register-interest to cloud when sidecar lacks CONVEX_URL (#639)
  • fix(sentry): null guards for classList teardown crashes + noise filters + regex fix (#637)
  • fix(desktop): backoff on errors to stop CPU abuse + shrink settings window (#633)
  • fix(linux): sanitize env for xdg-open in AppImage (#631)
  • fix(sidecar): add AVIATIONSTACK_API and ICAO_API_KEY to env allowlist (#632)
  • fix(military): narrow ICAO hex ranges to stop civilian false positives (#627)
  • chore(cache): bump all sub-5min cache TTLs and polling intervals (#626)
  • fix(map): sync layer toggles to URL for shareable links (#576) (#621)
  • feat(rss): add conditional GET (ETag/If-Modified-Since) to Railway relay (#625)
  • feat(news): server-side feed aggregation to reduce edge invocations by ~95% (#622)
  • fix(aviation): prevent AviationStack API quota blowout (#623)
  • fix(sentry): guard pauseVideo optional chaining + add 4 noise filters (#624)
  • feat(map): native mobile map experience with location detection and full feature parity (#619)
  • feat(oref): show history waves timeline with translation and NaN fix (#618)
  • fix(aviation): increase cache TTL from 30min to 2h to reduce API quota usage (#617)
  • docs(changelog): add v2.5.21 entry covering 86 merged PRs (#616)
  • fix(api): harden cache-control headers for polymarket and rss-proxy (#613)
  • perf(rss): raise news refresh interval to 10min and cache TTL to 20min (#612)
  • Expand country brief and CII signal coverage (#611)
  • fix(docs): add blank lines after CHANGELOG headings for markdownlint (#608)
  • fix: RT channel HLS-only recovery, test shim, and LiveNOW fallback (#610)
  • fix(relay): increase OREF curl maxBuffer to prevent ENOBUFS (#609)
  • fix(aviation): invalidate stale IndexedDB cache + reduce CDN TTL (#607)
  • chore: bump version to 2.5.21 (#605)
  • docs(readme): comprehensive update for Telegram, OREF, GPS jamming, airports, and more (#606)
  • fix(webcams): fix broken live news channels — eNCA handle, remove VTC NOW, fix CTI News (#604)
  • fix(aviation): always show all monitored airports on flight delays map (#603)
  • fix(sentry): guard YT player methods + filter GM/InvalidState noise (#602)
  • chore(telegram): update channel list — remove nexta_live, air_alert_ua; add wfwitness (#600)
  • fix(aviation): route NOTAM through relay + improve intl logging (#599)
  • fix(webcams): add 4th Iran Attacks feed to fill 2x2 grid (#601)
  • fix(polymarket): add queue backpressure and response limit slicing (#593)
  • fix(relay): stop Polymarket cache stampede from concurrent limit + CDN bypass (#592)
  • fix(aviation): replace broken lock mechanism with direct cache, add cancellation tiers (#591)
  • fix(telegram): add missing relay auth headers to telegram-feed edge function (#590)
  • feat(live-news): add RT channel via HLS + enable HLS on web (#586)
  • feat(feeds): add RT (Russia Today) RSS feeds (#585)
  • fix(relay): delay Telegram connect 60s on startup to prevent AUTH_KEY_DUPLICATED (#587)
  • feat(risk): wire theater posture + breaking news into strategic risk score (#584)
  • feat(aviation): add NOTAM closure detection via ICAO API (#583)
  • feat: add GPS/GNSS jamming map layer + CII integration (#570)
  • feat(aviation): add comprehensive logging to flight delay pipeline (#581)
  • feat(relay): bootstrap OREF 24h history on startup (#582)
  • fix(sentry): guard setView against invalid preset + filter translateNotifyError (#580)
  • feat(cii): hook security advisories into CII scoring & country briefs (#579)
  • fix(relay): add timeouts and logging to Telegram poll loop (#578)
  • fix(webcams): replace duplicate Tehran feed with Tel Aviv, rename Iran tab (#572)
  • fix(relay): replace nixpacks.toml with railpack.json for curl (#571)
  • feat(webcams): add Iran tab to live webcams panel (#569)
  • fix(relay): increase Polymarket cache TTL to 10 minutes (#568)
  • fix(relay): install curl in Railway container for OREF polling (#567)
  • fix(relay): upstreamWs → upstreamSocket in graceful shutdown (#565)
  • fix(cii): resolve Gulf country strike misattribution via multi-match bbox disambiguation (#564)
  • fix(relay): replace smart quotes crashing relay on startup (#563)
  • fix(aviation): query all airports instead of rotating batch (#557)
  • fix(relay): add graceful shutdown + poll concurrency guard for Telegram (#562)
  • feat(cii): wire OREF sirens into CII score & country brief (#559)
  • fix(sentry): add noise filters and fix beforeSend null-filename leak (#561)
  • fix(live-news): annotate empty catches and sanitize error output (#560)
  • fix(i18n): rename OREF Sirens panel to Israel Sirens (#556)
  • fix(live-news): align YouTube edge function with relay auth pattern (#555)
  • fix(live-news): use correct relay auth header for YouTube proxy (#554)
  • feat(settings): add AVIATIONSTACK_API to desktop settings page (#553)
  • feat(live-news): move YouTube proxy scraping to Railway relay
  • feat(aviation): integrate AviationStack API for non-US airport delays (#552)
  • fix(live-news): lazy-load node modules + proxy fallback to direct fetch
  • fix(live-news): set explicit runtime: 'nodejs' for proxy support
  • debug(live-news): add debug param to diagnose proxy env var on Vercel
  • feat(live-news): add residential proxy + gzip decompression for YouTube detection (#551)
  • feat(telegram): add Telegram Intel panel (#550)
  • feat(conflict): enhance Iran events popup with severity badge and related events (#549)
  • fix(alerts): add compound escalation for military action + geopolitical target (#548)
  • feat(cii): integrate Iran strike events into CII scoring, country brief & timeline (#547)
  • gave the user freedom to resize panels "fixes issue #426" (#489)
  • fix(relay): use execFileSync for OREF curl to avoid shell injection (#546)
  • feat(oref): add OREF sirens panel with Hebrew-to-English translation (#545)
  • fix(live-news): fix broken Europe channel handles + add fallback video IDs (#541)
  • fix(telegram): latch AUTH_KEY_DUPLICATED to stop retry spam (#543)
  • fix(telegram): fix ESM import path in session-auth script (#542)
  • fix(iran): bump CDN cache-bust to v4 for fresh event data (#544)
  • fix(live-news): add fallback video ID for LiveNOW from FOX channel (#538)
  • fix(relay): auto-reconnect on Telegram AUTH_KEY_DUPLICATED and fix IranIntl handle (#539)
  • feat: add day/night solar terminator overlay to map (#529)
  • Revert "Revert "fix(relay): fix telegram ESM import path and broaden latch regex"" (#537)
  • Revert "fix(relay): fix telegram ESM import path and broaden latch regex"
  • fix(ui): move download banner to bottom-right (#536)
  • fix(relay): fix telegram ESM import path and broaden latch regex
  • fix(live-news): replace 7 stale YouTube fallback video IDs (#535)
  • fix(relay): Telegram + OOM + memory cleanup (#531)
  • fix(alerts): remove SESSION_START gate that blocked pre-existing breaking news (#533)
  • fix(iran): bust CDN cache to serve updated Gulf-geocoded events (#532)
  • fix(geo): expand geo hub index with 60+ missing world locations (#528)
  • feat(map): prioritize Iran Attacks layer (#527)
  • fix(relay): block rsshub.app requests with 410 Gone (#526)
  • fix(focal-points): attribute theater military activity to target nations (#525)
  • fix(iran): bypass stale CDN cache for iran-events endpoint (#524)
  • fix(relay): regenerate package-lock.json with telegram dependency (#522)
  • fix(breaking-news): fill keyword gaps missing real Iran attack headlines (#521)
  • fix(relay): add POLYMARKET_ENABLED env flag kill switch (#523)
  • Revert "fix(relay): regenerate package-lock.json with telegram dependency"
  • chore: trigger deploy to flush CDN cache for iran-events endpoint
  • fix(relay): regenerate package-lock.json with telegram dependency
  • fix(threat-classifier): stagger AI classification requests to avoid Groq 429 (#520)
  • fix(relay): Polymarket circuit breaker + concurrency limiter (OOM fix) (#519)
  • fix: make iran-events handler read-only from Redis (#518)
  • fix(breaking-news): fix fake pubDate fallback and filter noisy think-tank alerts (#517)
  • fix(rate-limit): increase sliding window to 300 req/min (#515)
  • fix(breaking-news): let critical alerts bypass global cooldown and replace HIGH alerts (#516)
  • fix(threat-classifier): add military/conflict keyword gaps and news-to-conflict bridge (#514)
  • fix(relay): prevent Polymarket OOM via request deduplication (#513)
  • fix: resolve bootstrap 401 and 429 rate limiting on page init (#512)
  • feat(conflict): add Iran Attacks map layer + strip debug logs (#511)
  • chore: add validated telegram channels list (global + ME + Iran + cyber) (#249)
  • fix(sentry): filter Android OEM WebView bridge injection errors (#510)
  • feat(breaking-news): add active alert banner with audio for critical/high RSS items (#508)
  • fix(relay): guard proxy handlers against ERR_HTTP_HEADERS_SENT crash (#509)
  • fix(prediction): filter stale/expired markets from Polymarket panel (#507)
  • fix: generalize Vercel preview origin regex + include filters in bases cache key (#506)
  • chore: strip 61 debug console.log calls from 20 service files (#501)
  • fix(geo): tokenization-based keyword matching to prevent false positives (#503)
  • fix(bootstrap): harden hydration cache + polling review fixes (#504)
  • feat(live-news): add CBC News to optional North America channels (#502)
  • fix: use cross-env for Windows-compatible npm scripts (#499)
  • fix(cyber): make GeoIP centroid fallback jitter deterministic (#498)
  • perf(military): debounce base fetches + upgrade edge cache to static tier (#497)
  • feat(military): server-side military bases 125K + rate limiting (#496)
  • perf: bootstrap endpoint + polling optimization (#495)
  • feat(rss): add Axios (api.axios.com/feed) as US news source (#494)
  • feat: add Polish tv livestreams (#488)
  • feat(i18n): add Korean (한국어) localization (#487)
  • fix(rss): remove stale indianewsnetwork.com from proxy allowlist (#486)
  • chore: bump version to 2.5.20 + changelog
  • feat(gateway): complete edge cache tier coverage + degraded-response policy (#484)
  • fix(markets): commodities panel showing stocks instead of commodities (#483)
  • perf(proxy): increase AIS snapshot edge TTL from 2s to 10s (#482)
  • fix(analytics): use greedy regex in PostHog ingest rewrites (#481)
  • feat: configurable VITE_WS_API_URL + harden POST→GET shim (#480)
  • fix(sentry): add noise filters for 4 unresolved issues (#479)
  • feat(proxy): add Cloudflare edge caching for proxy.worldmonitor.app (#478)
  • fix(gateway): convert stale POST requests to GET for backwards compat (#477)
  • fix(desktop): enable click-to-play YouTube embeds + CISA feed fixes (#476)
  • fix(tech): use rss() for CISA feed, drop build from pre-push hook (#475)
  • feat(cache): tiered edge Cache-Control aligned to upstream TTLs (#474)
  • fix(security-advisories): route feeds through RSS proxy to avoid CORS blocks (#473)
  • fix: move 5 path-param endpoints to query params for Vercel routing (#472)
  • fix(beta): eagerly load T5-small model when beta mode is enabled
  • feat: add Cloudflare edge caching infrastructure for api.worldmonitor.app (#471)
  • feat: convert 52 API endpoints from POST to GET for edge caching (#468)
  • feat(cache): add negative-result caching to cachedFetchJson (#466)
  • Add Security Advisories panel with government travel alerts (#460)
  • feat(settings): redesign settings window with VS Code-style sidebar layout (#461)
  • fix(scripts): handle escaped apostrophes in feed name regex (#455)
  • fix(wingbits): add 5-minute backoff on Wingbits /v1/flights failures (#459)
  • fix(ollama): strip thinking tokens, raise max_tokens, fix panel summary cache (#456)
  • fix+feat: RSS feed repairs, HLS native playback, summarization cache fix, embed improvements (#452)

Full Changelog: https://github.com/koala73/worldmonitor/compare/v2.5.19...v2.5.23

View originalPermalink
How v2.5.23 went
v2.5.21

World Monitor v2.5.21

Added 18
  • Native mobile map experience with location detection and full feature parity
  • Show history waves timeline with translation and NaN fix for OREF
  • GPS/GNSS jamming map layer with CII integration
  • NOTAM closure detection via ICAO API for aviation
  • Wire theater posture and breaking news into strategic risk score
  • RT (Russia Today) RSS feeds
Changed 2
  • Increase aviation cache TTL from 30min to 2h to reduce API quota usage
  • Raise news refresh interval to 10min and cache TTL to 20min for RSS

From worldmonitor

What's Changed
  • feat(map): native mobile map experience with location detection and full feature parity (#619)
  • feat(oref): show history waves timeline with translation and NaN fix (#618)
  • fix(aviation): increase cache TTL from 30min to 2h to reduce API quota usage (#617)
  • docs(changelog): add v2.5.21 entry covering 86 merged PRs (#616)
  • fix(api): harden cache-control headers for polymarket and rss-proxy (#613)
  • perf(rss): raise news refresh interval to 10min and cache TTL to 20min (#612)
  • Expand country brief and CII signal coverage (#611)
  • fix(docs): add blank lines after CHANGELOG headings for markdownlint (#608)
  • fix: RT channel HLS-only recovery, test shim, and LiveNOW fallback (#610)
  • fix(relay): increase OREF curl maxBuffer to prevent ENOBUFS (#609)
  • fix(aviation): invalidate stale IndexedDB cache + reduce CDN TTL (#607)
  • chore: bump version to 2.5.21 (#605)
  • docs(readme): comprehensive update for Telegram, OREF, GPS jamming, airports, and more (#606)
  • fix(webcams): fix broken live news channels — eNCA handle, remove VTC NOW, fix CTI News (#604)
  • fix(aviation): always show all monitored airports on flight delays map (#603)
  • fix(sentry): guard YT player methods + filter GM/InvalidState noise (#602)
  • chore(telegram): update channel list — remove nexta_live, air_alert_ua; add wfwitness (#600)
  • fix(aviation): route NOTAM through relay + improve intl logging (#599)
  • fix(webcams): add 4th Iran Attacks feed to fill 2x2 grid (#601)
  • fix(polymarket): add queue backpressure and response limit slicing (#593)
  • fix(relay): stop Polymarket cache stampede from concurrent limit + CDN bypass (#592)
  • fix(aviation): replace broken lock mechanism with direct cache, add cancellation tiers (#591)
  • fix(telegram): add missing relay auth headers to telegram-feed edge function (#590)
  • feat(live-news): add RT channel via HLS + enable HLS on web (#586)
  • feat(feeds): add RT (Russia Today) RSS feeds (#585)
  • fix(relay): delay Telegram connect 60s on startup to prevent AUTH_KEY_DUPLICATED (#587)
  • feat(risk): wire theater posture + breaking news into strategic risk score (#584)
  • feat(aviation): add NOTAM closure detection via ICAO API (#583)
  • feat: add GPS/GNSS jamming map layer + CII integration (#570)
  • feat(aviation): add comprehensive logging to flight delay pipeline (#581)
  • feat(relay): bootstrap OREF 24h history on startup (#582)
  • fix(sentry): guard setView against invalid preset + filter translateNotifyError (#580)
  • feat(cii): hook security advisories into CII scoring & country briefs (#579)
  • fix(relay): add timeouts and logging to Telegram poll loop (#578)
  • feat(scripts): add Iran events seed script and latest data (#575)
  • fix(webcams): replace duplicate Tehran feed with Tel Aviv, rename Iran tab (#572)
  • fix(relay): replace nixpacks.toml with railpack.json for curl (#571)
  • feat(webcams): add Iran tab to live webcams panel (#569)
  • fix(relay): increase Polymarket cache TTL to 10 minutes (#568)
  • fix(relay): install curl in Railway container for OREF polling (#567)
  • fix(relay): upstreamWs → upstreamSocket in graceful shutdown (#565)
  • fix(cii): resolve Gulf country strike misattribution via multi-match bbox disambiguation (#564)
  • fix(relay): replace smart quotes crashing relay on startup (#563)
  • fix(aviation): query all airports instead of rotating batch (#557)
  • fix(relay): add graceful shutdown + poll concurrency guard for Telegram (#562)
  • feat(cii): wire OREF sirens into CII score & country brief (#559)
  • fix(sentry): add noise filters and fix beforeSend null-filename leak (#561)
  • fix(live-news): annotate empty catches and sanitize error output (#560)
  • fix(i18n): rename OREF Sirens panel to Israel Sirens (#556)
  • fix(live-news): align YouTube edge function with relay auth pattern (#555)
  • fix(live-news): use correct relay auth header for YouTube proxy (#554)
  • feat(settings): add AVIATIONSTACK_API to desktop settings page (#553)
  • feat(live-news): move YouTube proxy scraping to Railway relay
  • feat(aviation): integrate AviationStack API for non-US airport delays (#552)
  • fix(live-news): lazy-load node modules + proxy fallback to direct fetch
  • fix(live-news): set explicit runtime: 'nodejs' for proxy support
  • debug(live-news): add debug param to diagnose proxy env var on Vercel
  • feat(live-news): add residential proxy + gzip decompression for YouTube detection (#551)
  • feat(telegram): add Telegram Intel panel (#550)
  • feat(conflict): enhance Iran events popup with severity badge and related events (#549)
  • fix(alerts): add compound escalation for military action + geopolitical target (#548)
  • feat(cii): integrate Iran strike events into CII scoring, country brief & timeline (#547)
  • gave the user freedom to resize panels "fixes issue #426" (#489)
  • fix(relay): use execFileSync for OREF curl to avoid shell injection (#546)
  • feat(oref): add OREF sirens panel with Hebrew-to-English translation (#545)
  • fix(live-news): fix broken Europe channel handles + add fallback video IDs (#541)
  • fix(telegram): latch AUTH_KEY_DUPLICATED to stop retry spam (#543)
  • fix(telegram): fix ESM import path in session-auth script (#542)
  • fix(iran): bump CDN cache-bust to v4 for fresh event data (#544)
  • fix(live-news): add fallback video ID for LiveNOW from FOX channel (#538)
  • fix(relay): auto-reconnect on Telegram AUTH_KEY_DUPLICATED and fix IranIntl handle (#539)
  • feat: add day/night solar terminator overlay to map (#529)
  • Revert "Revert "fix(relay): fix telegram ESM import path and broaden latch regex"" (#537)
  • Revert "fix(relay): fix telegram ESM import path and broaden latch regex"
  • fix(ui): move download banner to bottom-right (#536)
  • fix(relay): fix telegram ESM import path and broaden latch regex
  • fix(live-news): replace 7 stale YouTube fallback video IDs (#535)
  • fix(relay): Telegram + OOM + memory cleanup (#531)
  • fix(alerts): remove SESSION_START gate that blocked pre-existing breaking news (#533)
  • fix(iran): bust CDN cache to serve updated Gulf-geocoded events (#532)
  • fix(geo): expand geo hub index with 60+ missing world locations (#528)
  • feat(map): prioritize Iran Attacks layer (#527)
  • fix(relay): block rsshub.app requests with 410 Gone (#526)
  • fix(focal-points): attribute theater military activity to target nations (#525)
  • fix(iran): bypass stale CDN cache for iran-events endpoint (#524)
  • fix(relay): regenerate package-lock.json with telegram dependency (#522)
  • fix(breaking-news): fill keyword gaps missing real Iran attack headlines (#521)
  • fix(relay): add POLYMARKET_ENABLED env flag kill switch (#523)
  • Revert "fix(relay): regenerate package-lock.json with telegram dependency"
  • chore: trigger deploy to flush CDN cache for iran-events endpoint
  • fix(relay): regenerate package-lock.json with telegram dependency
  • fix(threat-classifier): stagger AI classification requests to avoid Groq 429 (#520)
  • fix(relay): Polymarket circuit breaker + concurrency limiter (OOM fix) (#519)
  • fix: make iran-events handler read-only from Redis (#518)
  • fix(breaking-news): fix fake pubDate fallback and filter noisy think-tank alerts (#517)
  • fix(rate-limit): increase sliding window to 300 req/min (#515)
  • fix(breaking-news): let critical alerts bypass global cooldown and replace HIGH alerts (#516)
  • fix(threat-classifier): add military/conflict keyword gaps and news-to-conflict bridge (#514)
  • fix(relay): prevent Polymarket OOM via request deduplication (#513)
  • fix: resolve bootstrap 401 and 429 rate limiting on page init (#512)
  • feat(conflict): add Iran Attacks map layer + strip debug logs (#511)
  • chore: add validated telegram channels list (global + ME + Iran + cyber) (#249)
  • fix(sentry): filter Android OEM WebView bridge injection errors (#510)
  • feat(breaking-news): add active alert banner with audio for critical/high RSS items (#508)
  • fix(relay): guard proxy handlers against ERR_HTTP_HEADERS_SENT crash (#509)
  • fix(prediction): filter stale/expired markets from Polymarket panel (#507)
  • fix: generalize Vercel preview origin regex + include filters in bases cache key (#506)
  • chore: strip 61 debug console.log calls from 20 service files (#501)
  • fix(geo): tokenization-based keyword matching to prevent false positives (#503)
  • fix(bootstrap): harden hydration cache + polling review fixes (#504)
  • feat(live-news): add CBC News to optional North America channels (#502)
  • fix: use cross-env for Windows-compatible npm scripts (#499)
  • fix(cyber): make GeoIP centroid fallback jitter deterministic (#498)
  • perf(military): debounce base fetches + upgrade edge cache to static tier (#497)
  • feat(military): server-side military bases 125K + rate limiting (#496)
  • perf: bootstrap endpoint + polling optimization (#495)
  • feat(rss): add Axios (api.axios.com/feed) as US news source (#494)
  • feat: add Polish tv livestreams (#488)
  • feat(i18n): add Korean (한국어) localization (#487)
  • fix(rss): remove stale indianewsnetwork.com from proxy allowlist (#486)

Full Changelog: https://github.com/koala73/worldmonitor/compare/v2.5.20...v2.5.21

View originalPermalink
How v2.5.21 went
v2.5.20

World Monitor v2.5.20

Added 9
  • Complete edge cache tier coverage with degraded-response policy for gateway
  • Configurable VITE_WS_API_URL and hardened POST→GET shim
  • Cloudflare edge caching for proxy.worldmonitor.app
  • Tiered edge Cache-Control aligned to upstream TTLs
  • Cloudflare edge caching infrastructure for api.worldmonitor.app
  • Convert 52 API endpoints from POST to GET for edge caching
Changed 1
  • Increase AIS snapshot edge TTL from 2s to 10s
Fixed 9
  • Commodities panel showing stocks instead of commodities
  • Use greedy regex in PostHog ingest rewrites
  • Add noise filters for 4 unresolved Sentry issues
  • Convert stale POST requests to GET for backwards compatibility in gateway
  • Enable click-to-play YouTube embeds and CISA feed fixes in desktop
  • Use rss() for CISA feed and drop build from pre-push hook

From worldmonitor

What's Changed
  • chore: bump version to 2.5.20 + changelog
  • feat(gateway): complete edge cache tier coverage + degraded-response policy (#484)
  • fix(markets): commodities panel showing stocks instead of commodities (#483)
  • perf(proxy): increase AIS snapshot edge TTL from 2s to 10s (#482)
  • fix(analytics): use greedy regex in PostHog ingest rewrites (#481)
  • feat: configurable VITE_WS_API_URL + harden POST→GET shim (#480)
  • fix(sentry): add noise filters for 4 unresolved issues (#479)
  • feat(proxy): add Cloudflare edge caching for proxy.worldmonitor.app (#478)
  • fix(gateway): convert stale POST requests to GET for backwards compat (#477)
  • fix(desktop): enable click-to-play YouTube embeds + CISA feed fixes (#476)
  • fix(tech): use rss() for CISA feed, drop build from pre-push hook (#475)
  • feat(cache): tiered edge Cache-Control aligned to upstream TTLs (#474)
  • fix(security-advisories): route feeds through RSS proxy to avoid CORS blocks (#473)
  • fix: move 5 path-param endpoints to query params for Vercel routing (#472)
  • fix(beta): eagerly load T5-small model when beta mode is enabled
  • feat: add Cloudflare edge caching infrastructure for api.worldmonitor.app (#471)
  • feat: convert 52 API endpoints from POST to GET for edge caching (#468)
  • feat(cache): add negative-result caching to cachedFetchJson (#466)
  • Add Security Advisories panel with government travel alerts (#460)
  • feat(settings): redesign settings window with VS Code-style sidebar layout (#461)
  • fix(scripts): handle escaped apostrophes in feed name regex (#455)
  • fix(wingbits): add 5-minute backoff on Wingbits /v1/flights failures (#459)
  • fix(ollama): strip thinking tokens, raise max_tokens, fix panel summary cache (#456)
  • fix+feat: RSS feed repairs, HLS native playback, summarization cache fix, embed improvements (#452)

Full Changelog: https://github.com/koala73/worldmonitor/compare/v2.5.19...v2.5.20

View originalPermalink
How v2.5.20 went
v2.5.16

World Monitor v2.5.16

Added 2
  • Add India, military, and maritime RSS feeds
  • Add YouTube URL support in custom channels and Middle East region
Fixed 2
  • Add security headers to Vercel deployment
  • Bundle full GStreamer codec suite for YouTube playback on Linux

From worldmonitor

What's Changed
  • chore: bump v2.5.16 (#440)
  • feat: add India, military, and maritime RSS feeds (#437)
  • fix: add security headers to Vercel deployment (#439)
  • feat: YouTube URL support in custom channels + Middle East region (#435)
  • fix(linux): bundle full GStreamer codec suite for YouTube playback (#434)

Full Changelog: https://github.com/koala73/worldmonitor/compare/v2.5.15...v2.5.16

View originalPermalink
How v2.5.16 went
v2.5.15

World Monitor v2.5.15

Fixed 3
  • Deduplicate smoke test artifact name for dual Linux builds
  • Reduce upstream API pressure with cache TTL optimization
  • Tighten noise filters for deck.gl/maplibre and WebView errors in Sentry

From worldmonitor

What's Changed
  • chore: bump v2.5.15 (#432)
  • fix(ci): deduplicate smoke test artifact name for dual Linux builds (#431)
  • fix: reduce upstream API pressure with cache TTL optimization (#430)
  • fix(sentry): tighten noise filters for deck.gl/maplibre and WebView errors (#429)

Full Changelog: https://github.com/koala73/worldmonitor/compare/v2.5.14...v2.5.15

View originalPermalink
How v2.5.15 went
v2.5.14

World Monitor v2.5.14

See changelog below.

View originalPermalink
How v2.5.14 went
v2.5.13

World Monitor v2.5.13

Changed 1
  • Optimize Wingbits API usage and reduce unnecessary polling
Fixed 3
  • Tolerate YouTube API failures when adding custom channels
  • Append host GStreamer plugins to AppImage search path on Linux
  • Enable keyring persistence via Secret Service and keyutils on Linux

From worldmonitor

What's Changed
  • fix(live-channels): tolerate YouTube API failures when adding custom channels (#425)
  • fix(linux): append host GStreamer plugins to AppImage search path (#424)
  • fix(linux): enable keyring persistence via Secret Service + keyutils (#419)
  • Optimize Wingbits API usage and reduce unnecessary polling (#416)
  • ci: skip Typecheck and Lint on fork PRs (#415)
  • fix(ci): use weston+XWayland for Linux smoke test (#417)
  • ci: add standalone Test Linux App workflow, revert build-desktop.yml (#414)
  • ci(linux): add AppImage smoke test to desktop build (#413)

Full Changelog: https://github.com/koala73/worldmonitor/compare/v2.5.11...v2.5.13

View originalPermalink
How v2.5.13 went
View all

Discussion

If you publish worldmonitor, you can claim this product by proving you administer its repository.