Skip to main content

Backtest JSON Export (Conversation Card + Backtest Export Page)

Summary​

Implemented end-to-end JSON export for backtests with two user entry points:

  • Completed Backtest Card in chat conversation timeline (Download JSON).
  • Dedicated Export tab on Backtest Detail page with preview + Download JSON.

Also added backend export endpoint returning a unified payload containing:

  • Overview / headline metrics
  • Orders (trade history)
  • Parameters
  • Code snapshot metadata (+ strategy code when available)
  • Candles lookup payload
  • Raw backtest payload for auditability

Backend​

New route​

  • GET /api/backtests/:id/export

Handler and service updates​

  • Added export handler that builds and returns attachment JSON.
  • Added reusable candle resolution helper shared between candles endpoint and export endpoint.
  • Added service method to assemble export bundle (overview, orders, parameters, code, raw payload).

Files​

  • services/backend/src/routes/backtests/backtests-router.ts
  • services/backend/src/routes/backtests/backtests-handlers.ts
  • services/backend/src/routes/backtests/backtests-service.ts

Frontend​

API client​

  • Added:
    • getBacktestExport(id)
    • downloadBacktestExport(id)
  • Download helper handles filename from Content-Disposition and triggers browser download.

Conversation Backtest Card​

  • Extended chat-ui panel with optional export callback.
  • Added Download JSON action on completed backtest tool card.
  • Wired callback in bot chat page to call downloadBacktestExport.

Backtest Page Export UI​

  • Added dedicated Export tab in Backtest Detail page.
  • Export tab includes:
    • Download JSON button
    • Refresh Preview button
    • JSON preview pane

Files​

  • services/frontend/src/lib/api-client/index.ts
  • packages/chat-ui/src/StreamingChatPanel.tsx
  • services/frontend/src/routes/bots/BotDetailPage.tsx
  • services/frontend/src/routes/backtests/BacktestDetailPage.tsx

Validation​

  • pnpm typecheck passed.
  • pnpm lint passed with existing pre-existing warnings only (no new lint errors).

Deployments​

Backend​

  • Dev: ec091c14-a1f4-4940-96eb-514a0556470c
  • Production: 62096d61-c380-450d-9af2-c5bc6c9190d4

Frontend​

  • Dev Pages deployment: https://7b0fecd7.quantago-dev-app.pages.dev
  • Production Pages deployment: https://f7d1166f.quantago-app.pages.dev

Notes​

  • Export endpoint is auth-guarded and uses existing ownership checks from backtest service access patterns.
  • Strategy code is included when a strategy snapshot ID resolves to a stored bot strategy version.