Detailed implementation roadmap for the Rich Features PRD with: Phase A (Sprint 14-16, ~15hr): Foundation A1: IndexedDB layer with idb — 9 object stores, compound indexes A2: v4 TypeScript interfaces — all data models A3: Route group (mission-control) — move existing dashboard A4: Route group (workspace) — sidebar + content layout A5: Sidebar — conversation list, time groups, search A6: Conversation view — message thread, input bar, streaming A7: Auto-title + context window usage bar A8: v3 → v4 migration from localStorage Phase B (Sprint 17-18, ~10hr): Quick Actions + Cmd+K B1-B6: 30 built-in actions, fuse.js command palette, launcher, custom editor, usage tracking, export/import Phase C (Sprint 19-20, ~9hr): Custom Agents C1-C5: 10 built-in agents, picker, full-screen editor, conversation wiring (welcome msg, chips, temp), export Phase D (Sprint 21-22, ~13hr): Model Router + Multi-Modal D1-D7: regex classifier, model defaults, auto-routing UI, rich input bar, file/voice/image processing, drag-drop Phase E (Sprint 23, ~7hr): Response Enhancements E1-E5: action bars, code-block copy, try-other-model, live metrics, rating with aggregation Phase F (Sprint 24-25, ~11hr): Scheduled Tasks F1-F7: cron-parser, CRUD, editor, browser runner, /api/system/exec with allowlist, notifications, templates Phase G (Sprint 26-28, ~13hr): Projects + Orchestration G1-G7: project CRUD, drag-to-project, system context, Cmd+P switcher, chain/race/vote modes Every task has: explicit file paths, step-by-step instructions, pass/fail exit criteria, verification commands, and commit templates. Dependency graph: A is foundation, B-F parallel after A, G needs A+B. |
||
|---|---|---|
| __LOCAL_LLMs | ||
| .changeset | ||
| .github | ||
| .husky | ||
| .windsurf/workflows | ||
| AI.dev/SKILLS | ||
| docs | ||
| packages | ||
| scripts | ||
| services | ||
| .aider.conf.yml | ||
| .clinerules | ||
| .cursorrules | ||
| .editorconfig | ||
| .env.example | ||
| .gitignore | ||
| .nvmrc | ||
| .prettierrc | ||
| .windsurfrules | ||
| AGENTS.md | ||
| CLAUDE.md | ||
| docker-compose.yml | ||
| eslint.config.js | ||
| MANUAL_CI.md | ||
| package.json | ||
| pnpm-lock.yaml | ||
| pnpm-workspace.yaml | ||
| quick-check.sh | ||
| README.md | ||
| tsconfig.base.json | ||
| vitest.config.ts | ||
ByteLyst Common Platform
Shared packages and microservices for ByteLyst ecosystem products.
⚠️ GitHub Actions Temporarily Disabled
CI/CD is currently disabled due to billing issues. Please run manual quality checks before merging:
- See MANUAL_CI.md for instructions
- Use
.windsurf/workflows/production-readiness.mdfor comprehensive checks
Quick Start
# Install dependencies
pnpm install
# Build all packages + services
pnpm build
# Quick quality check (5 min) - run before pushing!
./quick-check.sh
# Run all tests (165 total across packages + services)
pnpm test
# Type-check all packages
pnpm typecheck
# Run a specific service in dev mode
pnpm --filter @lysnrai/platform-service dev
Repository Structure
learning_ai_common_plat/
├── packages/ # Shared libraries (@bytelyst/*)
│ ├── errors/ # Typed HTTP service errors (400–429)
│ ├── cosmos/ # Azure Cosmos DB client + container registry
│ ├── config/ # Zod env loader + product identity
│ ├── auth/ # JWT, middleware, password hashing
│ ├── api-client/ # Configurable fetch wrapper
│ ├── react-auth/ # React auth context factory
│ └── design-tokens/ # Cross-platform tokens (JSON → CSS/TS/Kotlin/Swift)
├── services/ # Product-agnostic microservices
│ ├── platform-service/ # Auth, audit, flags, notifications, blob (port 4003)
│ ├── billing-service/ # Subscriptions, Stripe, usage, licenses (port 4002)
│ ├── growth-service/ # Invitations, referrals, promos (port 4001)
│ ├── tracker-service/ # Items, comments, votes, public roadmap (port 4004)
│ └── monitoring/ # Loki + Grafana config, health-check
└── docs/ # Architecture docs, roadmap, analysis
Shared Libraries
| Package | Description | Peer Dependencies |
|---|---|---|
@bytelyst/errors |
Typed HTTP service errors (400–429) | — |
@bytelyst/logger |
Structured logger factory for services/dashboards | — |
@bytelyst/cosmos |
Azure Cosmos DB client singleton + container registry | @azure/cosmos |
@bytelyst/blob |
Azure Blob Storage helpers + SAS URL generation | @azure/storage-blob |
@bytelyst/config |
Zod-based env config loader + product identity | zod |
@bytelyst/auth |
JWT utilities, auth middleware, password hashing | jose, bcryptjs |
@bytelyst/fastify-core |
Fastify service bootstrap (request-id, /health, errors) | fastify |
@bytelyst/api-client |
Configurable fetch wrapper with auth token injection | — |
@bytelyst/react-auth |
React auth context factory (typed provider + hook) | react |
@bytelyst/design-tokens |
Cross-platform design tokens (JSON → CSS/TS/Kotlin/Swift) | — |
@bytelyst/extraction |
Extraction service client + shared types | @bytelyst/api-client |
@bytelyst/testing |
Shared test helpers (Fastify inject, schema asserts) | vitest |
@bytelyst/monitoring |
Health-check aggregation utilities | — |
Shared Services
| Service | Port | Description | Tests |
|---|---|---|---|
platform-service |
4003 | Auth, audit, feature flags, notifications, blob storage | 55 |
billing-service |
4002 | Subscriptions, Stripe webhooks, usage tracking, licenses, plans | 32 |
growth-service |
4001 | Invitations, referrals, promo codes | 33 |
tracker-service |
4004 | Feature requests, bugs, tasks, public roadmap | 45 |
monitoring |
— | Loki + Grafana dashboards, health-check script | — |
All services are product-agnostic — every Cosmos document includes a productId field, so a single deployment serves LysnrAI, MindLyst, or any future product.
Quick Start
# Install dependencies
pnpm install
# Build all packages + services
pnpm build
# Quick quality check (5 min) - run before pushing!
./quick-check.sh
# Run all tests (165 total across packages + services)
pnpm test
# Type-check all packages
pnpm typecheck
# Run a specific service in dev mode
pnpm --filter @lysnrai/platform-service dev
Consuming Libraries from Product Repos
During development, use file: references in consumer package.json:
// From a Next.js dashboard at repo root (2 levels up):
"@bytelyst/errors": "file:../../learning_ai_common_plat/packages/errors"
// From MindLyst web (3 levels up — inside mindlyst-native/web/):
"@bytelyst/design-tokens": "file:../../../learning_ai_common_plat/packages/design-tokens"
All repos must be cloned side-by-side under the same parent directory.
Design Tokens
Generate platform-specific token files from the canonical JSON:
cd packages/design-tokens
pnpm generate
Outputs in packages/design-tokens/generated/:
tokens.css— CSS custom properties (--ml-*)tokens.ts— TypeScript constantsMindLystTokens.kt— Kotlin object for KMPMindLystTheme.swift— Swift structs for SwiftUI
Roadmap
See docs/ROADMAP.md for the full phased extraction plan.