Changelog
This is a public changelog focused on user-visible behavior (endpoints, tools, and workflows). It intentionally omits deployment/internal operational details.
0.5.3 (2026-03-01)
Section titled “0.5.3 (2026-03-01)”- Composite pair basis half-life:
basis_thetadefault changed from0.005to0.000035(≈2000s half-life). The prior 13.9s half-life caused near-instant mean reversion that produced an artificial ≥99% backtest win rate. The basis now stays dislocated for hours before reverting. - Composite pair basis reach:
basis_sigma_bpsdefault changed from0.15to0.5bps/tick, allowing the process to reach ±10 bps entry zones within the half-life window. - Funding regime persistence: Replaced the strict-alternating period template with a Markov-switching regime model (
p_stay_positive=0.85,p_stay_negative=0.75). Previously every period alternated sign; the model now generates realistic same-sign runs of 12+ periods during bull markets. - Dashboard usage table showing zeros: The usage rollup key used
#as a separator in the Azure Cosmos PartitionKey — a reserved character that caused all writes to fail silently. Separator changed to__; usage data now records and displays correctly.
- Burst coupling in composite basis: On burst/high-volatility events, the composite basis receives a ±[20, 80] bps jump matching liquidation-cascade dynamics, then slowly reverts over the 2000s+ half-life.
- Funding-aware perp spread: Perp spread now widens with
abs(funding_rate)— up to 2× spot spread at 10 bps funding — instead of a fixed 1.05× multiplier.
0.5.2 (2026-03-01)
Section titled “0.5.2 (2026-03-01)”- Composite pair stream (
mode=composite_pair):GET /stream/livenow accepts amodequery parameter. Settingmode=composite_pairemits interleaved{"type": "spot", "payload": {...}}and{"type": "perp", "payload": {...}}SSE events whose payloads conform to the TickSpotBook and TickPerpMark schemas. No client-side transformation is required — spot and perp instruments are fully separated and delivered in a flat payload format. src_latency_modequery parameter on/stream/live: Controls simulated network latency in thesrc_latency_msfield.zero= 0ms (default),colocated= 1–5ms uniform,retail= 50–200ms uniform.source_typefield on all stream events: Every event payload now includessource_type— either"trade"or"depth". In composite mode, spot events use a 70/30 trade/depth mix; perp events are always"trade".src_latency_msfield on all stream events: Float field indicating the simulated feed latency for that event. Value is controlled bysrc_latency_mode.- Funding schedule in
simulate_funding_regime:POST /mcp/simulate_funding_regimenow returns aperiodsarray alongside the existing scalar fields. Each element containsperiod_index,start_ts_ms,next_funding_time,funding_rate,funding_rate_bps, andpremium_bps. Response is fully backward compatible — existing clients that only read the scalar fields are unaffected. num_periodsparam onsimulate_funding_regime: Controls how many forward settlement periods to generate (default 1, max ~12 for a 4-day window on 8h venues). Each period has a distinct rate with alternating sign to exercise both long-perp and short-perp signal paths.seedparam onsimulate_funding_regime: Makes multi-period rate generation deterministic. Useful for reproducible backtests that loop over a funding schedule.- Timestamp jitter in composite mode: Composite stream events inherit the Gaussian jitter (default ±3ms std) from
MarketOrchestrationCorefor book events and sub-step uniform offsets for trade events. This prevents the artificial zero-variance timestamp patterns that confuse EWMA-based nowcasters. /v1/data/generateand/v1/stream/liveroutes: These paths are now available as aliases forPOST /data/generateandGET /stream/live, bringing the generation endpoints in line with the/v1/*naming used by all other REST endpoints. The unprefixed routes remain fully operational.
POST /data/generateintermittent timeouts: Four compounding causes resolved: (1) generation and artifact upload now run under explicit time limits — if either exceeds the ceiling a 504 is returned with a clear message to use the async jobs endpoint instead of a silent connection drop; (2) Cosmos DB throughput increased from 400 to 1000 RU/s per table, eliminating 429 throttle retries that silently added latency to auth and usage-tracking operations under burst load; (3) container CPU increased from 0.5 to 1.0 cores, reducing generation time under concurrency; (4) Uvicorn workers increased from 2 to 4, reducing request queue depth.- Composite stream backward timestamps: Within each clock tick, the book event was emitted first (before the trade) but carried Gaussian jitter (±3ms) that could push it ahead of the trade’s uniform sub-step offset. Combined with the 0–2ms per-instrument composite jitter, consecutive events within each instrument’s subsequence could appear out of order by up to ~11ms. Fixed with per-instrument monotonic timestamp guards in the composite generator — each instrument’s
tsis now clamped to be ≥ its last emitted value.
Changed
Section titled “Changed”/stream/livemodedefault remainssinglefor backward compatibility. Existing clients that omitmodecontinue to receive standard L2 book events unchanged.- Composite pair stream — natural cross-stream ordering: Spot and perp events at the same engine tick now carry independent timestamps (0–2ms apart) and are emitted in timestamp order. A perp event may arrive before its paired spot event when its timestamp is earlier, matching real asynchronous feed behavior.
- Composite pair stream — independent
src_latency_msper event: Source latency is now drawn independently for each instrument per tick. Previously both events in a pair shared the same latency value. - Composite pair stream — basis OU target: The perp mark basis mean-reverts to ±2 bps aligned with the funding rate sign, replacing a more complex formula. This ensures the basis spans both positive and negative regimes and reaches entry zones reliably.
0.5.1 (2026-02-28)
Section titled “0.5.1 (2026-02-28)”- Free and Institutional plans: Two new plan tiers are now available.
free(10k MCP pulls/month, no credit card required) andinstitutional(custom volume, dedicated infrastructure and SLA). Both route through Stripe Checkout to create a customer record. - Billing portal: Subscribers can manage their subscription, update payment methods, and view invoices at /dashboard. Free and institutional users will see billing information when applicable.
- Usage tracking: Authenticated API request counts are now recorded per user per day. Usage data powers overage billing and plan-level dashboards.
- Graceful Stripe fallback: If Stripe is temporarily unavailable during signup, the API key is returned immediately with a billing-pending notice rather than failing the registration.
Changed
Section titled “Changed”- Dashboard API keys list now scrolls at 240px when more than a few keys are present.
- API status indicator in the navigation bar replaced with a compact pulsing colored dot.
0.5.0 (2026-02-27)
Section titled “0.5.0 (2026-02-27)”- Timestamp realism: Book events now carry Gaussian jitter (±3ms default, configurable via
ts_jitter_ms) matching the variance observed on realdepth5@100msfeeds. Setts_jitter_ms=0for a perfect deterministic grid. - Sub-step trade timestamps: Trade events receive a random offset within each 100ms clock step — trades no longer share the same timestamp as the book snapshot in that step.
next_funding_time_mson every event: All streamed events now include the next settlement timestamp (milliseconds, UTC), computed continuously via ceiling arithmetic on the current sim time. Matches themarkPricestream convention. Returns0for CME (fixed-expiry, no perpetual funding).- Hawkes-driven book refreshes: After high-intensity trade bursts, an extra depth snapshot is emitted +10ms after the trade (configurable via
hawkes_book_refresh_threshold). Simulates the rapid book refreshes venues push during active periods.
Changed
Section titled “Changed”stream()event shape now always includesnext_funding_time_ms— clients should expect this field on bothbookandtradeevents.
0.4.9 (2026-02-27)
Section titled “0.4.9 (2026-02-27)”- Causal arb pressure model: Funding rate now feeds back into spot drift — positive funding creates mild upward spot pressure, negative funding creates downward pressure. Configurable via
arb_pressure_coeff(default0.001). Set to0.0to disable. - 480-sample TWAP funding settlement (Binance): The Binance funding model now uses a recency-weighted 480-sample TWAP with the exchange-standard clamp (
±0.05%band around the interest rate). Activates automatically forexchange="binance". - Regime-switching funding OU: Funding dynamics now switch between bull and bear regimes based on spot drift direction, with calibrated per-regime mean-reversion and drift parameters sourced from empirical BTC/USDT-PERP data.
- Funding jump component: Jump-diffusion term added to the funding path, producing realistic spike-and-revert behavior matching observed extreme funding events (~0.1 jumps per 8h window).
- Replay semantic fields: All events from
generate_datasetnow includemark(FDR clean perp price),index(FDR clean spot price),funding_rate_bps(per-tick, not static 8h), andsource_type("depth"or"trade").
Changed
Section titled “Changed”basis_betadefault changed from4.0to1.5(cross-venue calibrated). Explicit configs are unaffected.generate_datasetdefaultduration_secondschanged from60to3600. The previous 60s produced only 600 steps — backtests looping the path would see ~20s cyclic repetition.
0.4.8 (2026-02-26)
Section titled “0.4.8 (2026-02-26)”- MCP tool parity:
get_cache_manifest,delete_cache,stream_cache, andexport_cachewere declared in the MCP manifest and accessible via REST, but the JSON-RPCtools/calldispatcher returned “Unknown tool” for all four. All are now correctly wired. - Funding rate calibration: The default Ornstein-Uhlenbeck parameters were mis-scaled, producing near-random-walk funding paths. Recalibrated to empirical BTC/USDT-PERP data: 6-hour mean-reversion halflife, +1 bps structural long bias.
- MCP manifest version:
mcpVersionwas set to"1.0.0"(non-existent). Corrected to"2024-11-05".
Changed
Section titled “Changed”- MCP tool count: 13 tools total, all accessible via both REST and JSON-RPC
tools/callwith zero gaps.
0.4.7 (2026-01-15)
Section titled “0.4.7 (2026-01-15)”- MCP JSON-RPC 2.0 at
POST /mcp(initialize,tools/list,tools/call,ping). - Tool discovery:
GET /mcp/tools/list. - MCP tools: health, presets, schema, validation/hash, batch generation, normalization, funding simulation, venue details, cache stats.
Changed
Section titled “Changed”- MCP tool responses align with the standard MCP content format.
- Tool schemas include explicit JSON Schema
inputSchemafor clients.
0.4.6 (2026-01-14)
Section titled “0.4.6 (2026-01-14)”- Batch generation via MCP:
generate_dataset. - Async job processing for long-running batch workloads.
Changed
Section titled “Changed”- Documentation updated to match the batch generation workflow.
- Reduced timeout incidence for longer batch jobs through async processing improvements.
0.4.5 (2026-01-13)
Section titled “0.4.5 (2026-01-13)”- Authentication improvements (machine-to-machine support).
- Improved health checks:
GET /mcp/health. - Data validation: Additional validation capabilities for output quality checks.
Changed
Section titled “Changed”- Health check behavior tuned for monitoring use cases.
- Stability and correctness fixes.
0.4.1 (2025-12-22)
Section titled “0.4.1 (2025-12-22)”- Additional venue models (including CME and SGX).
- MCP Normalization Endpoint:
POST /mcp/normalizefor normalizing events from synthetic, HyperLiquid, Binance, CME, and SGX sources. - MCP Funding Simulation:
POST /mcp/simulate_funding_regimefor simulating funding rates across all 6 exchanges. - MCP Venue Discovery:
GET /mcp/venues/{exchange}for venue details and supported features. - MCP Config Schema:
GET /mcp/config/schemafor JSON Schema export of SimulationManifest. - MCP Config Validation:
POST /mcp/config/validatefor validating configs and computing hashes. - MCP Presets Endpoint:
GET /mcp/presetsfor listing available preset configurations. - MCP Health Endpoint:
GET /mcp/healthfor MCP-specific health checks.
Changed
Section titled “Changed”- Updated API documentation to reflect actual endpoint signatures and response schemas.
- Fixed batch generation response schema (
status: "completed",download_url,row_count). - Fixed live stream parameters (removed non-existent
presetandrate_multiplier, addedseed). - Updated funding model documentation with correct file structure, CME/SGX support.
- Fixed HyperLiquid documentation (8h default interval, ±4% hard cap, velocity range 0.3-2.5x).
- Documentation now accurately reflects implemented code for all MCP endpoints.
- Documentation fixes and corrections.
0.4.0 (2025-11-29)
Section titled “0.4.0 (2025-11-29)”- Batch generation, streaming, caching/export, and MCP tooling as first-class workflows.
0.3.0 (2025-11-28)
Section titled “0.3.0 (2025-11-28)”- Dual-driver architecture for batch + streaming.
- Live streaming (SSE):
GET /stream/live. - Batch Endpoint:
POST /data/generatefor triggering dataset creation. - Schemas for type-safe API interactions.
Changed
Section titled “Changed”- Architecture documentation updated.
0.2.0 (2025-11-28)
Section titled “0.2.0 (2025-11-28)”- Venue-specific funding models.
- Microstructure features including burst behavior and network staleness simulation.
0.1.0 (2025-11-27)
Section titled “0.1.0 (2025-11-27)”- Core
HyperSynthReactorgenerator. - Basic Normalization and Caching layers.
- Initial project structure.