Add web product Phase 1 skeleton

This commit is contained in:
2026-03-20 00:20:38 +08:00
parent 0355d7a847
commit a7ef1e0154
24 changed files with 2287 additions and 6 deletions
@@ -0,0 +1,74 @@
# Web Product Phase 1 Skeleton
## Status
- `completed`
## Owner
- Codex
## Started At
- `2026-03-20`
## Goal
- Implement the first web-product milestone slice described in `docs/web-product-monorepo.md` by creating the monorepo skeleton, a minimal `orchd` HTTP service, and the first read-oriented backend boundaries.
## Scope
- add an active execution trace for this web implementation workstream
- add the initial monorepo workspace files and `apps/web` scaffold
- add `cmd/orchd`, `internal/httpapi`, `internal/app`, and `internal/query`
- expose a small read-only HTTP API for health, runs, run detail, blocked tasks, and thread detail
- add initial API contract docs under `api/`
- keep `docs/implementation-roadmap.md` synchronized with the new implementation state
## Checklist
- [x] create the active execution roadmap for the Phase 1 web skeleton workstream
- [x] scaffold the monorepo workspace files and `apps/web`
- [x] add `cmd/orchd` with a minimal `chi`-based HTTP server
- [x] introduce initial shared app/query boundaries for read-only web endpoints
- [x] add initial API contract documents under `api/`
- [x] validate the new slice with builds or targeted tests
- [x] update `docs/implementation-roadmap.md`
- [x] archive this execution roadmap with a completion summary if the slice is fully complete
## Files
- `docs/roadmaps/active/web-product-phase1-skeleton.md`
- `docs/implementation-roadmap.md`
- `docs/web-product-monorepo.md`
- `cmd/orchd/main.go`
- `internal/httpapi/`
- `internal/app/`
- `internal/query/`
- `internal/store/`
- `api/openapi.yaml`
- `api/events.md`
- `apps/web/`
- `package.json`
- `pnpm-workspace.yaml`
## Decisions
- implement a narrow read-only backend slice first instead of starting with frontend pages
- keep the first HTTP layer thin and let query/app packages own the web-facing backend boundary
- preserve the existing CLI entrypoints while introducing the new service
## Blockers
- none
## Next Step
- start Phase 2 on top of the new `apps/web` and `orchd` skeleton by wiring real runs, run-detail, blocked-queue, and thread-detail screens to the read-only API
## Completion Summary
- added the first web-product skeleton described in `docs/web-product-monorepo.md`, including root `pnpm` workspace files, a standalone React frontend shell under `apps/web`, initial API contract documents under `api/`, and a new `cmd/orchd` HTTP service
- introduced `internal/app`, `internal/query`, and `internal/httpapi` so the web backend has an explicit read-oriented boundary instead of letting handlers query storage ad hoc
- implemented and validated the first read-only HTTP endpoints for health, runs, run detail, run tasks, blocked tasks, and thread detail
- verified the slice with `go test ./...` and `pnpm run web:build`, then synchronized `docs/implementation-roadmap.md`