mirror of
https://github.com/koala73/worldmonitor.git
synced 2026-04-25 17:14:57 +02:00
docs: update Mintlify docs for recent features (#1693)
- finance-data.mdx: Add US Treasury customs revenue to Trade Policy section (Revenue tab, free API, FYTD comparison, desktop support) - features.mdx: Expand CMD+K section from 5 categories to full 55 panel coverage with organized subcategories - data-sources.mdx: Update advisory section for gold standard migration (Railway seed, 265-entry country map, relay proxy) - architecture.mdx: Add 12 missing seed scripts to Railway pipeline table (forecasts, conflict-intel, economy, supply-chain-trade, security-advisories, usni-fleet, gdelt-intel, research, etc.) - changelog.mdx + CHANGELOG.md: Add unreleased entries for customs revenue, advisory migration, CMD+K coverage, R2 traces, and 6 fixes
This commit is contained in:
10
CHANGELOG.md
10
CHANGELOG.md
@@ -6,14 +6,24 @@ All notable changes to World Monitor are documented here.
|
||||
|
||||
### Added
|
||||
|
||||
- US Treasury customs revenue in Trade Policy panel with monthly data, FYTD year-over-year comparison, and revenue spike highlighting (#1663)
|
||||
- Security advisories gold standard migration: Railway cron seed fetches 24 government RSS feeds hourly, Vercel reads Redis only (#1637)
|
||||
- CMD+K full panel coverage: all 55 panels now searchable (was 31), including AI forecasts, correlation panels, webcams, displacement, security advisories (#1656)
|
||||
- Chokepoint transit intelligence with 3 free data sources: IMF PortWatch (vessel transit counts), CorridorRisk (risk intelligence), AISStream (24h crossing counter) (#1560)
|
||||
- 13 monitored chokepoints (was 6): added Cape of Good Hope, Gibraltar, Bosporus Strait (absorbs Dardanelles), Korea, Dover, Kerch, Lombok (#1560, #1572)
|
||||
- Expandable chokepoint cards with TradingView lightweight-charts 180-day time-series (tanker vs cargo) (#1560)
|
||||
- Real-time transit counting with enter+dwell+exit crossing detection, 30min cooldown (#1560)
|
||||
- PortWatch, CorridorRisk, and transit seed loops on Railway relay (#1560)
|
||||
- R2 trace storage for forecast debugging with Cloudflare API upload (#1655)
|
||||
|
||||
### Fixed
|
||||
|
||||
- Trade Policy panel WTO gate changed from panel-wide to per-tab, so Revenue tab works on desktop without WTO API key (#1663)
|
||||
- Conflict-intel seed succeeds without ACLED credentials by accepting empty events when humanitarian/PizzINT data is available (#1651)
|
||||
- Seed-forecasts crash from top-level @aws-sdk/client-s3 import resolved with lazy dynamic import (#1654)
|
||||
- Bootstrap desktop timeouts restored (5s/8s) while keeping aggressive web timeouts (1.2s/1.8s) (#1653)
|
||||
- Service worker navigation reverted to NetworkOnly to prevent stale HTML caching on deploy (#1653)
|
||||
- Railway seed watch paths fixed for 5 services (seed-insights, seed-unrest-events, seed-prediction-markets, seed-infra, seed-gpsjam)
|
||||
- PortWatch ArcGIS URL, field names, and chokepoint name mappings (#1572)
|
||||
|
||||
## [2.6.1] - 2026-03-11
|
||||
|
||||
@@ -239,6 +239,17 @@ The `SmartPollLoop` is the core refresh orchestration primitive used by all data
|
||||
| `seed-displacement-summary` | UNHCR / IOM | 30 min | N/A |
|
||||
| `seed-military-bases` | Curated 210+ base database | Daily | N/A |
|
||||
| `seed-wb-indicators` | World Bank tech readiness | Daily | `economic:worldbank-techreadiness:v1` |
|
||||
| `seed-forecasts` | Groq LLM + multi-domain signals | 15 min | `forecast:predictions:v2` |
|
||||
| `seed-conflict-intel` | ACLED + HAPI + PizzINT + GDELT | 15 min | `conflict:acled:v1:all:0:0` |
|
||||
| `seed-economy` | EIA energy + FRED macro + spending | 15 min | N/A (extra keys) |
|
||||
| `seed-supply-chain-trade` | FRED shipping + WTO + US Treasury | 6 hours | `supply_chain:shipping:v2` |
|
||||
| `seed-security-advisories` | 24 gov RSS feeds via relay proxy | 1 hour | `intelligence:advisories-bootstrap:v1` |
|
||||
| `seed-usni-fleet` | USNI News WP-JSON (curl for JA3 bypass) | 6 hours | `usni-fleet:sebuf:v1` |
|
||||
| `seed-gdelt-intel` | GDELT 2.0 Doc API (8 topics) | 1 hour | `intelligence:gdelt-intel:v1` |
|
||||
| `seed-research` | arXiv + HN + tech events + GitHub | 6 hours | N/A (extra keys) |
|
||||
| `seed-correlation` | Cross-domain correlation engine | 5 min | `correlation:cards-bootstrap:v1` |
|
||||
| `seed-gpsjam` | GPSJam.org H3 interference hexes | 6 hours | N/A |
|
||||
| `seed-aviation` | Airport ops summaries + aviation news | 15 min | N/A (warm-ping) |
|
||||
|
||||
Seeds use `cachedFetchJson` with in-flight promise coalescing — if a seed run overlaps with a previous run still writing, the concurrent write is deduplicated. Each seed script is self-contained (single `.mjs` file, no build step), runs on Node.js 20+, and connects to Upstash Redis via REST API. Failed seed runs log errors but never corrupt existing cached data — the previous cache entry persists until a successful run replaces it.
|
||||
|
||||
|
||||
@@ -6,17 +6,28 @@ rss: true
|
||||
|
||||
All notable changes to World Monitor are documented here. Subscribe via [RSS](/changelog/rss.xml) to stay updated.
|
||||
|
||||
<Update label="Unreleased" description="Unreleased" tags={["Supply Chain", "Maritime", "Charts"]}>
|
||||
<Update label="Unreleased" description="Unreleased" tags={["Trade", "Intelligence", "Search", "Supply Chain", "Maritime"]}>
|
||||
|
||||
### Added
|
||||
|
||||
- **US Treasury customs revenue** in Trade Policy panel with monthly data, FYTD year-over-year comparison, and revenue spike highlighting (#1663)
|
||||
- **Security advisories gold standard migration**: Railway cron seed fetches 24 government RSS feeds hourly, Vercel reads Redis only (#1637)
|
||||
- **CMD+K full panel coverage**: all 55 panels now searchable (was 31), including AI forecasts, correlation panels, webcams, displacement, security advisories (#1656)
|
||||
- Chokepoint transit intelligence with 3 free data sources: IMF PortWatch, CorridorRisk, AISStream (#1560)
|
||||
- 13 monitored chokepoints (was 6): added Cape of Good Hope, Gibraltar, Bosporus Strait (absorbs Dardanelles), Korea, Dover, Kerch, Lombok (#1560, #1572)
|
||||
- Expandable chokepoint cards with TradingView lightweight-charts 180-day time-series (#1560)
|
||||
- Real-time transit counting with crossing detection on Railway relay (#1560)
|
||||
- R2 trace storage for forecast debugging with Cloudflare API upload (#1655)
|
||||
- `@ts-nocheck` injection in Makefile generate target for CI proto-freshness parity (#1637)
|
||||
|
||||
### Fixed
|
||||
|
||||
- Trade Policy panel WTO gate changed from panel-wide to per-tab, so Revenue tab works on desktop without WTO API key (#1663)
|
||||
- Conflict-intel seed succeeds without ACLED credentials by accepting empty events when humanitarian/PizzINT data is available (#1651)
|
||||
- Seed-forecasts crash from top-level `@aws-sdk/client-s3` import resolved with lazy dynamic import (#1654)
|
||||
- Bootstrap desktop timeouts restored (5s/8s) while keeping aggressive web timeouts (1.2s/1.8s) (#1653)
|
||||
- Service worker navigation reverted to NetworkOnly to prevent stale HTML caching on deploy (#1653)
|
||||
- Railway seed watch paths fixed for 5 services (seed-insights, seed-unrest-events, seed-prediction-markets, seed-infra, seed-gpsjam)
|
||||
- PortWatch ArcGIS URL, field names, and chokepoint name mappings (#1572)
|
||||
|
||||
</Update>
|
||||
|
||||
@@ -143,7 +143,9 @@ Government travel advisories serve as expert risk assessments from national inte
|
||||
|
||||
**Sources**: 4 government advisory feeds (US State Dept, Australia DFAT Smartraveller, UK FCDO, New Zealand MFAT), 13 US Embassy country-specific alert feeds (Thailand, UAE, Germany, Ukraine, Mexico, India, Pakistan, Colombia, Poland, Bangladesh, Italy, Dominican Republic, Myanmar), and health agency feeds (CDC Travel Notices, ECDC epidemiological updates, WHO News, WHO Africa Emergencies).
|
||||
|
||||
**Advisory levels** (ranked): Do-Not-Travel (4) → Reconsider Travel (3) → Exercise Caution (2) → Normal (1) → Info (0). Both RSS (item) and Atom (entry) formats are parsed. Country extraction uses regex parsing of advisory titles with `nameToCountryCode()` lookup.
|
||||
**Advisory levels** (ranked): Do-Not-Travel (4) → Reconsider Travel (3) → Exercise Caution (2) → Normal (1) → Info (0). Both RSS (item) and Atom (entry) formats are parsed. Country extraction uses a 265-entry country name map (generated from GeoJSON + aliases) for accurate matching of compound names and alternative spellings.
|
||||
|
||||
**Architecture**: Advisories follow the gold standard pattern. A Railway cron seed (`seed-security-advisories.mjs`) fetches all 24 feeds hourly via the relay RSS proxy, deduplicates by title, builds a `byCountry` risk-level map, and writes to Redis. The Vercel `ListSecurityAdvisories` RPC reads Redis only (no external calls). Bootstrap hydration provides instant advisory data on page load.
|
||||
|
||||
**CII integration** — advisories feed into instability scores through two mechanisms:
|
||||
|
||||
|
||||
@@ -236,13 +236,22 @@ This prevents background tabs from consuming bandwidth while preserving user pre
|
||||
|
||||
## Search (Cmd+K)
|
||||
|
||||
Universal search across all data sources:
|
||||
Universal command palette for navigating the entire application. All 55 panels, map views, layer toggles, and country briefs are searchable:
|
||||
|
||||
- News articles
|
||||
- Geographic hotspots and conflicts
|
||||
- Infrastructure (pipelines, cables, datacenters)
|
||||
- Nuclear facilities and irradiators
|
||||
- Markets and predictions
|
||||
- **Map navigation**: Jump to any region (Global, MENA, Europe, Asia-Pacific, Americas, Africa, Oceania)
|
||||
- **Layer presets**: Military, Finance, Infrastructure, Intel, All, None, Minimal
|
||||
- **Individual layers**: 30+ toggleable layers (AIS, flights, conflicts, cables, fires, GPS jamming, satellites, etc.)
|
||||
- **All panels**: Every panel is searchable by name and keywords, including:
|
||||
- Intelligence: AI Insights, AI Forecasts, Strategic Posture, Live Intelligence, Intel Feed, Deduction
|
||||
- Correlation: Force Posture, Escalation Monitor, Economic Warfare, Disaster Cascade
|
||||
- News: Live News, World News, regional feeds (US, Europe, Middle East, Africa, Latin America, Asia-Pacific)
|
||||
- Markets: Markets, Commodities, Crypto, Sector Heatmap, BTC ETF Tracker, Stablecoins, Market Radar, Gulf Economies
|
||||
- Analysis: Country Instability, Strategic Risk, Infrastructure Cascade, Trade Policy, Supply Chain, Economic Indicators
|
||||
- Tracking: Fires, UCDP Events, Displacement, Climate Anomalies, Security Advisories, Population Exposure
|
||||
- Other: Webcams, World Clock, Tech Readiness, Airline Intel, Telegram Intel, Israel Sirens, Layoffs, My Monitors
|
||||
- **Country briefs**: Search any country name to open its intelligence brief or navigate the map
|
||||
- **Time range**: Filter events by 1h, 6h, 24h, 48h, or 7 days
|
||||
- **View controls**: Dark/light mode, fullscreen, settings, refresh all data
|
||||
|
||||
## Data Export
|
||||
|
||||
|
||||
@@ -138,8 +138,11 @@ The Trade Policy panel provides real-time visibility into global trade restricti
|
||||
| **Tariffs** | WTO tariff database | Tariff rate trends between country pairs (e.g., US↔China) with historical datapoints |
|
||||
| **Flows** | WTO trade statistics | Bilateral trade flow volumes with year-over-year change indicators |
|
||||
| **Barriers** | WTO SPS/TBT notifications | Sanitary, phytosanitary, and technical barriers to trade with status tracking |
|
||||
| **Revenue** | US Treasury Monthly Treasury Statement | Monthly US customs duties revenue with fiscal-year-to-date totals and year-over-year comparison |
|
||||
|
||||
The `trade/v1` proto service defines four RPCs, each with its own circuit breaker (30-minute cache TTL) and `upstreamUnavailable` signaling for graceful degradation when WTO endpoints are temporarily unreachable. The panel is available on FULL and FINANCE variants. Trade policy data feeds into the data freshness tracker as `wto_trade`, with intelligence gap warnings when the WTO feed goes stale.
|
||||
The `trade/v1` proto service defines five RPCs. The four WTO RPCs each have their own circuit breaker (30-minute cache TTL) and `upstreamUnavailable` signaling for graceful degradation when WTO endpoints are temporarily unreachable. The fifth RPC (`GetCustomsRevenue`) serves US Treasury customs duties data from a Railway seed (free API, no key required). The panel is available on FULL and FINANCE variants. WTO data feeds into the data freshness tracker as `wto_trade`, and Treasury revenue as `treasury_revenue`, with intelligence gap warnings when either feed goes stale.
|
||||
|
||||
The Revenue tab is particularly relevant during periods of active trade policy changes. US customs duties revenue spiked from approximately $7B/month (pre-2025) to $27-31B/month following the 2025-2026 tariff escalation. WTO annual tariff data lags by approximately one year, so the monthly Treasury revenue data provides near-real-time visibility into the actual fiscal impact of tariff policy. The Revenue tab shows a fiscal-year-to-date summary with a year-over-year comparison using matched fiscal month counts (e.g., FY2026 Oct-Feb vs FY2025 Oct-Feb), along with a monthly table highlighting months where revenue exceeds twice the prior-year monthly average. On desktop without a WTO API key, the Revenue tab is still accessible since Treasury data requires no authentication.
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user