Skip to content

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.

LocationRole 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_initbootstraps fresh worktrees; runs no src-nuxt install

A fresh checkout or worktree can run moon run polish:frontend-* and polish:dev after the standard bootstrap, with no manual per-app install.

  1. Decide the seam:
    • A — workspace member: add apps/determined/apps/polish/src-nuxt to root workspaces (hoists deps; matches how apps/determined/apps/* Nuxt apps are handled). Risk: Nuxt’s node_modules expectations under hoisting; MIGRATION.md deliberately kept it isolated because of the co-located Cargo workspace.
    • B — keep isolated: add cd apps/determined/apps/polish/src-nuxt && bun install to sdlc.yaml worktree_init (and document it for plain clones).
  2. Implement the chosen path.
  3. Verify a clean worktree runs polish:frontend-lint with no manual install.
LocationKindChange
package.json (root)modifyadd src-nuxt to workspaces (option A only)
sdlc.yamlmodifyadd src-nuxt install to worktree_init (option B only)
  • AC-1: on a fresh worktree, moon run polish:frontend-lint runs after the standard bootstrap with no manual bun install.
  • AC-2: bun run generate / polish:build still produce src-nuxt/.output under the chosen scheme.
  • Rust deps (cargo provisions those).
  • none.
  • 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.

← Back to Tasks