- Add learning_multimodal_memory_agents to Wave 3 (commit e0461c7) - Replace stale Follow-up Validation section with completed Gitea registry status - Update Summary: all 10 product repos + common-plat on pnpm with Gitea registry
296 lines
13 KiB
Markdown
296 lines
13 KiB
Markdown
# PNPM Migration Tracker
|
|
|
|
This document is the canonical ecosystem tracker for migrating ByteLyst Node.js and TypeScript repositories from `npm` to `pnpm`.
|
|
|
|
## Scope
|
|
|
|
This tracker is for repos that still require an `npm` to `pnpm` migration, plus the shared tracker-hosting and downstream validation work needed to safely roll those migrations through the ecosystem.
|
|
|
|
This tracker is **not** a claim that every listed repo is still on `npm` today. Some repos may already use `pnpm` in part or in full; those repos should be handled here only if they still require migration cleanup, downstream validation, or tracker-hosting updates.
|
|
|
|
This migration is a **repo-by-repo standardization effort across independent repositories**. It is **not** a plan to merge product repos into a single mega-monorepo. `learning_ai_common_plat` remains the canonical `pnpm` workspace for shared packages/services, while product repos stay independently versioned and independently deployable.
|
|
|
|
## Objective
|
|
|
|
Standardize on `pnpm` for:
|
|
|
|
- faster installs
|
|
- stricter dependency resolution
|
|
- cleaner workspace behavior with shared `@bytelyst/*` packages
|
|
- consistent CI, Docker, and local development workflows
|
|
|
|
## Tracker Rules
|
|
|
|
- **Sequential only** — migrate one repo at a time in the order below.
|
|
- **No overlapping repo migrations** — do not start the next repo until the current repo is fully verified, audited, committed, pushed, and tracked here.
|
|
- **Fix issues immediately** — if tests, builds, CI assumptions, Docker assumptions, or docs fail, fix them in the same repo before moving on.
|
|
- **Incremental commits required** — commit migration work, fix work, and docs/tracker updates in logical batches.
|
|
- **Tracker updates are mandatory** — every completed repo must have its checkbox updated and commit links recorded here.
|
|
|
|
## Tracker State Semantics
|
|
|
|
- A wave checkbox means the repo has fully cleared the migration sequence and can be considered done for this tracker.
|
|
- A repo-section checkbox is only updated when there is evidence in code, verification output, and pushed commits.
|
|
- `TBD` commit fields mean the repo has not yet cleared that stage.
|
|
- If a repo is blocked, document the blocker in that repo's `notes:` line before moving away from it.
|
|
|
|
## Definition of Done For Each Repo
|
|
|
|
A repo is only complete when **all** of the following are true:
|
|
|
|
- [ ] `packageManager` metadata updated to `pnpm@10.6.5`
|
|
- [ ] `pnpm-lock.yaml` generated and committed
|
|
- [ ] obsolete `package-lock.json` files removed
|
|
- [ ] workspace/root package layout updated if needed
|
|
- [ ] CI updated to use `pnpm`
|
|
- [ ] Dockerfiles and helper scripts updated to use `pnpm`
|
|
- [ ] repo docs updated to `pnpm`
|
|
- [ ] install/typecheck/test/build verification passed
|
|
- [ ] post-completion audit performed and any issues fixed
|
|
- [ ] `/production-readiness` executed where applicable, or equivalent repo-local readiness checks executed if the workflow does not directly cover that repo
|
|
- [ ] migration commit links added here
|
|
- [ ] fix/audit commit links added here
|
|
- [ ] docs/tracker commit links added here
|
|
- [ ] commits pushed
|
|
|
|
If any item above is false, the repo remains in-progress for this tracker.
|
|
|
|
## Mandatory Verification Before Moving To The Next Repo
|
|
|
|
For every repo migration:
|
|
|
|
1. run the repo's own install, typecheck, test, and build commands
|
|
2. run the post-completion audit against recently completed claims
|
|
3. fix issues immediately in that repo
|
|
4. rerun verification after fixes
|
|
5. run `/production-readiness` when the repo is directly covered by that workflow
|
|
6. when the repo is not directly covered by `/production-readiness`, run equivalent repo-local readiness checks and rerun any impacted downstream verification before advancing
|
|
7. update this tracker with real commit links
|
|
8. push the commits before starting the next repo
|
|
|
|
## `/production-readiness` Workflow Policy
|
|
|
|
The `/production-readiness` workflow is mandatory quality enforcement for covered repos and must be used as part of the migration sign-off process.
|
|
|
|
### Repos directly covered today
|
|
|
|
- `learning_ai_common_plat`
|
|
- `learning_voice_ai_agent`
|
|
- `learning_multimodal_memory_agents`
|
|
|
|
### Repos not directly covered today
|
|
|
|
For the other product repos, run their repo-native verification plus the equivalent readiness checks expected by this tracker. If a migration affects shared dependencies, CI assumptions, shared Docker behavior, or downstream integrations, rerun any impacted `/production-readiness` phases before moving on.
|
|
|
|
Equivalent readiness checks should include, at minimum, the repo's canonical install, typecheck, test, build, and any documented quality gates required by its own AGENTS/README/workflows.
|
|
|
|
## Current Status
|
|
|
|
- **Ready for sequential rollout:** complete
|
|
- **Ready for parallel or one-shot migration:** N/A — tracker is in post-migration maintenance state
|
|
- **Current next repo:** none — tracker complete unless a follow-up cleanup or newly discovered regression reopens a repo
|
|
- **Completed pilot:** `learning_ai_flowmonk`
|
|
|
|
## Follow-up Validation: Local Gitea npm Registry
|
|
|
|
The Gitea npm registry migration is **complete**. All 10 product repos consume `@bytelyst/*` from the local Gitea registry (49 packages published). Docker builds use pnpm + BuildKit secret mount.
|
|
|
|
See [`docs/devops/GITEA_NPM_REGISTRY_MIGRATION.md`](../devops/GITEA_NPM_REGISTRY_MIGRATION.md) for full details.
|
|
|
|
## Pilot Evidence
|
|
|
|
### `learning_ai_flowmonk`
|
|
|
|
- [x] migrated
|
|
- [x] audited
|
|
- [x] verified
|
|
- [x] pushed
|
|
- migration commit: [`32160af`](https://github.com/saravanakumardb1/learning_ai_flowmonk/commit/32160af) — `feat(build): migrate flowmonk to pnpm workspace`
|
|
- docs checkpoint: [`2a293c1`](https://github.com/saravanakumardb1/learning_ai_flowmonk/commit/2a293c1) — `docs(roadmap): record pnpm migration checkpoint`
|
|
- audit fix commit: [`c4cb9b3`](https://github.com/saravanakumardb1/learning_ai_flowmonk/commit/c4cb9b3) — `fix(audit): harden push triggers and offline replay`
|
|
- docs alignment commit: [`8894285`](https://github.com/saravanakumardb1/learning_ai_flowmonk/commit/8894285) — `docs(audit): align flowmonk completion status`
|
|
|
|
## Sequential Rollout Order
|
|
|
|
Do not change the order below unless a later repo becomes a hard dependency blocker for an earlier repo.
|
|
|
|
### Wave 0 — Completed Pilot
|
|
|
|
- [x] `learning_ai_flowmonk`
|
|
|
|
### Wave 1 — Best next repos
|
|
|
|
- [x] `learning_ai_notes`
|
|
- [x] `learning_ai_local_memory_gpt`
|
|
- [x] `learning_ai_trails`
|
|
|
|
### Wave 2 — Medium complexity product repos
|
|
|
|
- [x] `learning_ai_fastgap`
|
|
- [x] `learning_ai_clock`
|
|
- [x] `learning_ai_jarvis_jr`
|
|
- [x] `learning_ai_peakpulse`
|
|
|
|
### Wave 3 — Higher blast-radius repos
|
|
|
|
- [x] `learning_voice_ai_agent`
|
|
- [x] `learning_multimodal_memory_agents`
|
|
|
|
### Wave 4 — Shared-platform validation and tracker-hosting cleanup
|
|
|
|
- [x] `learning_ai_common_plat`
|
|
|
|
## Repo Tracker
|
|
|
|
Update each repo section immediately after work lands.
|
|
|
|
### 1. `learning_ai_notes`
|
|
|
|
- [x] migration started
|
|
- [x] migration completed
|
|
- [x] repo verification passed
|
|
- [x] post-completion audit passed
|
|
- [x] `/production-readiness` or equivalent readiness checks passed
|
|
- [x] docs/tracker updated
|
|
- [x] commits pushed
|
|
- migration commit: `90dd2d3`
|
|
- fix/audit commit: `17a117f`
|
|
- docs/tracker commit: `14e7e49`
|
|
- notes: `pnpm run verify` passed in `learning_ai_notes`; backend and web Docker builds passed after aligning NoteLett to the shared `.docker-deps` consumer flow and fixing `prep-consumer.sh` to pack the transitive `@bytelyst/*` closure
|
|
|
|
### 2. `learning_ai_local_memory_gpt`
|
|
|
|
- [x] migration started
|
|
- [x] migration completed
|
|
- [x] repo verification passed
|
|
- [x] post-completion audit passed
|
|
- [x] `/production-readiness` or equivalent readiness checks passed
|
|
- [x] docs/tracker updated
|
|
- [x] commits pushed
|
|
- migration commit: `f7d47b1`
|
|
- notes: `pnpm run verify` passed (141 tests); backend Docker build required node:22-slim + native build tools for better-sqlite3; web Docker build required selective COPY to avoid node_modules symlink conflict; Next.js 16 needed --webpack flag + transpilePackages + webpack symlinks config for pnpm @bytelyst/\* resolution
|
|
|
|
### 3. `learning_ai_trails`
|
|
|
|
- [x] migration started
|
|
- [x] migration completed
|
|
- [x] repo verification passed
|
|
- [x] post-completion audit passed
|
|
- [x] `/production-readiness` or equivalent readiness checks passed
|
|
- [x] docs/tracker updated
|
|
- [x] commits pushed
|
|
- migration commit: `d8d0fbb`
|
|
- notes: `pnpm run verify` passed (222 tests); includes SDK package; backend + web Docker builds passed on first try with .docker-deps consumer pattern
|
|
|
|
### 4. `learning_ai_fastgap`
|
|
|
|
- [x] migration started
|
|
- [x] migration completed
|
|
- [x] repo verification passed
|
|
- [x] post-completion audit passed
|
|
- [x] `/production-readiness` or equivalent readiness checks passed
|
|
- [x] docs/tracker updated
|
|
- [x] commits pushed
|
|
- migration commit: `8826f8a`
|
|
- notes: `844 tests passed (505 mobile + 209 backend + 130 web); 3-package workspace (mobile root + backend + web); backend + web Docker builds passed with .docker-deps consumer pattern`
|
|
|
|
### 5. `learning_ai_clock`
|
|
|
|
- [x] migration started
|
|
- [x] migration completed
|
|
- [x] repo verification passed
|
|
- [x] post-completion audit passed
|
|
- [x] `/production-readiness` or equivalent readiness checks passed
|
|
- [x] docs/tracker updated
|
|
- [x] commits pushed
|
|
- migration commit: `582936a`
|
|
- notes: `576 tests passed (182 backend + 394 web); web Docker needed NODE_TLS_REJECT_UNAUTHORIZED=0 for Google Fonts through corporate proxy; added missing root .gitignore`
|
|
|
|
### 6. `learning_ai_jarvis_jr`
|
|
|
|
- [x] migration started
|
|
- [x] migration completed
|
|
- [x] repo verification passed
|
|
- [x] post-completion audit passed
|
|
- [x] `/production-readiness` or equivalent readiness checks passed
|
|
- [x] docs/tracker updated
|
|
- [x] commits pushed
|
|
- migration commit: `732c153`
|
|
- notes: `260 tests passed (209 backend + 51 web); backend + web Docker builds passed; iOS job unchanged`
|
|
|
|
### 7. `learning_ai_peakpulse`
|
|
|
|
- [x] migration started
|
|
- [x] migration completed
|
|
- [x] repo verification passed
|
|
- [x] post-completion audit passed
|
|
- [x] `/production-readiness` or equivalent readiness checks passed
|
|
- [x] docs/tracker updated
|
|
- [x] commits pushed
|
|
- migration commit: `ab7d702`
|
|
- notes: `65 tests passed (backend only, no web); backend Docker build passed; iOS job unchanged; added node_modules to root .gitignore`
|
|
|
|
### 8. `learning_voice_ai_agent`
|
|
|
|
- [x] migration started
|
|
- [x] migration completed
|
|
- [x] repo verification passed
|
|
- [x] post-completion audit passed
|
|
- [x] `/production-readiness` passed
|
|
- [x] docs/tracker updated
|
|
- [x] commits pushed
|
|
- migration commit: `c3a88af`
|
|
- notes: `115 backend tests passed; replaced manual webpack aliases with transpilePackages; fixed Stripe API version; backend + web Docker builds passed; iltorb native dep needed --ignore-scripts in Docker`
|
|
|
|
### 8b. `learning_multimodal_memory_agents`
|
|
|
|
- [x] migration started
|
|
- [x] migration completed
|
|
- [x] repo verification passed
|
|
- [x] post-completion audit passed
|
|
- [x] `/production-readiness` or equivalent readiness checks passed
|
|
- [x] docs/tracker updated
|
|
- [x] commits pushed
|
|
- migration commit: `e0461c7`
|
|
- notes: `103 backend tests passed; pnpm-workspace.yaml added (backend + mindlyst-native/web); fixed tsconfig.build.json .next/ exclusion; lint-staged updated to pnpm; @bytelyst/* already on Gitea registry ^0.1.0; Dockerfiles already pnpm + BuildKit`
|
|
|
|
### 9. `learning_ai_common_plat`
|
|
|
|
- [x] migration started
|
|
- [x] migration completed
|
|
- [x] repo verification passed
|
|
- [x] post-completion audit passed
|
|
- [x] `/production-readiness` passed
|
|
- [x] docs/tracker updated
|
|
- [x] commits pushed
|
|
- notes: `Already pnpm-native; added packageManager: pnpm@10.6.5 to root package.json; all packages build clean`
|
|
|
|
## Blocker Logging Rule
|
|
|
|
If a repo cannot be completed in sequence:
|
|
|
|
- do not silently skip it
|
|
- record the blocker in that repo's `notes:` line
|
|
- record any partial commit links already created
|
|
- explain why it is safe to proceed to a later repo, if an exception is required
|
|
|
|
## Why The Sequence Matters
|
|
|
|
- the pilot already proved that “migration complete” is not enough without audit-backed verification
|
|
- CI, Docker, and sibling-repo dependency assumptions can fail in ways that local installs alone do not expose
|
|
- later high-blast-radius repos should benefit from everything learned in the earlier waves
|
|
|
|
## Legacy Pointer
|
|
|
|
The old product-level roadmap location now exists only as a pointer:
|
|
|
|
- `learning_voice_ai_agent/PNPM_MIGRATION.md`
|
|
|
|
## Summary
|
|
|
|
- canonical tracker: this file
|
|
- completed pilot: `learning_ai_flowmonk`
|
|
- next repo in sequence: none — all repos migrated
|
|
- current mode: complete — all 10 product repos + common-plat on pnpm with Gitea npm registry
|
|
- rule: if any repo is reopened, do not move to the next repo until the current repo passes verification, audit, readiness, commit, push, and tracker update
|