chore: re-monorepo — move @vzn/run code under packages/run/#25
Merged
Conversation
Bun-workspaces monorepo root. Sets up the layout for @vzn/dashboard to live alongside @vzn/run as a separate package with its own build step (Vite + Solid + Tailwind landing in PR #26). Changes: - Root package.json is now a workspace manifest (\`workspaces: ["packages/*"]\`) holding shared dev deps (oxlint, oxfmt, @types/bun). - packages/run/ owns the CLI / cache / orchestrator code and its own package.json + tsconfig.json. All src/* moved verbatim. - CI Test step runs \`bun test packages/*/src/\` from the workspace root. - oxlint + oxfmt run from the root and cover every package. Pure relocation: zero behavior changes, 265/265 tests pass. Dashboard pivot context (decided in chat): - The current src/dashboard.ts server + src/dashboard-ui/ static bundle stay where they are for now (in packages/run/). PR #26 extracts them into @vzn/dashboard, drops the \`vzn dashboard\` subcommand, and rebuilds the UI in Solid + Tailwind with a real component model.
Switching from "two packages" to "packages/ + apps/" convention after re-checking direction with user: dashboard is an app (consumes @vzn/run) rather than a published lib. Workspace + CI Test step + root `test` script all glob both dirs; CLAUDE.md updated to match.
This was referenced May 12, 2026
Exelord
pushed a commit
that referenced
this pull request
May 16, 2026
We re-monorepo'd in 2026-05 (PR #25) only to host the dashboard UI's Vite build alongside the runner; once the dashboard was deleted the monorepo lost its reason to exist and we flattened back. This doc audits the current shape, looks at four restructuring options, and recommends staying flat — the seven src/ subdirs already form a clean DAG and per-file module docs cover discoverability. Concrete follow-ups proposed (not done here): codify the boundaries as an oxlint no-restricted-imports rule (the code already respects every edge), delete the untracked apps/ + packages/ debris dirs, and note the decision in CLAUDE.md so the next agent doesn't re-litigate.
Exelord
pushed a commit
that referenced
this pull request
May 17, 2026
We re-monorepo'd in 2026-05 (PR #25) only to host the dashboard UI's Vite build alongside the runner; once the dashboard was deleted the monorepo lost its reason to exist and we flattened back. This doc audits the current shape, looks at four restructuring options, and recommends staying flat — the seven src/ subdirs already form a clean DAG and per-file module docs cover discoverability. Concrete follow-ups proposed (not done here): codify the boundaries as an oxlint no-restricted-imports rule (the code already respects every edge), delete the untracked apps/ + packages/ debris dirs, and note the decision in CLAUDE.md so the next agent doesn't re-litigate.
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.
Sets up the layout for
@vzn/dashboardto live alongside@vzn/runas a separate package with its own build step (Vite + Solid + Tailwind landing in PR #26).Changes
package.jsonis now a Bun workspaces manifest ("workspaces": ["packages/*"]) holding the shared dev tooling (oxlint, oxfmt, @types/bun).packages/run/owns the CLI / cache / orchestrator code, its ownpackage.json, and its owntsconfig.json. Allsrc/*moved verbatim — no code changes.bun test packages/*/src/from the workspace root. Format + lint already run from root and cover every package.Pivot context
In chat I confirmed:
@vzn/run(CLI/cache) +@vzn/dashboard(analytics UI).vzn dashboardsubcommand goes away.@vzn/dashboardships its own bin.vzn runlearns to point atVZN_DASHBOARD_URLif set.This PR is the pure relocation step — zero behavior changes, 265/265 tests pass. The current
src/dashboard.tsserver andsrc/dashboard-ui/static bundle stay inpackages/run/for now; PR #26 extracts them and rebuilds the UI as Solid components with Tailwind.Generated by Claude Code