T-Y8YP-polish-frontend-deps-bootstrap
Status: closed/done · Impact: medium · Complexity: medium
Polish’s Nuxt frontend (apps/determined/apps/polish/src-nuxt) is a standalone Bun install
with its own bun.lock, not a root workspace member. Root bun install
does not set it up, so moon run polish:dev and polish:frontend-* fail on
a fresh checkout until someone runs cd apps/determined/apps/polish/src-nuxt && bun install
by hand. Fold that into the standard bootstrap so polish is not an install
island.
| Location | Role today |
|---|---|
package.json (root) | workspaces = packages/ts/*, apps/determined/** — excludes apps/determined/apps/polish/src-nuxt |
apps/determined/apps/polish/src-nuxt/ | standalone Nuxt app with its own package.json + bun.lock; installed manually (~1100 pkgs) |
sdlc.yaml worktree_init | bootstraps fresh worktrees; runs no src-nuxt install |
Proposed
Section titled “Proposed”A fresh checkout or worktree can run moon run polish:frontend-* and
polish:dev after the standard bootstrap, with no manual per-app install.
Approach
Section titled “Approach”- Decide the seam:
- A — workspace member: add
apps/determined/apps/polish/src-nuxtto rootworkspaces(hoists deps; matches howapps/determined/apps/*Nuxt apps are handled). Risk: Nuxt’s node_modules expectations under hoisting;MIGRATION.mddeliberately kept it isolated because of the co-located Cargo workspace. - B — keep isolated: add
cd apps/determined/apps/polish/src-nuxt && bun installtosdlc.yamlworktree_init(and document it for plain clones).
- A — workspace member: add
- Implement the chosen path.
- Verify a clean worktree runs
polish:frontend-lintwith no manual install.
Files to touch
Section titled “Files to touch”| Location | Kind | Change |
|---|---|---|
package.json (root) | modify | add src-nuxt to workspaces (option A only) |
sdlc.yaml | modify | add src-nuxt install to worktree_init (option B only) |
Acceptance criteria
Section titled “Acceptance criteria”- AC-1: on a fresh worktree,
moon run polish:frontend-lintruns after the standard bootstrap with no manualbun install. - AC-2:
bun run generate/polish:buildstill producesrc-nuxt/.outputunder the chosen scheme.
Out of scope
Section titled “Out of scope”- Rust deps (cargo provisions those).
Dependencies
Section titled “Dependencies”- none.
Discovery context
Section titled “Discovery context”- Surfaced analyzing whether polish is integrated into the overall moon build; the frontend-install
step in
apps/determined/apps/polish/MIGRATION.md“Running locally” is currently manual.