docs(roadmap): mark Sprint 1 (DB abstraction) complete, move to completed/

This commit is contained in:
saravanakumardb1 2026-03-02 02:23:09 -08:00
parent 2b6551ada6
commit fa9603732a

View File

@ -6,7 +6,7 @@
> **Repos scanned:** `learning_ai_common_plat` (platform-service, 23 packages) · `learning_voice_ai_agent` (LysnrAI) · `learning_multimodal_memory_agents` (MindLyst) · `learning_ai_clock` (ChronoMind) · `learning_ai_jarvis_jr` (JarvisJr) · `learning_ai_fastgap` (NomGap) · `learning_ai_peakpulse` (PeakPulse)
> **Goal:** Refactor the codebase so it continues to work on Azure today, but switching to any other cloud provider requires **minimum effort** (days, not weeks).
>
> **Status as of 2026-03-02 (post-parallel-agent scan):** Sprint 1 is **~96% complete** — 60 TypeScript repository files migrated across 7 repos (platform-service 32, ChronoMind 5, JarvisJr 5, NomGap 5, PeakPulse 2, MindLyst 5, LysnrAI 6) + 3 dashboards (admin-web, tracker-web, user-dashboard) + migrations/runner.ts + webhooks/routes.ts. All tests passing. **Remaining for Sprint 1:** MindLyst web (22 API route files still importing `@azure/cosmos` via `cosmos.ts`) + Python clients (8 files using `azure.cosmos`). Packages built for Sprints 24, 6. Sprint 5 (Speech) not started. Sprint 7 already done.
> **Status as of 2026-03-02:** Sprint 1 is **✅ 100% COMPLETE** — all 78+ repository files migrated across 7 repos (platform-service 32, ChronoMind 5, JarvisJr 5, NomGap 5, PeakPulse 2, MindLyst 5, LysnrAI 6) + 3 dashboards (admin-web, tracker-web, user-dashboard) + MindLyst web (21 API routes via `datastore.ts` Cosmos-proxy bridge) + Python clients (7 consumers via `datastore.py` abstraction) + migrations/runner.ts + webhooks/routes.ts. All tests passing. Packages built for Sprints 24, 6. Sprint 5 (Speech) not started. Sprint 7 already done.
---
@ -130,16 +130,16 @@ routes.ts ────────► │ collection.findMany({ │
## 3. Sprint Plan Overview
| Sprint | Package / Scope | Status | Effort | Files Changed (updated) | Risk |
| --------- | ------------------------------------------------- | ------------------- | --------------- | ------------------------------------------------------------------------------------------------------------------- | -------- |
| **1** | `@bytelyst/datastore` — DB abstraction | 🔶 ~96% DONE | 710 days | **78** repository files + 1 new package (60/78 TS repos done + 3 dashboards). MindLyst web (22) + Python (8) remain | Medium |
| **2** | `@bytelyst/storage` — Blob/Object abstraction | 🔶 PACKAGE BUILT | 2 days | 3 files + 1 new package (package done, consumer migration pending) | Low |
| **3** | `@bytelyst/llm` — LLM provider abstraction | 🔶 PACKAGE BUILT | 2 days | 4 files + 1 new package (package done, consumer migration pending) | Low |
| **4** | `@bytelyst/secrets` — Secrets manager abstraction | ✅ PACKAGE DONE | 1 day | `@bytelyst/config` `resolveKeyVaultSecrets()` refactored with provider dispatch | Very Low |
| **5** | `@bytelyst/speech` — Speech STT abstraction | ⚠️ PRECURSOR EXISTS | 34 days | 3 files + 1 new package. LysnrAI `stt_router.py` already routes Azure↔Whisper | Medium |
| **6** | `@bytelyst/push` — Push notification abstraction | 🔶 PACKAGE BUILT | 1 day | 1 file + 1 new package (package done, no push infra to migrate yet) | Very Low |
| **7** | Monitoring/Telemetry cleanup | ✅ ALREADY DONE | 0 days | Custom telemetry via `@bytelyst/telemetry-client`, Loki+Grafana in `services/monitoring/` | None |
| **Total** | | | **~1620 days** | ~90 files (~70 done, ~20 remaining) | |
| Sprint | Package / Scope | Status | Effort | Files Changed (updated) | Risk |
| --------- | ------------------------------------------------- | ------------------- | --------------- | -------------------------------------------------------------------------------------------------------------------- | -------- |
| **1** | `@bytelyst/datastore` — DB abstraction | ✅ DONE | 710 days | **78+** repository files + 1 new package (all TS repos + 3 dashboards + MindLyst web 21 routes + Python 7 consumers) | Low |
| **2** | `@bytelyst/storage` — Blob/Object abstraction | 🔶 PACKAGE BUILT | 2 days | 3 files + 1 new package (package done, consumer migration pending) | Low |
| **3** | `@bytelyst/llm` — LLM provider abstraction | 🔶 PACKAGE BUILT | 2 days | 4 files + 1 new package (package done, consumer migration pending) | Low |
| **4** | `@bytelyst/secrets` — Secrets manager abstraction | ✅ PACKAGE DONE | 1 day | `@bytelyst/config` `resolveKeyVaultSecrets()` refactored with provider dispatch | Very Low |
| **5** | `@bytelyst/speech` — Speech STT abstraction | ⚠️ PRECURSOR EXISTS | 34 days | 3 files + 1 new package. LysnrAI `stt_router.py` already routes Azure↔Whisper | Medium |
| **6** | `@bytelyst/push` — Push notification abstraction | 🔶 PACKAGE BUILT | 1 day | 1 file + 1 new package (package done, no push infra to migrate yet) | Very Low |
| **7** | Monitoring/Telemetry cleanup | ✅ ALREADY DONE | 0 days | Custom telemetry via `@bytelyst/telemetry-client`, Loki+Grafana in `services/monitoring/` | None |
| **Total** | | | **~1620 days** | ~90 files (Sprint 1 done, Sprints 26 consumer migration pending) | |
### Priority Order
@ -155,13 +155,13 @@ Sprint 5 (Speech) ──► Sprint 6 (Push) ──► Sprint 7 (Monitoring)
---
## 4. Sprint 1: Database Abstraction Layer 🔶 IN PROGRESS
## 4. Sprint 1: Database Abstraction Layer ✅ COMPLETE
**Package:** `@bytelyst/datastore`
**Effort:** 710 days (revised up from 57 — now 78 files vs original 44)
**This is the most important sprint — it eliminates 80% of cloud lock-in.**
> **Current state (2026-03-02):** `@bytelyst/datastore` package built with `CosmosDatastoreProvider` + `MemoryDatastoreProvider` (58 package tests). All **47 platform-service repository files** migrated from `getContainer()``getCollection()` (746 tests pass, zero `cosmos.js` imports remain in `modules/`). Remaining: 21 product-backend repos, 8 dashboard cosmos clients, 2 Python clients.
> **Current state (2026-03-02):** `@bytelyst/datastore` package built with `CosmosDatastoreProvider` + `MemoryDatastoreProvider` (58 package tests). All **47 platform-service repository files** migrated from `getContainer()``getCollection()` (746 tests pass). All product backends (ChronoMind, JarvisJr, NomGap, PeakPulse, MindLyst, LysnrAI) migrated. All 3 dashboards (admin-web, tracker-web, user-dashboard) migrated. MindLyst web: 21 API routes migrated via `datastore.ts` Cosmos-proxy bridge. Python clients: 7 consumers migrated via `src/cloud/datastore.py` abstraction. **Sprint 1 is 100% complete.**
### 4.1 Interface Design
@ -492,8 +492,8 @@ Migrate in batches, one module per commit. Each commit:
| 9 | NomGap backend: fasting-sessions, fasting-protocols, body-stages, social-fasting, meal-log, push-triggers | Product-specific | ✅ DONE |
| 10 | PeakPulse + MindLyst backends: peak-sessions, peak-routes, brains, memory, reflections, daily-briefs, streaks | Product-specific | ✅ DONE |
| 11 | LysnrAI backend + user-dashboard: transcripts, sessions, organizations, api-tokens, webhooks, themes, export + user-dashboard | Product-specific + dashboard | ✅ DONE |
| 12 | Dashboard cosmos clients (admin-web ✅, tracker-web ✅, MindLyst web ❌) | Direct `@azure/cosmos` | ⚠️ 1/3 |
| 13 | Python clients (desktop cosmos, backend cosmos) | `azure.cosmos` → abstracted | ❌ TODO |
| 12 | Dashboard cosmos clients (admin-web ✅, tracker-web ✅, MindLyst web ✅) | Direct `@azure/cosmos` | ✅ DONE |
| 13 | Python clients (desktop datastore.py + 7 consumers) | `azure.cosmos` → abstracted | ✅ DONE |
### 4.8 Handling Complex Queries