Skip to content

refactor: remove dashboard, flatten to single-package project#33

Merged
Exelord merged 1 commit into
mainfrom
claude/remove-dashboard-flatten-monorepo
May 12, 2026
Merged

refactor: remove dashboard, flatten to single-package project#33
Exelord merged 1 commit into
mainfrom
claude/remove-dashboard-flatten-monorepo

Conversation

@Exelord
Copy link
Copy Markdown
Member

@Exelord Exelord commented May 12, 2026

Scope reset per owner direction. The dashboard server + Solid UI
subsystem (PRs #19#29, the entire dashboard track) was overengineered
for the actual need — CI consumption + ad-hoc developer queries
already work fine against cache.db with vzn stats or
sqlite3. This PR rips it all out and returns the project to a
single src/ at root.

Diff stats

77 files changed, 143 insertions(+), 3598 deletions(-)

Dep tree: 304 packages → 19. Test count: 286 → 248 (the dashboard
tests went with the code; everything else still passes).

What's deleted

  • apps/ (the entire apps/dashboard/ Solid + Vite + UnoCSS app)
  • src/dashboard.ts + src/dashboard.test.ts (the JSON API server)
  • packages/run/ (the directory; src/ promoted to root)
  • dashboard subcommand from cli.ts + its help text
  • parseDashboardArgs, dashboardCmd, DashboardUiMissingError,
    resolveUiDir, createDashboardServer, the full set of API types
  • docs/modules/dashboard.md
  • docs/design/dashboard.md
  • "Build dashboard UI" step from .github/workflows/ci.yml
  • workspaces glob, build:dashboard script from package.json

What stays (analytics for CI, no UI)

  • runs table + v11 analytics columns (run_id, cpu_ms,
    peak_rss_bytes, wallclock_start/end_ns, cache_hit,
    bytes_uploaded/downloaded)
  • src/ulid.ts + hrtime span stamping in orchestrator
  • Bun.spawn resourceUsage() capture in runner.ts / sandbox.ts
  • vzn stats command — surfaces the same data as the dashboard
    Overview page used to
  • CI scripts can also query .vzn/cache/cache.db directly with
    sqlite3 for any custom metric. The cache file IS the API.

What stays untouched

  • sandbox (bwrap/sandbox-exec)
  • layered-cache
  • remote-cache + cache-archive (Turbo /v8/artifacts/ wire)
  • workspace config loading (defineWorkspace)
  • everything in vzn run

Layout

src/                    # was packages/run/src/
docs/
tsconfig.json           # was packages/run/tsconfig.json
package.json            # was packages/run/package.json (merged with root)

Test plan

  • bun install clean — 19 packages
  • bun run format clean
  • bun run lint clean
  • bun test src/ — 248 pass / 0 fail
  • bun src/bin.ts --version / --help — no dashboard refs in
    help text

Generated by Claude Code

Scope reset: the dashboard server + UI subsystem was overengineered
for the actual use case (CI consumption + ad-hoc developer queries).
This rips it out and returns the project to a single src/ at root,
keeping just the analytics columns in cache.db so CI can still query
run history via 'vzn stats' or 'sqlite3 .vzn/cache/cache.db'.

Deleted:
- apps/ (entire apps/dashboard/ Solid app)
- src/dashboard.ts + src/dashboard.test.ts
- packages/run/ (whole directory; src/ promoted to root)
- 'dashboard' subcommand from cli.ts + help text
- docs/modules/dashboard.md
- docs/design/dashboard.md
- 'Build dashboard UI' step from CI
- workspaces glob, build:dashboard script from package.json

Kept (analytics for CI, no UI):
- runs table + v11 analytics columns (run_id, cpu_ms, peak_rss_bytes,
  wallclock_start/end_ns, cache_hit, bytes_uploaded/downloaded)
- ulid.ts + hrtime span stamping in orchestrator
- Bun.spawn resourceUsage capture in runner.ts/sandbox.ts
- 'vzn stats' command

Kept (untouched):
- sandbox, layered-cache, remote-cache, cache-archive

Layout: packages/run/src/ -> src/, packages/run/{package.json,
tsconfig.json} -> root (merged into root package.json which now is
@vzn/run). bun.lock regenerated; dep tree 304 -> 19 packages.

CI test glob: packages/*/src/ apps/*/src/ -> src/.

248 tests pass / 0 fail. Lint + format clean.
@Exelord Exelord merged commit a6eff6e into main May 12, 2026
1 check passed
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.

2 participants