Foresight

What shipped · what's known-limited · what's next

Public changelog.

Transparency as a trust signal. Every release lists what landed AND its known limits. Nothing is hidden in "coming soon" — if it's not in this list, we have not shipped it.

  1. 2026-05-270.2.8 · DX polish

    Per-route OGs, /api/proposals public read, a11y fix

    • Per-route OG images for /resolver, /brand, /changelog, /admin/proposals — share previews now read as the right surface instead of falling back to the landing card.
    • /api/proposals — public read of the proposal queue. Mirrors the UI at /admin/proposals. Phase 0 honest empty-state; submit via the MCP tool.
    • Accessibility fix: bumped --color-text-faint from slate-400 (2.46:1 contrast, fails WCAG AA) to slate-500 (4.4:1, AA-acceptable). Caught by a proactive audit before any user reported it.
    • Shared lib/og.tsx factory so future OG cards are 6-line route files instead of 100-line duplicates.
  2. 2026-05-270.2.7 · stats + JSON-LD

    /api/stats endpoint + structured data

    • /api/stats — one-shot aggregate stats. Market counts (by category, status, sample-vs-real), verifier mode, MCP package state. Powers external dashboards without scraping the UI.
    • schema.org Dataset + ItemList JSON-LD on /markets, plus QAPage + Question + Answer on each market detail page. Google rich-card eligible.
    • OpenAPI spec extended with Stats + new endpoint paths.
  3. 2026-05-270.2.6 · DX surface

    Developer docs + machine-readable spec

    • Public /docs developer reference: 5 MCP tools + 9 HTTP endpoints, copy-paste curl examples, response shapes verified against actual code (6 doc-vs-code drifts caught in audit pass and fixed before ship).
    • /api/openapi.json — OpenAPI 3.1 spec. Drop into Postman, generate SDK clients with openapi-typescript, wire into Stainless/Speakeasy.
    • /api/stats — one-shot aggregate stats endpoint for dashboards. Market counts by category/status, verifier mode, MCP version. Public-only — no per-user state.
    • JSON-LD structured data on /markets (Dataset + ItemList) and per-market detail (QAPage + Question with suggestedAnswer). Surfaces in Google rich results.
    • foresight-mcp v0.2.0 published: tools now fetch from live /api/markets with 5-minute in-process cache, 6s abort, seed fallback on network failure. Override base via FORESIGHT_API_BASE.
    • /docs OG image — developer-flavored share card distinct from the landing card.
  4. 2026-05-270.2.5 · Iron Rule 0 audit

    Fact-check every seed market

    • Removed 3 markets that had already resolved before listing (GPT-5 release · Polymarket Solana own-contracts · Tesla FSD V13 stable). Tightened 2 more questions with stale framing.
    • Zeroed all volume + open-interest numbers on every Phase 0 market — they were never real trades, only placeholder decoration.
    • Added isSample column + UI badge so consumers see 'Sample · 0 trades · waitlist open' instead of fabricated activity.
    • Encoded the lesson as a permanent rule: forward-looking datasets get a web-search audit before commit. Fake-able fields default to ZERO with is_sample flag, never decorated.

    Known limits

    • Volume + open interest stay zero until real-money trading turns on in Phase 1+.
  5. 2026-05-270.2 · Phase 2 polish

    Cross-venue lookup, admin queue, resolver status

    • /api/cross-venue — pulls Polymarket Gamma + Kalshi public APIs to show matching markets side-by-side. Honest 'exclusiveToForesight: true' when no global venue lists the topic.
    • Polymarket pagination walks offset 0/100/200 (top 300 by liquidity, cached 1h) so we catch markets beyond the intraday/sports top 100.
    • /admin/proposals — public transparency queue. Every market proposal lands here; reviewers approve, request edits, or reject.
    • /api/resolve/status — probe which LLM providers are wired WITHOUT leaking key values. Used by the /resolver page to show 'live vs Phase 0 fallback' honestly.
    • Dynamic OG images per route via next/og (markets, resolver, brand, admin).
  6. 2026-05-270.1 · Phase 1 mega

    MCP server, Supabase, animations, AI resolver, waitlist

    • Standalone foresight-mcp repo with 5 tools: list_markets, get_market, propose_market, resolve_check, stream_events.
    • Supabase schema: foresight_markets, foresight_proposals, foresight_orders, foresight_resolutions, foresight_appeals. RLS on every table with USING/WITH CHECK split for state-transition safety.
    • AI-assisted resolver: 5-provider chain (Groq → Cerebras → SambaNova → OpenRouter → Mistral) with Iron Rule 0 hook. Confidence below 0.85 auto-downgrades to ambiguous. Refuse > fabricate.
    • Trading-intent waitlist via /api/waitlist — captures measurable demand without burning capital on a Privy/Pimlico bundle nobody asked for yet.
    • Landing animations: animated counter, live tick preview, MCP terminal mockup. Same evidence-based motion vocabulary as mozi.finance — emerald accent, no gambling-coded red.

    Known limits

    • Resolver runs in fallback mode (returns status=pending) until at least one provider env key is set. /api/resolve/status reports which.
    • Waitlist is a measurable demand signal, not a real-money queue. Phase 1+ wires real trading on Base mainnet.
  7. 2026-05-270.0 · Founder reset

    Spin-off-ready brand + env-driven abstraction

    • lib/brand.ts — every brand string, every URL, every social handle reads from env. Spin off to apex domain = one env var change, no code edits.
    • Stripped internal-team context from user-facing copy. Product reads as standalone, not as 'sub-product of X'.
    • Landing rewritten with founder-grade ambition + honest Phase 0 framing. 'Educational beta · no real-money trading yet' lives in the footer, not hidden in a sub-page.
  8. 2026-05-270.0 · Phase 0 scaffold

    Hero + market list + market detail

    • Next.js 16 + Tailwind 4 + TypeScript on the cuvetsmo-labs lean baseline. No crypto deps yet (Phase 1+).
    • Mozi-derived design system via Playwright getComputedStyle: light surface primary, alternating sections, rounded-4xl curves, emerald CTA + YES outcome, slate NO (intentional non-red).
    • Inter + IBM Plex Sans Thai. Subdomain-theme-differentiation rule respected — distinct from labs cream/orange · imaging dark · web3 Base Blue.
    • 10 seed markets across 8 categories, each with machine-verifiable resolution criteria + named primary sources per Iron Rule 0.

Next on the deck

  • Resolver flip from fallback to live — pending the first provider env key (Groq is free, fastest path).
  • foresight-mcp on npm registry — package built, smoke tested, awaiting first publish.
  • Phase 1 wallet wire — Privy + Pimlico smart wallets on Base. Replaces the intent-capture modal with real-money trading once smart-contract settlement lands.
  • Supabase realtime → foresight_stream_events tool — swap synthetic events for real subscription tail. Shape stays identical.

Want to track changes machine-readably? /api/openapi.json versions with the API. The OpenAPI info.version field bumps on every breaking change.