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.
- 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.
- 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.
- 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.
- 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+.
- 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).
- 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.
- 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.
- 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.