C Expand Batch 3: oz-dashboard scaffold + Workspaces + Settings#45
Merged
Conversation
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
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
packages/oz-dashboard— Vite + React + TypeScript, Fusion Warm Espresso CSS variables (C-D4).GET /auth/sessionbootstrap →sessionStorage(C-D1); mutating calls send Bearer +x-oz-csrf-token.:7878(C-D2). Prod:@fastify/staticwhenoz-dashboard/distexists.#/workspaces,#/settings) to avoid GET path collisions with JSON API routes (C-D6).collectConcurrencyMapdeviation, post-hoc ratified) + C-D6 (HashRouter).Deviations named
/workspacesHTML vs JSON collision without an/apiprefix refactor.Test plan
pnpm -r test— core 330/330 (+2 static serve tests); oz-dashboard 5/5pnpm typecheck(via CI)@ts-expect-errorcount still 2 (no new core import sites in dashboard)Made with Cursor