71 lines
3.0 KiB
Markdown
71 lines
3.0 KiB
Markdown
# Web Phase 2 Read-Only UI
|
|
|
|
## Status
|
|
|
|
- `completed`
|
|
|
|
## Owner
|
|
|
|
- Codex
|
|
|
|
## Started At
|
|
|
|
- `2026-03-20`
|
|
|
|
## Goal
|
|
|
|
- Implement the first real Phase 2 operator UI in `apps/web` by shipping the read-only runs list, run detail, blocked queue, and thread timeline views on top of the existing `orchd` HTTP API and Cadence UI source-owned components.
|
|
|
|
## Scope
|
|
|
|
- create an execution trace for the Phase 2 read-only UI workstream
|
|
- wire the frontend to the existing read-only API contract
|
|
- implement routed views for runs list, run detail, blocked queue, and thread timeline
|
|
- reuse Cadence UI source-owned components instead of introducing new foundational UI primitives
|
|
- validate the frontend build and keep `docs/implementation-roadmap.md` synchronized
|
|
|
|
## Checklist
|
|
|
|
- [x] create the active execution roadmap for the Phase 2 read-only UI workstream
|
|
- [x] inspect the current frontend shell and backend read contract
|
|
- [x] add the frontend data layer and route structure for the Phase 2 read-only views
|
|
- [x] implement the runs list, run detail, blocked queue, and thread timeline screens
|
|
- [x] ensure Cadence UI styles render correctly in the consumer app
|
|
- [x] validate the frontend build and fix any type or integration issues
|
|
- [x] update `docs/implementation-roadmap.md`
|
|
- [x] archive this roadmap with a completion summary if the slice is fully complete
|
|
|
|
## Files
|
|
|
|
- `docs/roadmaps/archive/web-phase2-read-only-ui.md`
|
|
- `docs/implementation-roadmap.md`
|
|
- `apps/web/package.json`
|
|
- `apps/web/src/app.tsx`
|
|
- `apps/web/src/features/operator-console.tsx`
|
|
- `apps/web/src/lib/api.ts`
|
|
- `apps/web/src/lib/format.ts`
|
|
- `apps/web/src/styles.css`
|
|
- `apps/web/src/vite-env.d.ts`
|
|
- `apps/web/vite.config.ts`
|
|
- `pnpm-lock.yaml`
|
|
|
|
## Decisions
|
|
|
|
- keep the first Phase 2 UI slice read-only and route it against the existing HTTP API instead of coupling UI delivery to new backend mutations
|
|
- prefer composition from the copied-in Cadence UI source over new hand-rolled UI primitives
|
|
|
|
## Blockers
|
|
|
|
- none
|
|
|
|
## Next Step
|
|
|
|
- build the next web slice on top of the shipped read-only screens by adding operator write actions, council views, and realtime event handling without replacing the new routed operator shell
|
|
|
|
## Completion Summary
|
|
|
|
- replaced the placeholder `apps/web` landing screen with a routed read-only operator UI that now ships runs list, run detail, blocked queue, and thread timeline pages backed by the existing `orchd` API
|
|
- added a typed frontend read layer for the current HTTP contract, including client-side blocked queue aggregation across runs and thread timeline payload/artifact rendering
|
|
- wired Tailwind v4 into the consumer app so the copied-in Cadence UI source-owned components render correctly, and used those components throughout the new pages instead of introducing new foundational UI primitives
|
|
- validated the slice with `pnpm run web:build`, seeded a local demo run/thread dataset through the existing `orch` and `inbox` CLIs, and verified the Vite dev server can proxy the runs, run detail, and thread endpoints through to `orchd`
|