Repository navigation
Phase 5 UI Redesign Cycles First Navigation
Status: Shipped 2026-07-04 Scope: React frontend + two new API endpoints. Engine/CLI behavior unchanged.
Post-Phase-3 feedback: the React UI read as an unpolished AI-generated beta — generic slate styling, no design tokens or shared components, the brand logo unused, two overlapping execution pages, and no way to discover cycles (users had to type cycle names from memory into a free-text field). The CLI delivered the product promise (straightforward, time-saving); the UI didn't.
-
GET /api/v1/cycles— list summaries (name, description, stage_count, equipment) viadiscover_and_load(); parity withqasight cycles list. -
GET /api/v1/cycles/{cycle}— resolved stage detail (equipment, target repo, args, timeout, workers, trigger); parity withqasight cycles show. 404 lists valid names; missing config → 503infra_failure. - Models in
qasight_api/models.py(CycleSummary,CycleListResponse,StageSummary,CycleDetailResponse); routes inqasight_api/routes/cycles.py; contract tests intests/contract/api/test_cycles_contract.py.
- Nav: Dashboard · Cycles · Runs · Compare, plus health indicator (
GET /api/v1/health/ready, polled 30s) and an Advanced ▾ menu (Legacy Execution, AI Settings). Since UI Restyle - 2026-10-19 these sit in a desktop sidebar. - New pages:
frontend/src/features/cycles/CyclesPage.tsx(card grid, Run buttons),CycleDetailPage.tsx(stage breakdown + run panel). -
RunPanel (
frontend/src/features/cycles/RunPanel.tsx) replaces the free-textLiveExecutionConsole(deleted): cycle dropdown fed by the new endpoint, core toggles (stream/persist/fail-fast/force), and a progressive-disclosure Advanced accordion covering everyCycleExecutionRequestfield (workers, reporters, report DB, config path, artifacts root). SSE consumption unchanged (locked NDJSON event contract). - Dashboard shows a 3-step first-run guide when no runs exist instead of "n/a" KPI walls.
- Route renames with redirects:
/history→/runs,/runner→/cycles,/execution→/advanced/execution.
- Tailwind tokens in
frontend/tailwind.config.ts:inkneutral scale (near-black until 2026-10-19, now navy; see UI Restyle - 2026-10-19), singlebrandblue accent (from the logo), semanticsuccess/danger/warn. - Shared components in
frontend/src/components/ui/: Button, Card, Badge, StatusPill, PageHeader, EmptyState, Spinner, KeyValue. -
Pixel arm-muscle mascot in
frontend/src/components/mascot/(crisp-edge SVG grids): logo mark in nav,MuscleFlexon run success,MuscleDefeatedon failure,MuscleShrugfor empty states. Animations viamuscle-flex/muscle-droopkeyframes.
docs/CLI Commands/Command Reference.md documented qasight run --tag/--fail-fast/--dry-run/--reporter and qasight doctor/clean/watch/init which are not implemented in qasight/cli/. Marked as roadmap callouts; the API layer already accepts fail_fast/reporter_override so the UI surfaces them.
- 17 API contract tests + 352 backend unit/contract tests pass.
- 14 Vitest tests pass, incl. RunPanel submit-via-click regression (the old "Run cycle" button bug) and advanced-options→payload mapping.
- Real-browser walkthrough: cycles list renders all 5 sample cycles;
sample-pytestsrun streamed stage events over SSE and finished green with the flex mascot; mobile (375px) layout verified.
- Implement the roadmap CLI flags (
--fail-fast,--reporter,--tag,--dry-run) to close the CLI↔API gap in the other direction. - Historical runs stuck in
RUNNINGstatus render as "Running" pills on Runs/Dashboard — data hygiene, not a UI defect. - Consider surfacing
GET /api/v1/cycles?config_path=in the UI for multi-config workflows.
Generated from docs/Specs & ADRs/Phase 5 UI Redesign - Cycles-First Navigation.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
- Setup Snippets
- Shared Resource Pools
- Team Server
Prompts & Snippets
Roadmap & Strategy
- Feature Gaps and Quick Wins - 2026-10-31
- New User Journey Audit - 2026-11-01
- Paid Features to Offer Free - 2026-10-31
- Product Roadmap
Specs & ADRs
- Affected Test Selection - 2026-10-30
- Alerts Where Developers Look - 2026-10-22
- Architecture Consolidation - 2026-10-06
- Architecture Review - 2026-10-31
- BehaveX Reports - 2026-10-21
- Better Flaky Signal - 2026-11-01
- Command Adapter and JUnit Import - 2026-09-25
- Config JSON Schema - 2026-10-22
- Crash Detection - 2026-10-31
- Delta Comparison Policy
- Docs Site - 2026-10-19
- Docs Vault and Wiki Sync - 2026-10-07
- Easy Setup - 2026-11-01
- Engine Fixes - 2026-11-01
- Engineering Health Review - 2026-10-31
- Exporting Results - 2026-11-01
- Flaky Test Issues - 2026-11-01
- Flaky Test Quarantine - 2026-10-22
- Free Copies of Paid Features - 2026-11-01
- GitHub Action PR Comment - 2026-10-19
- Human-Run Resource Provider - 2026-10-30
- Importer and Integration Bug Hunt - 2026-10-31
- Ingest and Team Server - 2026-10-22
- Interview Readiness Fixes - 2026-10-07
- Library Packaging
- Lifecycle Fixes - 2026-11-02
- MCP Server - 2026-11-01
- New User Journey Automation - 2026-11-01
- Open Source Features - 2026-10-19
- OpenTelemetry Export - 2026-10-30
- 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
- Playwright JSON Import - 2026-10-22
- Plugin API - 2026-10-19
- Product Roadmap Work - 2026-10-25
- Product to Ten - 2026-10-25
- Project Health - 2026-10-26
- QASight Logo - 2026-11-05
- Qualflare Follow-ups - 2026-10-26
- Quarantine From the UI - 2026-11-01
- Specs & ADRs
- Rename to QASight - 2026-11-04
- Repository Pattern - Database-Agnostic Refactor
- Resource Lifecycle Hooks - 2026-10-26
- Resource Pools and Leases - 2026-10-26
- Run Deletion and Stop - 2026-11-02
- Runner Coverage - 2026-10-26
- Scale Runs and Stages - 2026-10-24
- Security and Install Review - 2026-10-31
- Switchable Team Features - 2026-10-24
- Test Delivery Metrics - 2026-11-02
- Test Labels, Environments and Releases - 2026-11-02
- Test Source in AI Summaries - 2026-11-01
- Throwaway Stage Containers - 2026-10-24
- Tidy Cards and Demo Examples - 2026-11-05
- UI Design Review - 2026-10-31
- UI Polish - 2026-11-08
- UI Restyle - 2026-10-19
- UI Review Fixes - 2026-11-01
Testing Workflows
Vault