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