diff --git a/docs/superpowers/plans/2026-05-22-js-ts-dependency-update.md b/docs/superpowers/plans/2026-05-22-js-ts-dependency-update.md new file mode 100644 index 0000000..2d0946e --- /dev/null +++ b/docs/superpowers/plans/2026-05-22-js-ts-dependency-update.md @@ -0,0 +1,199 @@ +# JS/TS Dependency Update Implementation Plan + +> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. + +**Goal:** Update all JavaScript and TypeScript dependencies in the Bun workspace with npm-check-updates, then restore typecheck/build compatibility with minimal refactors. + +**Architecture:** This is a dependency maintenance change across the existing Bun + Moon monorepo. Version ranges are updated in package manifests, the Bun lockfile is regenerated, and any source/config fixes are limited to compatibility changes required by updated packages. + +**Tech Stack:** Bun workspaces, Moon, TypeScript, React/Vite, Elysia, Drizzle, npm-check-updates. + +--- + +## File Structure + +- Modify: `package.json` — root workspace dev dependencies and scripts. +- Modify: `apps/api/package.json` — API runtime and dev dependencies. +- Modify: `apps/web/package.json` — web runtime and dev dependencies. +- Modify: `bun.lock` — regenerated dependency lockfile. +- Modify as needed: TypeScript source/config files that fail after dependency upgrades. Only touch files referenced by verification failures. +- Do not modify: `Machine_Learning/requirements.txt` or Python/ML files. + +--- + +### Task 1: Update JS/TS dependency manifests and lockfile + +**Files:** +- Modify: `package.json` +- Modify: `apps/api/package.json` +- Modify: `apps/web/package.json` +- Modify: `bun.lock` + +- [ ] **Step 1: Confirm clean workspace before dependency changes** + +Run: + +```bash +git status --short +``` + +Expected: no output, or only known spec/plan docs from this workflow. If there are unrelated user changes, stop and ask before continuing. + +- [ ] **Step 2: Run npm-check-updates for all workspace manifests** + +Run: + +```bash +bunx npm-check-updates -u --root --workspaces +``` + +Expected: `package.json`, `apps/api/package.json`, and `apps/web/package.json` dependency ranges are updated where newer versions exist. + +- [ ] **Step 3: Regenerate Bun lockfile** + +Run: + +```bash +bun install +``` + +Expected: command exits successfully and updates `bun.lock` to match the new dependency ranges. + +- [ ] **Step 4: Inspect dependency diff** + +Run: + +```bash +git diff -- package.json apps/api/package.json apps/web/package.json bun.lock +``` + +Expected: only JS/TS dependency range and lockfile changes appear. + +--- + +### Task 2: Run typecheck and apply minimal compatibility fixes + +**Files:** +- Modify as needed: files reported by `bun run typecheck` + +- [ ] **Step 1: Run workspace typecheck** + +Run: + +```bash +bun run typecheck +``` + +Expected: PASS. If it fails, the output identifies TypeScript errors introduced or exposed by dependency updates. + +- [ ] **Step 2: Fix only typecheck failures caused by updated JS/TS dependencies** + +Use the error output to edit only the files named by TypeScript. Examples of allowed fixes: + +```ts +// Allowed: update imports, changed API call signatures, or stricter types required by new package versions. +``` + +Do not add features, redesign UI, change Python files, or refactor unrelated code. + +- [ ] **Step 3: Rerun typecheck after fixes** + +Run: + +```bash +bun run typecheck +``` + +Expected: PASS. + +--- + +### Task 3: Run production build and apply minimal compatibility fixes + +**Files:** +- Modify as needed: files reported by `bun run build` + +- [ ] **Step 1: Run workspace production build** + +Run: + +```bash +bun run build +``` + +Expected: PASS. If it fails, the output identifies build-time errors introduced or exposed by dependency updates. + +- [ ] **Step 2: Fix only build failures caused by updated JS/TS dependencies** + +Use the build output to edit only the affected files. Examples of allowed fixes: + +```ts +// Allowed: update Vite config, React Router APIs, Elysia APIs, Drizzle config, or TypeScript settings if required by upgraded packages. +``` + +Do not change application behavior beyond what is required for compatibility. + +- [ ] **Step 3: Rerun production build after fixes** + +Run: + +```bash +bun run build +``` + +Expected: PASS. + +--- + +### Task 4: Final verification and review + +**Files:** +- Review: full git diff + +- [ ] **Step 1: Confirm Python/ML dependencies were not touched** + +Run: + +```bash +git diff -- Machine_Learning/requirements.txt +``` + +Expected: no output. + +- [ ] **Step 2: Review full diff** + +Run: + +```bash +git diff --stat && git diff -- package.json apps/api/package.json apps/web/package.json +``` + +Expected: dependency updates are present; any source/config changes are minimal and directly tied to verification failures. + +- [ ] **Step 3: Run final verification commands** + +Run: + +```bash +bun run typecheck && bun run build +``` + +Expected: both commands pass. + +- [ ] **Step 4: Report result** + +Summarize: + +```text +Updated JS/TS dependencies with ncu, regenerated bun.lock, applied any required compatibility fixes, and verified with bun run typecheck and bun run build. +``` + +Do not claim completion unless the final verification command passed. + +--- + +## Self-Review + +- Spec coverage: The plan updates only JS/TS manifests, regenerates `bun.lock`, allows minimal compatibility refactors, and verifies with `bun run typecheck` and `bun run build`. +- Placeholder scan: No TODO/TBD placeholders remain. +- Scope check: Python/ML dependencies are explicitly out of scope and verified unchanged. diff --git a/docs/superpowers/specs/2026-05-22-js-ts-dependency-update-design.md b/docs/superpowers/specs/2026-05-22-js-ts-dependency-update-design.md new file mode 100644 index 0000000..6702220 --- /dev/null +++ b/docs/superpowers/specs/2026-05-22-js-ts-dependency-update-design.md @@ -0,0 +1,35 @@ +# JS/TS Dependency Update Design + +## Scope + +Update JavaScript and TypeScript dependencies only. The affected manifests are: + +- `package.json` +- `apps/api/package.json` +- `apps/web/package.json` + +Do not change `Machine_Learning/requirements.txt` or the Python/ML workflow. + +## Approach + +Use `ncu -u` across the Bun workspace to update dependency version ranges in all JS/TS package manifests. Regenerate `bun.lock` with `bun install` so the lockfile matches the updated manifests. + +## Refactor policy + +After dependency installation, run workspace verification commands. If breaking changes appear, make the smallest code or config changes needed to restore compatibility. Avoid unrelated refactors and avoid adding new features. + +## Verification + +Run: + +- `bun run typecheck` +- `bun run build` + +If either command fails due to dependency updates, fix the underlying compatibility issue and rerun the relevant verification command. + +## Out of scope + +- Python dependency updates +- ML pipeline changes +- UI redesigns or feature additions +- Database schema changes unless a dependency update requires a generated type/config compatibility fix