Skip to content

Releases: koala73/worldmonitor

World Monitor v2.11.3

Choose a tag to compare

@github-actions github-actions released this 23 Oct 03:27
30aa094

What's Changed

  • chore: bump version 2.11.2 → 2.11.3 (#9556)
  • perf(ci): install cached browser fonts with dpkg, not apt (#9554)
  • fix(aaii): read sentiment.xls through the OLE2 FAT chain and parse the redesigned page (#9557)
  • chore(deps): bump the npm-security group across 4 directories with 4 updates (#9553)
  • fix(earthquakes): preserve failure onset after provider expiry (#9555)
  • Revert "fix(sentry): minimize browser URL and identity data (#8165)" (#9549)
  • perf(ci): limit Security Audit checkout to audit inputs (#9552)
  • fix(chokepoints): headline the IMF PortWatch daily count against a year-earlier baseline (#9550)
  • fix(deploy): build same-commit Vercel redeploys on main (#9545)
  • fix(relay): count chokepoint transits between gates on each side of the narrows (#9551)
  • fix(railway): enroll the provisioned seed-country-history service (#9547)

Full Changelog: convex-deployed...v2.11.3

World Monitor v2.11.2

Choose a tag to compare

@github-actions github-actions released this 20 Oct 06:29
39c1a1e

What's Changed

  • chore: bump version 2.11.1 → 2.11.2 (#9445)
  • fix(health): track freshness of every OECD yield market (#9443)
  • fix(docker): keep the qualified-signals e2e fixture inside the build context (#9439)
  • chore(security): add OSS Scanner build image and threat model (#9441)
  • fix(sidecar): give signed-out desktops an anonymous cloud session (#7548) (#9440)
  • test(mcp): supply required country history arguments
  • fix(mcp): rate-limit invalid panel calls
  • test(mcp): reproduce invalid panel call burst bypass
  • fix(mcp): validate stock research before reserving allowance
  • test(mcp): cover stock validation before allowance reservation
  • fix(review): validate food section commodity before quota
  • fix(review): reject remaining local arguments before quota
  • fix(review): preserve supply vulnerability country aliases
  • fix(review): validate food commodity before allowance
  • fix(mcp): reject semantic argument errors before allowance
  • fix(mcp): mark argument validator as an internal helper
  • fix(mcp): validate tool arguments before reserving allowance

Full Changelog: convex-deployed...v2.11.2

World Monitor v2.11.1

Choose a tag to compare

@github-actions github-actions released this 19 Oct 18:33
39e0252

What's Changed

  • chore: bump version 2.11.0 → 2.11.1 (#9428)
  • fix(country): share default accepted assessments across clients (#9427)
  • fix(desktop): Pro cloud access, Pro setup copy, and panels stuck loading (#9396) (#9424)
  • docs(mcp): rewrite the quickstart as a connector walkthrough with screenshots (Claude, ChatGPT, Codex, Cursor) (#9426)
  • fix(sentry): report handled brief degradations at warning level (#9423)
  • fix(cii): score sustained crises and place geo events by real borders, worldwide (CII v11) (#9421)
  • fix(data): label every figure with its own year (debt ticker, energy mix, resilience) (#9420)
  • fix(map): skip country hit tests for SVG controls (#9422)

Full Changelog: convex-deployed...v2.11.1

World Monitor v2.11.0

Choose a tag to compare

@github-actions github-actions released this 16 Oct 15:39
5a8005c

What's Changed

  • chore: bump version 2.10.0 → 2.11.0 (#9182)
  • fix(mcp-proxy): pin upstream sockets to the DoH-vetted address (GHSA-887j) (#9038)
  • fix(welcome): product-led homepage H1 and canonical meta description (#9156)
  • build(deps): bump the npm-security group across 1 directory with 5 updates (#9125)
  • fix(pro): keep mounted /pro inside phone viewports (#9176)
  • fix: load country energy assets on cold visits (#9178)
  • perf(pro): prerender the /pro nav and hero so desktop LCP lands at first paint (#9175)
  • fix(country-brief): keep instability indicators in sync (#9179)
  • fix: prevent unsupported sanctions links in country assessments (#9177)
  • seo(glossary): show the live Pentagon Pizza Index level on its page (#9173)
  • fix: keep startup alive when window.beta cannot be defined (#9168)
  • fix(sentry): drop WebView autofill errors on the landing page (#9172)

Full Changelog: convex-deployed...v2.11.0

World Monitor v2.10.0

Choose a tag to compare

@github-actions github-actions released this 08 Sep 17:25
802eafb

What's Changed

  • chore(release): automate desktop release train (#6586)
  • docs(sources): reconcile provider and host counts (#6582)
  • docs: publish panel implementation count (#6584)
  • fix(license): put AGPL title first for detection (#6576) (#6583)
  • fix(docs): point Mintlify OpenAPI download at real bundle (#6578)
  • fix(license): expose AGPL text to scanners (#6576) (#6579)
  • docs(about): update GitHub star count (#6580)
  • fix(panels): deliver boot data to panels that mount after the pass (#6567)
  • fix(resilience): fail closed on malformed blend inputs (#6570)
  • fix(resilience): make whole-index pair gaps CI-visible (#6572)
  • fix(resilience): activate financial system exposure safely (#6568)
  • fix(resilience): compare acceptance outcomes, not gate config (#6566)
  • fix(seeders): seed-bundle-resilience defers every section forever — #6531's budget is below every section's timeout+grace (#6564)
  • fix(sentry): admit every app-serving host to the allowUrls ingest gate (#6565)
  • fix(csp-filter): suppress the Google Fonts /l/font subsetting endpoint (TR round 7) (#6560)
  • fix(sentry): the anonymous trampoline hop is '?' at runtime, not '' (#6554)
  • fix(railway): stop recovery approval emails and retry failures (#6551)
  • feat(i18n): add Traditional Chinese (zh-TW) locale (#6546)
  • feat(i18n): Add Swahili language support (#5406)
  • feat(webmcp): expose safe live dashboard controls (#6516)
  • fix(sentry-triage): convex OCC conflict herds + Y4 trampoline gate hole (#6547)
  • ci: let the acceptance-artifact validator run on the PR that commits one (#6544)
  • refactor(markets): one stablecoin classifier instead of three copies (#6541)
  • docs(resilience): commit the education post-flip acceptance artifact (#6460) (#6542)
  • feat(resilience): ingest USDA food stocks and expose stocks-to-use (#6531)
  • fix(resilience): condition the fin-sys integration premium on parent diversity (#6529)
  • feat(company-monitoring): seal offline prediction custody (#6534)
  • feat(data): mineral production & processing shares (USGS MCS / BGS) (#6527)
  • feat: preflight system dependencies instead of failing mid-build (#6387)
  • fix(railway): bound reconcile fanout and evidence reads (#6539)
  • fix(compose): wire relay shared secret (#6540)
  • feat(military): add defense industrial intelligence (#6536)
  • feat(markets): correlate news volume with market returns (#6530)
  • fix(ops): publish Railway drift as an independent check (#6533)
  • fix(resilience): unblock education acceptance capture (#6532)
  • fix(auth): restore readable input text in Clerk modal (#6535)
  • fix(ops): make the Railway deploy-drift alarm carry signal (#6141) (#6522)
  • fix(resilience): activate non-DRS debt imputation (#6526)
  • fix(ci): invalidate stale deploy gate statuses (#6525)
  • fix(railway): keep protected recovery reachable (#6524)
  • fix(docs): repair the Mintlify deploy break and the lint that missed it (#6521)
  • fix(sources): require explicit provider retirement (#6514)
  • docs(platform): add customer evaluation guide (#6518)
  • fix(resilience): stop absence from scoring as strength (#6515)
  • fix(ingestion): publish Military-Bases seed metadata (#6471)
  • fix(resilience): rebuild healthy education cohort (#6517)
  • fix(sources): show readable provider names (#6512)
  • fix(ci): recover deploy gate from API failures (#6513)
  • fix(sources): publish complete provider catalog (#6509)
  • fix(resilience): stop a transient seed-meta read failure from faking a dead producer (#6503)
  • ci(e2e): upload Playwright traces when variant-smoke-full fails (#6496) (#6497)
  • fix(welcome): stop internal CTAs minting affiliate codes, and guard every path to checkout (#6493) (#6504)
  • chore(gitignore): ignore public/sources/ and tie the rule to the build (#6498) (#6506)
  • docs(solutions): capture the self-comparing gate failure shape (#6487) (#6502)
  • fix(sources): let the attribution drift gate see reference drift (#6487) (#6499)
  • docs(openapi): document billing-verification 503 + ForbiddenError.code on gated ops (#5496)
  • fix(sentry): filter the round-6 TR package-CDN webfonts (unpkg, jsDelivr) (#6495)
  • docs(company-monitoring): remove provider approval claims (#6494)
  • test(company-monitoring): add sealed evidence curation gate (#6488)
  • docs(usage-errors): make Retry-After authoritative over the backoff schedule (#6485)
  • feat(resilience): activate the education dimension (#6460) (#6473)
  • docs(sources): domain-segmented data-sources catalog + /sources marketing page (#6491) (#6492)
  • fix(energy): let the IEA country keys re-export seededAt, and give the guard test a fixture that can fail (#6489) (#6490)
  • fix(feeds): point Tuoi Tre at its canonical host so Feed Validation stops blocking the news-health publish (#6484) (#6486)
  • fix(premium): honor the retryable billing-verification 503 on premium RPCs (#6482)
  • ops(webmcp): enroll dashboard origins and enforce security gates (#6465)
  • fix(ci): let the post-merge monitor survive a blip and name the real cause (#6479) (#6481)
  • fix(railway): let the watchdog go red, retry the read path, and stop the gate walk early (#6474) (#6478)
  • fix(markets): order the gap-fetch timers so our own cutoff is never the provider's fault (#6468) (#6476)
  • fix(convex): rename admission-snapshot so the production push is legal (#6480)
  • feat(company-monitoring): classify and admit material impacts (#6470)
  • docs(railway): correct three claims that shipped with the pagination fix (#6477)
  • docs(resilience): record education probe acceptance and its two read traps (#6472)
  • fix(railway): watchdog never paginates — GitHub rewrites next links to the repository-ID path (#6378) (#6469)
  • fix(health): register the educationAttainment probe + education pre-flip gates (#6452, #6460) (#6467)
  • ops(resilience): register the educationAttainment health probe (#6452) (#6464)
  • fix(resilience): financialSystemExposure inverts the ranking — executable calibration gates, then the retune (#6459) (#6463)
  • feat(company-monitoring): normalize scoped evidence candidates (#6457)
  • fix(sentry): group limiter degradation by failure mode, not by route (#6454) (#6458)
  • fix(sidecar): pin IPv6-only RSS fetches (#6456)
  • fix(rate-limit): confirm CF edge-proof covers /api/* and warn when it stops (#6435)
  • fix(rate-limit): meter the gateway reverse-geocode RPC at 60/min (#6451)
  • fix(feeds): drop the dead YC Blog publisher-family label (#6455)
  • feat(resilience): add flag-dark education dimension to the Country Resilience Index (#6450)
  • fix(feeds): restore server-only sources to dashboard (#6444)
  • fix(brief): corroboration gates count publisher families, not feed labels (#6443)
  • fix(ui): harden panel font scaling (#6453)
  • feat(company-monitoring): ingest verified X posts (#6424)
  • fix: require expiring health probe cutovers (#6392)
  • feat(ui): add global and per-panel font scaling (#6445)
  • fix(ingestion): rebuild GB consumer-price roster around scrapeable retailers (#6358) (#6442)
  • feat(mcp): expose story corroboration to agents (#4925 item 3) (#6421)
  • feat(company-monitoring): add bounded Exa cohort discovery (#6404)
  • fix(alerts): give keyword-spike alerts the sources, headlines and links they already held (#6414) (#6433)
  • chore(ci): ignore generated sidecar bundles in edge checks (#5926)
  • ops(ci): alarm on failed post-merge production deploys (#6376) (#6406)
  • fix(api): rate-limit the three unguarded public proxies (#6234) (#6412)
  • fix(session): stop one dropped mint request blacking out anonymous browsing (#6413)
  • fix(settings): keep plan verification pending through auth retries (#6423)
  • fix(sentry): split Cloudflare edge 5xx from origin 5xx by fingerprint (#6370) (#6409)
  • fix(analytics): make the Umami retention tick commit, and size it for the volume (#6375) (#6407)
  • fix(sentry): repair the alicdn font rule and filter the round-5 TR injectors (#6408)
  • fix(markets): harden Hyperliquid and FRED live data (#6339)
  • fix(rate-limit): stop the test-context abort racing the decision (#6236) (#6405)
  • fix(gdelt-intel): share one timestamp validator between the fetch-ordering and health paths (#5858) (#6044)
  • ops(railway): mark company-monitoring-worker planned so the post-#6397 apply can run (#6402) (#6403)
  • fix(ingestion): harden theater posture publication (#6401)
  • fix(energy): stop one absent country from withholding the JODI dataset (#6395) (#6400)
  • fix(ingestion): reject empty theater posture publishes (#6393)
  • fix(settings): apply source toggles to the live dashboard on close (#6380) (#6399)
  • fix(analytics): judge collector health against its own baseline instead of a fixed 0.5 (#6026) (#6041)
  • fix(railway): align deploy closures with build inputs (#6397)
  • fix(ingestion): tolerate bounded consumer-price retailer loss (#6394)
  • feat(company-monitoring): add durable scan orchestration (#6386)
  • fix(ci): paginate the deploy gate's check-runs read (root cause of #6389) (#6391)
  • fix(intel): stop feed newlines forging rows in the three sibling prompt blocks (#5881) (#5897)
  • test(e2e): wait for degraded digest retry (#5899)
  • fix(ci): keep the deploy gate posting a status when the required list is long (#6389) (#6390)
  • fix: silence floating promise in playback snapshot-exit path (#5968)
  • fix(correlation): harden seeder input reads (#6385)
  • ops(monitor): acknowledge the eight consumer-price coverage partials against owner issues (#6363)
  • fix(analytics): keep Umami storage warnings non-fatal (#6384)
  • fix(monitor): monitor the newest gated main revision instead of failing on an undecided head (#6374)
  • fix(dashboard): apply panel settings without a reload (#6379) (#6382)
  • feat(markets): authorize Finnhub+AV quote provider chain (#6304) (#6350)
  • fix(convex): stop a one-dot test helper from failing every convex deploy (#6232 follow-up) (#6373)
  • fix(railway): fence reconciliation cutover with leases (#6326) (#6326)
  • feat(company-monitoring): add bounded portfolio onboarding (#6232)
  • test(company-monitoring): add progressive blind evaluation scorer (#6219)
  • fix(rai...
Read more

World Monitor v2.5.23

Choose a tag to compare

@github-actions github-actions released this 01 Mar 23:34
e51058e

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 teleg...
Read more

World Monitor v2.5.21

Choose a tag to compare

@github-actions github-actions released this 01 Mar 00:57
0beaffb

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: v2.5.20...v2.5.21

World Monitor v2.5.20

Choose a tag to compare

@github-actions github-actions released this 27 Feb 20:49

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: v2.5.19...v2.5.20

World Monitor v2.5.19

Choose a tag to compare

@github-actions github-actions released this 26 Feb 20:28

What's Changed

  • fix(linux): detect NVIDIA GPU and work around EGL_BAD_ALLOC on Wayland (#446)

Full Changelog: v2.5.18...v2.5.19

World Monitor v2.5.18

Choose a tag to compare

@github-actions github-actions released this 26 Feb 20:07

What's Changed

  • chore: bump v2.5.18 (#445)
  • fix(linux): stop mixing host GStreamer plugins with bundled AppImage plugins (#444)

Full Changelog: v2.5.17...v2.5.18