Skip to content

feat(seo): add crawlable live intelligence tools#5546

Merged
koala73 merged 4 commits into
mainfrom
feat/crawlable-live-country-risk
Jul 24, 2026
Merged

feat(seo): add crawlable live intelligence tools#5546
koala73 merged 4 commits into
mainfrom
feat/crawlable-live-country-risk

Conversation

@koala73

@koala73 koala73 commented Jul 24, 2026

Copy link
Copy Markdown
Owner

Summary

Search visitors can now land on focused World Monitor intelligence pages that remain useful as crawlable, source-labelled references before JavaScript runs, then upgrade with current API signals when coverage is available.

This adds live context to all 196 country pages and 13 chokepoint pages, plus four deliberately bounded crisis trackers, a natural-hazard pulse, and an airspace-disruption checker. Each surface leads into the matching dashboard state instead of competing with the main product as a disconnected SEO experience.

Product and safety decisions

Concern Contract
Static value Dated methodology, scope, sources, and limitations remain visible without live data
Freshness Stale, future, malformed, or unavailable observations fail closed instead of becoming zero or “normal”
Geographic scope Hazard and airspace selectors omit oversized or discontinuous envelopes; military results are bounded and capped
Mixed evidence Commercial disruption, military observations, structural resilience, and current instability remain separately labelled
Browser auth Session-gated calls reuse the anonymous wm-session flow; generated pages contain no API keys
Async updates Only the latest selection may update metrics, URL state, or the dashboard handoff

The new /crises/ and /tools/ families participate in the generated corpus, sitemap, canonical routing, and public revalidation policy rather than falling through to the SPA shell.

Validation

  • The complete pre-push guard passed: source/API typechecks, architecture and safe-HTML checks, edge bundling, policy parity, markdown lint, version sync, and the changed-test suite.
  • Changed-test suite: 181 tests passed with zero failures.
  • Focused live-tool and edge/mirror regression run: 247 tests passed with zero failures.
  • Rendered static preview verified the Norway country page, natural-hazard selector, and Japan airspace flow. Live calls failed closed on the static preview’s expected API 404s, URL/dashboard links followed the latest selection, oversized country options were absent, and the browser console stayed clean.

New concepts

Bounded live aggregation

A bounded tracker declares its geographic membership before requesting current data. Missing countries remain unavailable, and totals are emitted only when the returned records share a compatible reference period.

That constraint is preferable here to a generic “current crisis” query: it makes each page’s claim reviewable, keeps unrelated spillover out of totals, and prevents partial coverage from masquerading as a complete zero.

flowchart TB
  A[Static reviewed scope] --> B[Fetch each allowed country]
  B --> C{Records share a period?}
  C -->|Yes| D[Render aggregate plus country rows]
  C -->|No| E[Render country rows and withhold aggregate]
  B --> F[Keep missing inputs unavailable]
Loading

The Red Sea tracker, for example, always requests its maintained four-country boundary and never silently expands with whatever events happen to be nearby. This pattern is a poor fit when the product promise is open-ended discovery; use it when the scope itself is part of the trust contract.


Compound Engineering
GPT-5

@vercel

vercel Bot commented Jul 24, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
worldmonitor Ready Ready Preview, Comment Jul 24, 2026 3:45pm

Request Review

@mintlify

mintlify Bot commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
WorldMonitor 🟢 Ready View Preview Jul 24, 2026, 12:22 PM

💡 Tip: Enable Workflows to automatically generate PRs for you.

koala73 added 2 commits July 24, 2026 15:17
The /api/military/v1/list-military-flights endpoint accepted page_size but
never applied it — it used the value only in the cache key and returned the
full bounds-filtered set, so a broad viewport transferred an unbounded
response. Bound every request:

- Server pages the exact-bbox-filtered snapshot after retrieval (page_size
  0/omitted/malformed -> default 100, >100 capped) and returns an opaque
  decimal-offset cursor; empty/error paths return consistent {nextCursor:'',
  totalCount:0}. The cache key drops page_size/cursor so all pages share one
  snapshot and one upstream fetch.
- The full-dataset internal caller follows next_cursor, deduping across
  regions. It fails closed on integrity failures (mid-chain error, empty
  continuation page, non-terminating or repeated cursor, page ceiling) so the
  circuit breaker keeps its last complete snapshot instead of caching a
  truncated region; a region merely unavailable on its first call still
  degrades to empty.
- Proto documents the cursor as opaque/echo-only and drops the no-op
  annotation; OpenAPI regenerated.

Adds handler pagination tests (filter-before-page, cache reuse, stale
fallback, strict page-size/cursor, empty/error) and service tests
(multi-page, dedup, old-server, mid-chain failure, empty continuation,
first-page tolerance, cursor bound).
@koala73
koala73 merged commit f884752 into main Jul 24, 2026
28 checks passed
@koala73
koala73 deleted the feat/crawlable-live-country-risk branch July 24, 2026 15:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant