style(webui): prettier-format PHASE-P-STRUCTURE.md
ci/woodpecker/pr/ci Pipeline was successful

format:check was the only red CI step on #1147.

Co-Authored-By: Claude Fable 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Dtdjx4Gxude9fwyLezCrhh
This commit is contained in:
2026-08-11 17:14:38 -05:00
co-authored by Claude Fable 5
parent a45f53071a
commit 8925a502ae
+5 -5
View File
@@ -13,7 +13,7 @@ Phase P migrates the Mosaic **web UI** (`apps/web`) from the legacy **Next.js Ap
"increment 1/6". "increment 1/6".
The migration is deliberately **incremental and non-destructive**: the new SPA is built up The migration is deliberately **incremental and non-destructive**: the new SPA is built up
*beside* the existing Next app, sharing one `apps/web/src/lib` networking/auth layer, until the _beside_ the existing Next app, sharing one `apps/web/src/lib` networking/auth layer, until the
final cutover (P5) removes the Next tree. At every point in between, **both app trees exist in the final cutover (P5) removes the Next tree. At every point in between, **both app trees exist in the
same package** — this is intentional, not drift. same package** — this is intentional, not drift.
@@ -62,13 +62,13 @@ Legend: `──` new SPA (keep), `══` legacy Next (removed at P5), shared `l
- **Dev:** `vite.config.ts` runs a dev-only proxy that forwards those paths to the Gateway (so the - **Dev:** `vite.config.ts` runs a dev-only proxy that forwards those paths to the Gateway (so the
SPA on its dev port and the Gateway on `:14242` behave as one origin). SPA on its dev port and the Gateway on `:14242` behave as one origin).
- **Prod (target):** the SPA is **same-origin with the Gateway** — the Gateway serves the built - **Prod (target):** the SPA is **same-origin with the Gateway** — the Gateway serves the built
static bundle and the API/WS on `:14242`, so no proxy and no CORS. *(The Gateway does not serve static bundle and the API/WS on `:14242`, so no proxy and no CORS. _(The Gateway does not serve
the web `dist` yet — adding that is the core of P5; see §5.)* the web `dist` yet — adding that is the core of P5; see §5.)_
## 4. Build scripts (`apps/web/package.json`) ## 4. Build scripts (`apps/web/package.json`)
| Script | Today | Notes | | Script | Today | Notes |
|---|---|---| | ----------------------------- | -------------------------------------------- | ------------------------------ |
| `dev` | `next dev` | legacy dev server | | `dev` | `next dev` | legacy dev server |
| `dev:vite` | `vite` | SPA dev server (+ dev proxy) | | `dev:vite` | `vite` | SPA dev server (+ dev proxy) |
| `build` | `node ../../scripts/build-web.mjs` | currently a **Next** build | | `build` | `node ../../scripts/build-web.mjs` | currently a **Next** build |
@@ -81,7 +81,7 @@ build path is retired.
## 5. Increment map (P1P6) ## 5. Increment map (P1P6)
| # | Increment | Branch | Status | | # | Increment | Branch | Status |
|---|---|---|---| | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------- | ------------------------- |
| **P1** | Vite + React Router skeleton beside Next (entry, router, guards, vitest) | `feat/webui-p1-vite-skeleton` | ✅ merged — PR **#1143** | | **P1** | Vite + React Router skeleton beside Next (entry, router, guards, vitest) | `feat/webui-p1-vite-skeleton` | ✅ merged — PR **#1143** |
| **P2** | SPA data layer + same-origin auth (login/register/SSO pages, guards, relative api/socket/auth-client) | `feat/webui-p2-data-auth` | ✅ merged — PR **#1144** | | **P2** | SPA data layer + same-origin auth (login/register/SSO pages, guards, relative api/socket/auth-client) | `feat/webui-p2-data-auth` | ✅ merged — PR **#1144** |
| **P3** | Typed SPA **chat** (`spa/chat/*`, `chat-contract.ts`, chat page + error boundary) | `feat/webui-p3-chat` | 🚧 in progress (unmerged) | | **P3** | Typed SPA **chat** (`spa/chat/*`, `chat-contract.ts`, chat page + error boundary) | `feat/webui-p3-chat` | 🚧 in progress (unmerged) |