diff --git a/docs/BEST_PRACTICES/MOBILE_APPS/REACT_NATIVE_PLATFORM_SDK.md b/docs/BEST_PRACTICES/MOBILE_APPS/REACT_NATIVE_PLATFORM_SDK.md index 9d6a2049..0f631bd1 100644 --- a/docs/BEST_PRACTICES/MOBILE_APPS/REACT_NATIVE_PLATFORM_SDK.md +++ b/docs/BEST_PRACTICES/MOBILE_APPS/REACT_NATIVE_PLATFORM_SDK.md @@ -62,8 +62,8 @@ NomGap demonstrates the correct pattern for consuming shared packages: | **Offline queue** | `src/lib/offline-queue.ts` | 124 | `@bytelyst/offline-queue` | | **API client** | `src/api/client.ts` | 116 | Already have `@bytelyst/api-client` (server-side); need RN-safe variant or merge | | **API config** | `src/api/config.ts` | 18 | Stays app-specific (reads Expo env vars) | -| **Kill switch** | — | 0 | `@bytelyst/kill-switch-client` (not yet implemented) | -| **Blob upload** | — | 0 | `@bytelyst/blob-client` (not yet implemented) | +| **Kill switch** | — | 0 | `@bytelyst/kill-switch-client` ✅ implemented | +| **Blob upload** | — | 0 | `@bytelyst/blob-client` ✅ implemented | | **License** | — | 0 | `@bytelyst/license-client` (not yet implemented) | | **Biometric** | — | 0 | Uses `expo-local-authentication` directly (no shared pkg needed) | @@ -264,11 +264,11 @@ export function createBlobClient(config: BlobClientConfig): BlobClient; | ------------------------------- | --------- | ---------------------------------------------- | | `@bytelyst/auth-client` | ✅ Exists | NomGap, ChronoMind web, MindLyst web | | `@bytelyst/telemetry-client` | ✅ Exists | NomGap, ChronoMind web, LysnrAI user-dashboard | -| `@bytelyst/feature-flag-client` | 🔲 New | NomGap, all web apps | -| `@bytelyst/kill-switch-client` | 🔲 New | NomGap, all web apps | -| `@bytelyst/platform-client` | 🔲 New | NomGap, ChronoMind web | -| `@bytelyst/offline-queue` | 🔲 New | NomGap | -| `@bytelyst/blob-client` | 🔲 New | NomGap, future web uploads | +| `@bytelyst/feature-flag-client` | ✅ Done | NomGap, all web apps | +| `@bytelyst/kill-switch-client` | ✅ Done | NomGap, all web apps | +| `@bytelyst/platform-client` | ✅ Done | NomGap, ChronoMind web | +| `@bytelyst/offline-queue` | ✅ Done | NomGap | +| `@bytelyst/blob-client` | ✅ Done | NomGap, future web uploads | | `@bytelyst/license-client` | 🔲 Future | LysnrAI web (if needed) | ### Server-Side Packages (Node.js / Fastify) @@ -353,10 +353,10 @@ NomGap uses `file:` refs to `@bytelyst/*` packages. These break in EAS Build and | Secure storage | `BLKeychain` | `BLSecureStore` | Storage adapter pattern | | Auth | `BLAuthClient` | `BLAuthClient` | `@bytelyst/auth-client` ✅ | | Telemetry | `BLTelemetryClient` | `BLTelemetryClient` | `@bytelyst/telemetry-client` ✅ | -| Feature flags | `BLFeatureFlagClient` | `BLFeatureFlagClient` | `@bytelyst/feature-flag-client` 🔲 | -| Sync engine | `BLSyncEngine` | `BLSyncEngine` | `@bytelyst/offline-queue` 🔲 | -| Blob upload | `BLBlobClient` | `BLBlobClient` | `@bytelyst/blob-client` 🔲 | -| Kill switch | `BLKillSwitchClient` | `BLKillSwitchClient` | `@bytelyst/kill-switch-client` 🔲 | +| Feature flags | `BLFeatureFlagClient` | `BLFeatureFlagClient` | `@bytelyst/feature-flag-client` ✅ | +| Sync engine | `BLSyncEngine` | `BLSyncEngine` | `@bytelyst/offline-queue` ✅ | +| Blob upload | `BLBlobClient` | `BLBlobClient` | `@bytelyst/blob-client` ✅ | +| Kill switch | `BLKillSwitchClient` | `BLKillSwitchClient` | `@bytelyst/kill-switch-client` ✅ | | License | `BLLicenseClient` | `BLLicenseClient` | `@bytelyst/license-client` (future) | | Biometric | `BLBiometricAuth` | `BLBiometricAuth` | expo-local-authentication (native) | | Crash report | `BLCrashReporter` | `BLCrashReporter` | Sentry/Expo Updates (native) | diff --git a/docs/BEST_PRACTICES/PLATFORM_PLAYBOOK.md b/docs/BEST_PRACTICES/PLATFORM_PLAYBOOK.md index 7a5fe31e..f2a31afe 100644 --- a/docs/BEST_PRACTICES/PLATFORM_PLAYBOOK.md +++ b/docs/BEST_PRACTICES/PLATFORM_PLAYBOOK.md @@ -2,7 +2,7 @@ > **For:** Founders, engineers, and AI coding agents building products on the ByteLyst shared platform. > -> **Last updated:** 2026-03-01 · **Ecosystem:** 6 products, 20 shared packages, 25 platform modules + 5 product backends, 1200+ service tests. +> **Last updated:** 2026-03-01 · **Ecosystem:** 6 products, 21 shared packages, 25 platform modules + 5 product backends, 1400+ service tests. --- @@ -57,7 +57,7 @@ The ByteLyst platform follows a **"build once, ship five"** model: ## 2. What You Get for Free -### 2.1 Shared Packages (20) +### 2.1 Shared Packages (21) Every package is `npm install`-able via `file:` refs to the sibling common-plat repo. @@ -90,6 +90,7 @@ Every package is `npm install`-able via `file:` refs to the sibling common-plat | **@bytelyst/react-auth** | `createAuthContext()` → typed Provider + useAuth hook | Wrap your app | | **@bytelyst/telemetry-client** | Browser/RN telemetry SDK (queue, flush, beacon) | `trackEvent()` | | **@bytelyst/design-tokens** | JSON → CSS/TS/Kotlin/Swift token generator | Your color overrides | +| **@bytelyst/blob-client** | SAS URL upload/download via platform-service blob endpoints | Container + file data | ### 2.2 Platform Service Modules (25 — product-agnostic) @@ -113,11 +114,12 @@ Product-specific modules now live in each product repo's `backend/` directory. T | Product | Port | Modules | Tests | | -------------- | ---- | ----------------------------------------------------------------------------------------- | ----- | -| **PeakPulse** | 4010 | peak-sessions, peak-routes | 59 | -| **ChronoMind** | 4011 | timers, routines, shared-timers, households, webhooks | 198 | +| **PeakPulse** | 4010 | peak-sessions, peak-routes | 32 | +| **ChronoMind** | 4011 | timers, routines, shared-timers, households, webhooks | 174 | | **JarvisJr** | 4012 | jarvis-agents, jarvis-sessions, jarvis-memory, jarvis-teams, marketplace | 198 | | **NomGap** | 4013 | fasting-sessions, fasting-protocols, body-stages, social-fasting, meal-log, push-triggers | 152 | | **MindLyst** | 4014 | brains, memory, reflections, daily-briefs, streaks | 59 | +| **LysnrAI** | 8000 | _(Python FastAPI backend — kept as-is, not migrated to Fastify)_ | 53 | Each backend uses: @@ -638,13 +640,33 @@ web/e2e/ ### Current Test Counts (for reference) -| Repo | Tests | Test Files | -| ------------------ | ----- | ---------- | -| Platform-service | 1,141 | 84 | -| ChronoMind web | 394 | 17 | -| NomGap | 430 | 15 | -| ChronoMind iOS | 129 | 8 | -| ChronoMind Android | 30 | — | +**Platform (common-plat):** + +| Repo | Tests | Test Files | +| ---------------- | ----- | ---------- | +| Platform-service | 766 | 66 | +| Shared packages | ~120 | 21 | + +**Product backends (Fastify):** + +| Repo | Tests | Port | +| ------------------ | ----- | ---- | +| JarvisJr backend | 198 | 4012 | +| ChronoMind backend | 174 | 4011 | +| NomGap backend | 152 | 4013 | +| MindLyst backend | 59 | 4014 | +| PeakPulse backend | 32 | 4010 | +| LysnrAI backend | 53 | 8000 | + +**Product frontends:** + +| Repo | Tests | Framework | +| ------------------ | ----- | --------- | +| NomGap (RN) | 430 | Vitest | +| ChronoMind web | 394 | Vitest | +| JarvisJr web | 32 | Vitest | +| ChronoMind iOS | 129 | XCTest | +| ChronoMind Android | 30 | JUnit5 | ---