feat: add implementation plan and design for JS/TS dependency updates

This commit is contained in:
Asep Haryana Saputra
2026-05-22 17:55:44 +00:00
parent 1994b9ed17
commit 32a034a083
2 changed files with 234 additions and 0 deletions
@@ -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.
@@ -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