[verified] add frozen research runner and durable paper ledger
This commit is contained in:
@@ -4,11 +4,11 @@
|
||||
|
||||
- Path: `/Users/kunthawat/Gitea/set50-alternative-data-platform`
|
||||
- Branch: `main`
|
||||
- Verified code commit: `7f7a614` — `[verified] add SET price snapshot adapter`
|
||||
- Current milestone: M2.4 price snapshot foundation complete; real backtest blocked
|
||||
- Verified code commit: `7f7a614` — `[verified] add SET price snapshot adapter` (M2.5 pending commit)
|
||||
- Current milestone: M2.5 research runner and durable paper workflow complete; validated backtest blocked
|
||||
- Mode: research + paper only
|
||||
- Frontend: Vue 3 + Vite
|
||||
- Backend: Flask `0.4.0`
|
||||
- Backend: Flask `0.5.0`
|
||||
- Current runtime source: BOT Tourism Indicators (`TOURISM_SOURCE=bot`)
|
||||
|
||||
## Completed
|
||||
@@ -26,6 +26,9 @@
|
||||
- Backtest readiness gate: `GET /api/v1/backtest/tourism?min_events=12`.
|
||||
- Yahoo-backed daily price snapshot with SET symbol mapping and adjusted-close bars.
|
||||
- Price health: `GET /api/v1/prices/health`.
|
||||
- Frozen research runner: `POST /api/v1/research/tourism/run` and `GET /api/v1/research/tourism/latest`.
|
||||
- Headless runner: `backend/scripts/run_tourism_research.py`.
|
||||
- Durable atomic paper ledger under `backend/data/paper/ledger.json` when configured.
|
||||
- Ranked target weights and LONG/SHORT/NEUTRAL classification.
|
||||
- English dashboard with live/provisional source label, sign-aware surprise copy and lineage fields.
|
||||
- HttpOnly paper session and internal paper ledger.
|
||||
@@ -57,7 +60,7 @@ npm run build
|
||||
Vite build completed successfully.
|
||||
|
||||
GET /api/v1/health
|
||||
HTTP 200; {"mode":"research","status":"ok","version":"0.4.0"}
|
||||
HTTP 200; {"mode":"research","status":"ok","version":"0.5.0"}
|
||||
|
||||
GET /api/v1/data-health
|
||||
HTTP 200; source_mode=bot, status=provisional, replayable=true
|
||||
@@ -76,6 +79,12 @@ HTTP 409; status=blocked, available_events=1, required_events=12, price_series_r
|
||||
|
||||
GET /api/v1/prices/health
|
||||
HTTP 200; available=true, quality=revised_vendor_history, point_in_time=false, symbols=9
|
||||
|
||||
POST /api/v1/research/tourism/run
|
||||
HTTP 200; report status=blocked, reason=insufficient_vintages, immutable run_id persisted
|
||||
|
||||
GET /api/v1/research/tourism/latest
|
||||
HTTP 200; same run_id returned on replay
|
||||
```
|
||||
|
||||
Paper writes use a server-side token exchange and HttpOnly `paper_session` cookie; the token is not embedded in the frontend bundle.
|
||||
@@ -88,8 +97,11 @@ Paper writes use a server-side token exchange and HttpOnly `paper_session` cooki
|
||||
- No investment edge, transaction-cost result, or backtest conclusion has been established.
|
||||
- One independent source release is not enough for a valid event study; current historical rows are not treated as point-in-time vintages.
|
||||
- The event-study engine is deterministic and tested. Yahoo price history is connected for plumbing, but it is revised vendor history, not point-in-time data.
|
||||
- Research runner is operational and replayable, but correctly emits a blocked report until both evidence gates pass.
|
||||
- Revisions are deduplicated by canonical `(source_id, published_at)`; the latest observed revision is selected once.
|
||||
- Event-study default execution is the next trading session, including weekend/holiday event dates.
|
||||
- Browser screenshot verification remains blocked by the Chrome remote-debugging permission prompt; served HTML/source, live API, fresh Vite build and replay integrity were verified instead.
|
||||
|
||||
## Exact next action
|
||||
|
||||
Collect independent BOT releases over time and replace/supplement revised vendor history with a point-in-time daily price source. Only then raise the readiness gate and run the event study. Add another metric only when its historical release coverage is real.
|
||||
Collect independent BOT releases over time and replace/supplement revised vendor history with a point-in-time daily price source. The operator can run the frozen research check now; only raise the gate when both requirements pass. Add another metric only when its historical release coverage is real.
|
||||
|
||||
Reference in New Issue
Block a user