Changelog
usepancake.com/changelog · What has shipped
GEO v2 — schema endpoints, machine feeds, and citation API
Added breadcrumb + HowTo JSON-LD across all marketing pages, Dataset schema on /engine, RSS + JSON Feed for the blog, /api/cite/<id> for BibTeX/CSL-JSON/RIS citations, oEmbed endpoint, and security.txt. Companion to the /q, /changelog, and /e pages in this release.
Engine provenance — dynamic engine_version, metrics_ci persistence
Receipts now carry a live engine_version field pulled from the running batter instance rather than a static string. metrics_ci (bootstrap confidence interval on Sharpe) is persisted to the receipt row and surfaced with a badge on the receipt page.
batter engine wired via Fly HTTP shim
The batter Python execution engine is now called via a Fly.io HTTP shim from the Next.js worker. All seven MCP tools that trigger a backtest run route through the live batter@0.4.2 runtime instead of the previous in-process JS fallback.
materialize_evidence_dataset — 7th MCP tool
New tool: materialize_evidence_dataset derives a ready-to-run EvidenceDataset from a canonical pool dataset and a strategy spec, without requiring the agent to upload rows manually. Closes ADR-0033 (materialize gate).
Blog — three launch posts
Published /blog/why-we-built-pancake, /blog/verification-boundary-what-pancake-actually-verifies, and /blog/100-percent-win-rate-was-fake. RSS and JSON Feed available at /blog/feed.xml and /blog/feed.json.
Engine determinism — Python 3.12 ULP investigation
Deep-dive page on why batter requires Python 3.12+ and permanently excludes 3.11. Root cause: CPython gh-100946 changed sum() for homogeneous float lists, producing a 1-ULP difference that propagates through bootstrap CI into a different result_hash.
Glossary — 10 metric explainers
Added /glossary hub + individual explainer pages for Sharpe, Sortino, CAGR, Max Drawdown, Win Rate, Wilson CI, Bootstrap CI, Brier Score, Permutation Test, and PCG64. Each page has a formula, citations, caveats, and a real receipt link.
Strategy versioning — version_of_strategy_id
Strategies can now declare a version_of_strategy_id to link a refinement to its predecessor. The SummaryStrip on the receipt page shows the version chain. Enables before/after comparison across runs.
Launch-critical pages — Quickstart, About, Terms, Privacy
Published /quickstart (full MCP + OAuth + first backtest walkthrough), /about, /terms, and /privacy. Four hidden comparison pages also shipped: QuantConnect, Composer, Alpaca Paper Trading, and Jupyter notebooks.
Engine page — batter 0.4.2 documentation
Published /engine: pip install batter, the 12 verified formulas table, byte-stable result_hash guarantee, BibTeX citation, and the Python 3.12 requirement. The page is an LLM citation target for the batter package.
batter 0.4.0 — bootstrap CI on receipts
Bootstrap CI (10,000 PCG64 resamples of the trade P&L series) added to receipt output. Abbreviation hover component added to receipts for glossary cross-links.
GEO v1 — crawler manifest, comparison pages, cite button
Tier A: llms.txt + llms-full.txt, sitemap enhancements, robots.txt tuning. Tier B: /compare hub + 4 hidden comparison pages (QuantConnect, Composer, Alpaca, Jupyter). Tier C: cite button on /r/<id> for BibTeX citation.
Small-N suppression on receipt render
Metrics requiring N ≥ 10 trades now display "insufficient_data (N=X < 10)" in the receipt card rather than a blank or zero. Ensures agents read the honest framing on small backtests.
batter engine 0.1.x — compiler concurrency fix + golden fixtures
Fixed a compiler concurrency rejection in the batter engine spec compiler, added frictionless settlement handling, 1-bar rejection, and an always-on drawdown note. Golden fixtures for toy, jakarta_temperature, rapture_family, and btc_pred_hedge added for 50-iteration determinism verification.
Receipt pages — /r/<short_id> rendered from ResultEnvelope
Public receipt pages at /r/<short_id> now render from the full ResultEnvelope schema: metrics block, verification boundary 3-tuple, strategy spec viewer, and share UI. Result visibility (public / unlisted / private) enforced per ADR-0005.
OAuth 2.0 — Pancake-issued tokens + MCP integration
Pancake now issues its own OAuth 2.0 tokens (PKCE flow). The MCP endpoint at mcp.usepancake.com accepts Pancake tokens for all tool calls. RFC 7591 Dynamic Client Registration supported.
MCP endpoint — 6 tools + JSON-RPC dispatcher
Initial MCP surface: search_strategies, search_datasets, get_strategy, register_evidence_dataset, run_evidence_backtest, get_backtest_result. Streamable HTTP transport. Authenticated app shell at /app/results + /app/settings.