Repository navigation
Phase 3 UI Migration Milestones
This document is the execution checklist for migrating the Testo UI from the Streamlit prototype (testo_ui/streamlit_app.py) to a decoupled React SPA (frontend/) backed by FastAPI (testo_api/), while keeping testo_core as the single source of truth for orchestration and preserving CI/NDJSON contracts.
References:
docs/Architecture/Deep Dive - Execution Logic.mddocs/CLI Commands/Troubleshooting and Error Codes.mddocs/Processes & Guides/Streamlit to React Migration Guide.md
-
Execution model: standardize on plan/cycle execution (
testo runlifecycle) as the primary web contract. - Streaming transport: standardize on SSE from backend → frontend.
-
Event schema: SSE
data:payloads are the same objects as NDJSONevents.ndjsonlines (top-leveleventfield and documented payload shapes).
Exit criteria:
- A single written contract for:
plan_started,stage_started,stage_finished,plan_finished,plan_aborted,cycle_trigger,error.
Rollback:
- Keep Streamlit runnable.
Deliverables:
-
POST /api/v1/cycles/{cycle}/executionsto start a cycle run. -
GET /api/v1/cycle-executions/{id}for execution status. -
GET /api/v1/cycle-executions/{id}/eventsSSE stream that tailsartifacts/<cycle>/events.ndjson.
Exit criteria:
- A cycle run can be started and observed end-to-end via SSE.
- Durable artifacts are written under
artifacts/<cycle>/(events.ndjson,plan_result.json).
Rollback:
- Continue using the existing headless execution endpoints (
/api/v1/executions) for legacy UI paths.
Deliverables:
- Vite + TypeScript app under
frontend/. - Routes/pages:
-
DashboardHome: uses
/api/v1/dashboard/overview - Runner/LiveExecutionConsole: uses new cycle execution endpoints + SSE
-
History/ReportViewer: uses
/api/v1/runs//api/v1/runs/{id}//api/v1/runs/{id}/reports
-
DashboardHome: uses
Exit criteria:
- The SPA loads, navigates, and can start a cycle run with live event streaming.
Rollback:
- Streamlit remains available for the same user journeys.
Deliverables:
- Runner view shows:
- stage timeline and final exit classification
- direct links to
run.log(per stage) andevents.ndjson/plan_result.json
- History links open the right report surfaces:
- Allure Server per
run_idwhen configured - static report mirrors (Allure/Extent) where available
- Allure Server per
Exit criteria:
- Feature parity with Streamlit “Execution + Analytics + History” journeys.
Rollback:
- Streamlit stays as fallback while production traffic is gradually shifted.
Deliverables:
- Concurrency control per cycle and/or per execution workspace.
- Optional cancellation endpoint(s) and cleanup.
- AuthN/AuthZ if required.
- Better SSE resilience: reconnection with offset semantics (server can support
Last-Event-IDor explicit offset).
Exit criteria:
- Stable operations under concurrent users, with predictable resource usage and clean teardown.
[!note] Superseded in part (2026-07-04) The Phase 3 route map (
/runner,/history,/execution) was reorganized by the Phase 5 UI redesign: cycles-first navigation, cycle discovery endpoints, and a consolidated Run panel. Old routes redirect. See Phase 5 UI Redesign - Cycles-First Navigation.
Generated from docs/Archive/Phase 3 UI Migration Milestones.md. Edit it there; changes made in the wiki are overwritten.
Architecture
CLI Commands
Processes & Guides
- CI-CD Pipeline Setup
- E2E Harness Operations Guide
- GitLab Pages Demo
- Publishing Docker Images
- Publishing to Artifactory
- Publishing to PyPI
- Team Server
Prompts & Snippets
Roadmap & Strategy
Specs & ADRs
- Architecture Consolidation - 2026-10-06
- BehaveX Reports - 2026-10-21
- Command Adapter and JUnit Import - 2026-09-25
- Delta Comparison Policy
- Docs Site - 2026-10-19
- Docs Vault and Wiki Sync - 2026-10-07
- GitHub Action PR Comment - 2026-10-19
- Ingest and Team Server - 2026-10-22
- Interview Readiness Fixes - 2026-10-07
- Library Packaging
- Open Source Features - 2026-10-19
- Phase 3 Delta Comparison Engine Plan
- Phase 3 Unified Dashboard Plan
- Phase 4 BYOK and Failure Analysis
- Phase 5 UI Redesign - Cycles-First Navigation
- Playwright Adapter - 2026-10-19
- Plugin API - 2026-10-19
- Specs & ADRs
- Repository Pattern - Database-Agnostic Refactor
- UI Restyle - 2026-10-19
Testing Workflows
Vault