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.tsservices/backend/src/routes/backtests/backtests-handlers.tsservices/backend/src/routes/backtests/backtests-service.ts
Frontend
API client
- Added:
getBacktestExport(id)downloadBacktestExport(id)
- Download helper handles filename from
Content-Dispositionand triggers browser download.
Conversation Backtest Card
- Extended chat-ui panel with optional export callback.
- Added
Download JSONaction on completed backtest tool card. - Wired callback in bot chat page to call
downloadBacktestExport.
Backtest Page Export UI
- Added dedicated
Exporttab in Backtest Detail page. - Export tab includes:
Download JSONbuttonRefresh Previewbutton- JSON preview pane
Files
services/frontend/src/lib/api-client/index.tspackages/chat-ui/src/StreamingChatPanel.tsxservices/frontend/src/routes/bots/BotDetailPage.tsxservices/frontend/src/routes/backtests/BacktestDetailPage.tsx
Validation
pnpm typecheckpassed.pnpm lintpassed 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.