diff --git a/docs/roadmap/ROADMAP.yaml b/docs/roadmap/ROADMAP.yaml index 6f0064f..8297d62 100644 --- a/docs/roadmap/ROADMAP.yaml +++ b/docs/roadmap/ROADMAP.yaml @@ -13,7 +13,6 @@ notes: - Pre-alpha policy: we may cut or replace old features without backward compatibility until alpha is declared. - Alpha migration policy: once alpha is declared, compatibility only needs to move forward; backward migrations are not required. priority_queue: - - DEV-DOCKER-001 - PORT-003 - BT-002 - BT-001C @@ -24,6 +23,7 @@ priority_queue: - OPS-001 - BT-003 recently_completed: + - BT-003B - CORE-001D - CORE-001D3C - CORE-001D2D @@ -41,15 +41,13 @@ states: - DATA-002A - DATA-001A - OPS-001 - - DEV-DOCKER-001 - PORT-003 - EXEC-001 - EXEC-002 - BT-002 - BT-003 - BT-001C - in_progress: - - BT-003B + in_progress: [] done: - DATA-001 - DATA-002 @@ -64,6 +62,7 @@ states: - BT-001 - BT-001A - BT-003A + - BT-003B - CORE-001A - CORE-001B - CORE-001C diff --git a/docs/roadmap/backlog/DEV-DOCKER-001-local-bind-mount-integrity.yaml b/docs/roadmap/backlog/DEV-DOCKER-001-local-bind-mount-integrity.yaml deleted file mode 100644 index c00415f..0000000 --- a/docs/roadmap/backlog/DEV-DOCKER-001-local-bind-mount-integrity.yaml +++ /dev/null @@ -1,17 +0,0 @@ -id: DEV-DOCKER-001 -title: Local Docker Bind Mount Integrity -status: backlog -priority: P0 -effort: S -depends_on: [] -tags: - - devops - - docker - - local-dev -summary: Restore trustworthy local Docker validation by fixing the current empty bind-mount/import failure for `./app -> /app/app` under the local OrbStack workflow. -acceptance_criteria: - - `docker compose up -d --build` starts the local stack cleanly. - - `docker compose ps` shows the app container healthy instead of restart-looping. - - `docker compose run --rm --entrypoint python app -c 'import app.main'` succeeds. - - Inside the app container, `/app/app` contains the repository's actual application files. - - `/health` and at least one changed route can be validated against the Docker-served app, not only a direct local uvicorn process. diff --git a/docs/roadmap/done/BT-003B-event-comparison-drilldown.yaml b/docs/roadmap/done/BT-003B-event-comparison-drilldown.yaml new file mode 100644 index 0000000..d1693d2 --- /dev/null +++ b/docs/roadmap/done/BT-003B-event-comparison-drilldown.yaml @@ -0,0 +1,17 @@ +id: BT-003B +title: Event Comparison Drilldown +status: done +priority: P1 +effort: M +depends_on: + - BT-003A +tags: + - backtesting + - ui +summary: The event comparison page now explains why one ranked strategy beat another by exposing a selectable drilldown over the ranked results. +completed_notes: + - Added service-backed drilldown models in `app/services/event_comparison_ui.py` for ranked strategy selection, worst-LTV inspection, breach dates, and daily path rows. + - Updated `app/pages/event_comparison.py` to render a `Strategy drilldown` selector, selected-strategy summary cards, worst-LTV and breach-date highlights, and a daily path details table. + - Added regression coverage in `tests/test_event_comparison_ui.py` and extended `tests/test_e2e_playwright.py` so drilldown selection proves route-visible content changes. + - Local Docker validation is now confirmed on Docker Desktop: the stack starts cleanly, `/health` returns OK, and browser automation on the Docker-served `/{workspace_id}/event-comparison` route verified the drilldown UI and selection updates. + - The earlier Docker validation confusion was caused by a local SSH port-forward hijacking host requests to `localhost:8000`, not by the app container itself. diff --git a/docs/roadmap/in-progress/BT-003B-event-comparison-drilldown.yaml b/docs/roadmap/in-progress/BT-003B-event-comparison-drilldown.yaml deleted file mode 100644 index 5acfc8c..0000000 --- a/docs/roadmap/in-progress/BT-003B-event-comparison-drilldown.yaml +++ /dev/null @@ -1,20 +0,0 @@ -id: BT-003B -title: Event Comparison Drilldown -status: in_progress -priority: P1 -effort: M -depends_on: - - BT-003A -tags: - - backtesting - - ui -summary: Explain why one ranked strategy beat another on the event comparison page. -acceptance_criteria: - - Selecting a ranked strategy shows daily path details. - - UI exposes margin-call days, payoff realized, hedge cost, and final equity. - - Worst LTV point and breach dates are highlighted. - - Browser test verifies drilldown content updates when selecting a ranked result. -progress_notes: - - The drilldown UI and service models are implemented in `app/pages/event_comparison.py` and `app/services/event_comparison_ui.py`. - - Focused unit coverage is green and direct local-browser validation against a fresh local uvicorn process succeeded. - - Closure is waiting on the local Docker validation path because `docker compose up -d --build` currently surfaces an environment-specific empty bind-mount/import failure for `./app -> /app/app`.