Skip to content

v1.3.0 — Platform Hardening, Docs Rewrite, Paper Trading Fixes

Choose a tag to compare

@sohan-shingade sohan-shingade released this 17 Apr 00:41
· 124 commits to main since this release

What's New

Platform Hardening (Phases 1-3)

  • 144 new tests: indicators (92), regimes (25), MCP server (27)
  • Walk-forward validation UI: fold count selector, IS/OOS Sharpe, overfit ratio, parameter stability
  • Backtest comparison view: checkbox selection in journal, side-by-side metrics diff table
  • Parity testing UI: PARITY TEST button on paper trading sessions
  • CEX live execution: LiveCCXTContext for Binance, OKX, Bybit via CCXT (20 tests)
  • Data staleness alerts: warns when market data >24h old
  • CSV export: trades CSV and equity CSV alongside JSON
  • Strategy leaderboard: ranked strategy table on Dashboard

MCP Server (11 → 17 tools)

  • Added: start_paper_trading, stop_paper_trading, get_paper_sessions, get_paper_status, list_journal_runs, compare_runs
  • Fixed: strategy count 15→20, funding venues 6→7, optimizer method name
  • flint://guide reads from docs/guides/quickstart.md (single source of truth)

Documentation Rewrite (2,955 lines)

  • Complete rewrite of all 8 guides + new MCP integration guide + Web UI guide
  • New tutorial: "Build Your First Strategy" (443 lines)
  • scripts/build_docs.py generates UI docs from markdown (single source of truth)
  • Docs now tracked in git (un-gitignored)

Single Source of Truth

  • Venues: venue_config.py → API /system/venues → UI (14 venues including Coinbase)
  • Regimes: regimes.py → API /system/regimes → UI (8 regimes)
  • Docs: docs/guides/*.md → UI Docs page, MCP guide resource, CLAUDE.md

Strategy Registry

  • New strategies table tracking lifecycle: draft → backtested → optimized → paper → live
  • Auto-registers on backtest/paper deploy
  • API: GET/POST/DELETE /api/v1/system/strategies with lifecycle stats

Data Model Improvements

  • Journal equity curves stored (no re-runs to see charts)
  • sync_metadata prevents redundant downloads
  • Database indexes on hot query paths
  • Live sessions marked "interrupted" on restart
  • Paper start unified with deploy (all sessions get persistence + replay)
  • paper_funding_payments PK fix (was allowing duplicates)

Async Downloads

  • POST /download-async returns immediately, downloads in background
  • GET /download-async/{id}/status for per-market progress polling
  • Setup wizard and Data Explorer both use async (no more timeouts)
  • Per-market UPDATE button + REFRESH ALL in inventory table

Paper Trading Bug Fixes

  • Critical: equity history restored from DB on resume (was resetting, breaking drawdown tracking)
  • Portfolio PnL calculation fixed (initial_capital was never accumulated)
  • Orphaned sessions cleaned up on replay failure
  • Missing venue field in PositionInfo
  • Missing mark_price initialization
  • Dead code removed (60 lines of unused _run_session())

UI Fixes

  • RUN_BACKTEST button no longer disappears after regime backtest
  • Old results clear when switching between normal and regime mode
  • Duplicate venue selector removed from BacktestLab
  • Unified MARKETS config panel shows all 4 strategy types
  • Data check relaxed (7-day tolerance instead of 1-day)
  • Regime presets in DataExplorer and Setup wizard
  • Increased font sizes and click targets in Data Explorer
  • 122 UI tests passing

Bug Fixes

  • Empty strategy code fallback (treats "" as built-in)
  • Optimizer parameters() works with both classmethod and instance methods
  • DataExplorer missing closing brace (build failure)
  • Integration test timeout (fireEvent instead of userEvent.type)

Stats

  • 30 commits
  • 122 UI tests, 164 backend tests passing
  • 17 MCP tools, 20 built-in strategies, 14 execution venues