Skip to content

C Expand Batch 3: oz-dashboard scaffold + Workspaces + Settings#45

Merged
BadGuyFranco merged 1 commit into
mainfrom
c-expand-batch3-dashboard
May 23, 2026
Merged

C Expand Batch 3: oz-dashboard scaffold + Workspaces + Settings#45
BadGuyFranco merged 1 commit into
mainfrom
c-expand-batch3-dashboard

Conversation

@BadGuyFranco
Copy link
Copy Markdown
Owner

Summary

  • New packages/oz-dashboard — Vite + React + TypeScript, Fusion Warm Espresso CSS variables (C-D4).
  • Auth: GET /auth/session bootstrap → sessionStorage (C-D1); mutating calls send Bearer + x-oz-csrf-token.
  • Dev: Vite proxy to daemon :7878 (C-D2). Prod: @fastify/static when oz-dashboard/dist exists.
  • Pages: Workspaces (registry CRUD) + Settings (install-global GET/PUT; secret refs stored verbatim).
  • HashRouter (#/workspaces, #/settings) to avoid GET path collisions with JSON API routes (C-D6).
  • Decision Log: C-D5 (Batch 2 collectConcurrencyMap deviation, post-hoc ratified) + C-D6 (HashRouter).
  • Vitest + jsdom: auth/client headers + Settings secret-ref display test (C-D3).

Deviations named

  • C-D6 (new this batch): HashRouter instead of BrowserRouter — API and SPA share the same origin paths; hash routing avoids /workspaces HTML vs JSON collision without an /api prefix refactor.

Test plan

  • pnpm -r test — core 330/330 (+2 static serve tests); oz-dashboard 5/5
  • pnpm typecheck (via CI)
  • C-S1..C-S9 unchanged green
  • @ts-expect-error count still 2 (no new core import sites in dashboard)

Made with Cursor

Introduces packages/oz-dashboard (Vite/React/Fusion palette), sessionStorage
auth bootstrap against GET /auth/session, and daemon static serving when
dist is built; documents C-D5/C-D6 in the Oz MVP plan.

Co-authored-by: Cursor <cursoragent@cursor.com>
@BadGuyFranco BadGuyFranco merged commit 8abb135 into main May 23, 2026
2 checks passed
@BadGuyFranco BadGuyFranco deleted the c-expand-batch3-dashboard branch May 23, 2026 13:03
BadGuyFranco added a commit that referenced this pull request May 23, 2026
…ation entry (#46)

Two amendments surfaced during C Expand Batch 3 (PR #45) reviewer
verification:

1. The Batch 3 report claimed "no new @ts-expect-error or createRequire
   core import sites in Batch 3." Actual count is 4 createRequire sites,
   not 3: multiplexer-observer.ts (Batch 2), run-evidence.ts (Batch 2),
   run-catalog.ts (Batch 2), AND dashboard-static.ts (Batch 3 — NEW).
   The Batch 3 site uses createRequire for require.resolve against a
   workspace package (defensible v0.1 use), but the "no new" claim was
   inaccurate. v0.2-backlog count corrected: 2 @ts-expect-error +
   4 createRequire = 6 callsites to clean up.

2. New entry for /api prefix migration. C-D6 chose HashRouter for v0.1
   because the daemon's JSON endpoints at /workspaces, /settings collide
   with SPA routes under BrowserRouter. HashRouter is defensible for a
   localhost dashboard but the underlying conflict will re-bite any
   future contributor who tries BrowserRouter. The /api prefix is the
   idiomatic long-term fix; entry suggests landing alongside any v0.2
   dashboard UX work, not in isolation.

No code changes; pure backlog amendments. Suite remains 330/330 (core) +
5/5 (oz-dashboard).

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant