Go to file
saravanakumardb1 ae7a888c6e docs(compliance): final roadmap update \u2014 100% ecosystem compliance reached
All 5 deferred TODOs (TODO-1 through TODO-5) are now closed:

  TODO-1 \u2014 fastgap BodyCanvas data extraction        \u2192 commit 593d02e
  TODO-2 \u2014 fastgap mobile 'info' semantic colour     \u2192 commit 5eeb5db
  TODO-3 \u2014 @bytelyst/mcp-client pluggable logger     \u2192 commit 8ffe3616
  TODO-4 \u2014 35 remaining ts-any sites (7 commits):
              mindlyst backend (18 sites)                  \u2192 8aab081
              chronomind backend (5 sites)                 \u2192 e66ab549
              peakpulse backend (1 site)                   \u2192 868c625
              flowmonk backend (1 site)                    \u2192 7358d57
              efforise client (4 sites)                    \u2192 835b254
              claw-cowork desktop (2 sites)                \u2192 2c8b8be
              platform-service (1 site)                    \u2192 9d405952
  TODO-5 \u2014 emoji scanner CLI/asset path exemptions   \u2192 commit b9a79879

Final ecosystem state (scripts/check-rule-violations.sh):

  Total findings:            2,548 \u2192 0   (-100%) \u2713
  web-hardcoded-hex:           465 \u2192 0           \u2713
  b7-emoji-in-code:            465 \u2192 0           \u2713
  b4-python-print:             351 \u2192 0           \u2713
  ts-any-type:                 249 \u2192 0           \u2713
  b4-console-log:               93 \u2192 0           \u2713
  b5-hardcoded-product-id:      13 \u2192 0           \u2713  (critical)
  b4-swift-print:                7 \u2192 0           \u2713

  Repos with 0 findings:      2/20 \u2192 20/20      \u2713

This commit:
  + Updates the status-snapshot table at top of AGENT_COMPLIANCE_ROADMAP.md
    to show 0 findings across every rule.
  + Marks Tier 5 entries T5.4 and T5.5 as fully complete (from partial)
    with bullet-by-bullet detail of how each follow-up was resolved.
  + Appends 20 new rows to the Progress Log table covering every commit
    from Tier 4 onward, including all 7 TODO-4 fix commits.
  + Refreshes reports/rule-violations-baseline.md to the 0-findings state.
2026-05-23 19:34:49 -07:00
__LOCAL_LLMs fix(admin-web): replace useAuth-getAccessToken with localStorage helper 2026-05-23 15:03:02 -07:00
.changeset chore(release): add changesets 2026-02-14 19:49:08 -08:00
.gitea/workflows ci: include eslint.config.js + workflow files in path triggers 2026-05-23 16:51:38 -07:00
.github feat(agent-docs): single-source-of-truth pattern for agent instructions 2026-05-23 11:55:19 -07:00
.husky chore(husky): run hooks from repo root and avoid npx 2026-02-14 12:55:41 -08:00
.windsurf/workflows chore(repos): exclude upstream claw-code-oss from agent-docs management 2026-05-23 13:28:34 -07:00
AI.dev fix(agent-docs): update AI.dev guides + script UX after single-source migration 2026-05-23 12:06:28 -07:00
dashboards fix(admin-web/eslint): hoist .cjs ignore to index-0 ignores block 2026-05-23 17:15:34 -07:00
docs docs(compliance): final roadmap update \u2014 100% ecosystem compliance reached 2026-05-23 19:34:49 -07:00
e2e feat(diagnostics): Phase 4 - automated triggers, crash sessions, session replay, profiling [4.1][4.2][4.3][4.4] 2026-03-03 12:18:58 -08:00
packages chore(packages): publish 4 outdated @bytelyst/* packages to Gitea 2026-05-23 19:16:14 -07:00
products chore(nomgap): finalize product deployment config 2026-05-04 16:29:20 -07:00
reports docs(compliance): final roadmap update \u2014 100% ecosystem compliance reached 2026-05-23 19:34:49 -07:00
scripts chore(packages): publish 4 outdated @bytelyst/* packages to Gitea 2026-05-23 19:16:14 -07:00
services fix(platform-service): TODO-4 \u2014 typed cast for request.auth augmentation 2026-05-23 19:29:26 -07:00
.aider.conf.yml feat(agent-docs): single-source-of-truth pattern for agent instructions 2026-05-23 11:55:19 -07:00
.dockerignore fix(docker): INFRA-gap-02 unblock full-stack docker compose up 2026-04-16 15:48:32 -07:00
.editorconfig chore(scaffold): initialize pnpm workspace with build tooling 2026-02-12 11:19:29 -08:00
.env.ecosystem.example docs(docker): update README, prompt.md, .env.ecosystem.example with audit fixes 2026-03-28 00:45:38 -07:00
.env.example feat(docker): INFRA-gap-01 wire cowork-service into compose stack 2026-04-16 13:07:11 -07:00
.gitattributes fix(local-llms): harden WSL setup and dashboard Ollama connectivity 2026-02-22 16:44:58 -08:00
.gitignore feat(scripts): ecosystem-wide rule violation scanner + baseline report 2026-05-23 14:02:14 -07:00
.npmrc Improve shared UI primitives 2026-05-08 20:56:05 -07:00
.nvmrc chore(scaffold): initialize pnpm workspace with build tooling 2026-02-12 11:19:29 -08:00
.prettierrc feat: add quick wins - prettier, bundle limits, coverage 2026-02-12 15:54:06 -08:00
AGENTS.md feat(agent-docs): single-source-of-truth pattern for agent instructions 2026-05-23 11:55:19 -07:00
docker-compose.ecosystem.yml chore(nomgap): finalize product deployment config 2026-05-04 16:29:20 -07:00
docker-compose.yml feat(admin-web): adopt trading web deployment model with docker-compose 2026-05-11 03:24:33 +00:00
eslint.config.js fix(eslint): also ignore .pnpmfile.cjs / .cjs (CommonJS by design) 2026-05-23 16:58:45 -07:00
MANUAL_CI.md docs: fix stale references to consolidated services and migrated dashboards 2026-02-28 03:06:44 -08:00
package.json chore: remove embedded Gitea package registry 2026-05-08 21:10:03 -07:00
pnpm-lock.yaml fix(platform-service): resolve 3 TS errors in /devops/info handler 2026-05-23 12:46:10 -07:00
pnpm-workspace.yaml feat(devops): encryption migration CLI with embedded product configs 2026-03-21 13:19:55 -07:00
quick-check.sh ci: disable GitHub Actions and add manual quality checks 2026-02-12 23:13:07 -08:00
README.md chore(docker): add interactive cleanup menu 2026-05-05 18:28:55 -07:00
tsconfig.base.json chore(scaffold): initialize pnpm workspace with build tooling 2026-02-12 11:19:29 -08:00
vitest.config.ts fix(ci): use forks pool in vitest to avoid tinypool kill EPERM on Node v25 2026-03-27 23:15:16 -07:00

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.md for 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
pnpm test

# Type-check all packages
pnpm typecheck

# Run a specific service in dev mode
pnpm --filter @lysnrai/platform-service dev

Prototype Deployment

For a single-host prototype, use Docker Compose with the repo root docker-compose.yml.

cp .env.example .env
./scripts/prototype-up.sh
pnpm prototype:self-test
pnpm docker:clean

See docs/PROTOTYPE_DEPLOYMENT.md for the required environment variables and day-to-day commands.

The prototype stack now includes a local Cosmos DB Emulator container, so the default .env.example values are wired for single-VM Docker use. Blob uploads are backed by local Azurite, prototype email delivery is backed by Mailpit, and the platform exposes prototype diagnostics at /api/health/dependencies, /api/self-test, and /api/self-test.json.

Current Capability Surface

  • Shared packages — 36 @bytelyst/* packages covering auth, config, API clients, storage, sync, telemetry, diagnostics, design tokens, SDK support, and testing.
  • Servicesplatform-service, extraction-service, mcp-server, and monitoring.
  • Dashboardsadmin-web, tracker-web, and ux-lab.
  • MCP/A2Aservices/mcp-server/ exposes tool routing, platform operator tools, extraction helpers, dev tools, product namespaces, and A2A orchestration pipelines.

Ecosystem Docs

Cross-product strategy and shared-contract documentation now lives under docs/ecosystem/.

Repository Structure

learning_ai_common_plat/
├── packages/                    # 36 shared libraries (@bytelyst/*)
│   ├── api-client/
│   ├── auth/
│   ├── auth-client/
│   ├── blob/ + blob-client/
│   ├── broadcast-client/ + survey-client/
│   ├── config/ + cosmos/
│   ├── dashboard-components/
│   ├── design-tokens/
│   ├── diagnostics-client/ + swift-diagnostics/
│   ├── events/ + fastify-core/
│   ├── extraction/ + llm/ + speech/
│   ├── feature-flag-client/ + feedback-client/ + kill-switch-client/
│   ├── kotlin-platform-sdk/ + swift-platform-sdk/ + react-native-platform-sdk/
│   ├── logger/ + monitoring/ + testing/
│   ├── offline-queue/ + platform-client/ + sync/ + telemetry-client/
│   └── datastore/ + storage/ + push/
├── dashboards/                  # Product-agnostic and internal web workspaces
│   ├── admin-web/               # Platform admin console (port 3001)
│   ├── tracker-web/             # Issue tracker + public roadmap (port 3003)
│   └── ux-lab/                  # Internal UX lab / MCP-assisted ops prototypes
├── services/                    # Platform services + tooling servers
│   ├── platform-service/        # Product-agnostic platform API (port 4003)
│   ├── extraction-service/      # LangExtract text extraction + Python sidecar (port 4005)
│   ├── mcp-server/              # MCP tool server + A2A orchestration
│   └── monitoring/              # Loki + Grafana config, health-check
└── docs/                        # Architecture docs, roadmap, analysis

Package Families

Family Representative Packages Purpose
Core platform @bytelyst/config, @bytelyst/cosmos, @bytelyst/errors, @bytelyst/logger, @bytelyst/testing Shared infrastructure for all services and dashboards
Auth & app clients @bytelyst/auth, @bytelyst/auth-client, @bytelyst/api-client, @bytelyst/platform-client, @bytelyst/react-auth Identity, auth flows, typed service clients
Diagnostics & telemetry @bytelyst/diagnostics-client, @bytelyst/telemetry-client, @bytelyst/swift-diagnostics Client diagnostics, event batching, crash/error capture
Storage & sync @bytelyst/blob, @bytelyst/blob-client, @bytelyst/datastore, @bytelyst/storage, @bytelyst/sync, @bytelyst/offline-queue Blob, local persistence, sync orchestration
Product experience @bytelyst/feature-flag-client, @bytelyst/feedback-client, @bytelyst/broadcast-client, @bytelyst/survey-client, @bytelyst/kill-switch-client Runtime platform features for product apps
AI & extraction @bytelyst/extraction, @bytelyst/llm, @bytelyst/speech Extraction tasks, LLM utilities, speech integration
UI & design @bytelyst/design-tokens, @bytelyst/dashboard-components Shared tokens and dashboard UI building blocks
Native SDKs @bytelyst/swift-platform-sdk, @bytelyst/kotlin-platform-sdk, @bytelyst/react-native-platform-sdk Cross-platform mobile/native platform access

Services and Dashboards

Surface Port Description
platform-service 4003 Product-agnostic Fastify platform API: auth, flags, telemetry, diagnostics, jobs, analytics, A/B testing, changelog, webhooks, marketplace, predictive analytics, and more
extraction-service 4005 LangExtract-based extraction service with task library and Python sidecar
mcp-server configurable MCP server exposing tool execution, platform tools, dev tools, extraction helpers, and A2A orchestration pipelines
monitoring Loki, Grafana, and health-check tooling
admin-web 3001 Platform admin console
tracker-web 3003 Tracker / public roadmap dashboard
ux-lab internal Internal UX lab and ops prototyping workspace

Note: billing-service (4002), growth-service (4001), and tracker-service (4004) were consolidated into platform-service (Feb 2026).

All services are product-agnostic — every Cosmos document includes a productId field, so a single deployment serves LysnrAI, MindLyst, or any future product.

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.

Portable Builds (Docker / CI)

file: refs break in Docker and CI because the sibling repo isn't available at the expected relative path. Use the tarball prep workflow to make builds self-contained:

# 1. Build all @bytelyst/* packages
pnpm build

# 2. Pack tarballs + rewrite a consumer's package.json
#    (run from the consumer repo)
../learning_ai_common_plat/scripts/prep-consumer.sh <target-dir>

# 3. Build (Docker, EAS, CI — no sibling repo access needed)
docker build <target-dir>

# 4. Restore original package.json
../learning_ai_common_plat/scripts/prep-consumer.sh <target-dir> --restore

Each consumer repo has a convenience wrapper: scripts/docker-prep.sh (or scripts/docker-prep-dashboards.sh in LysnrAI).

Consumer Repo Wrapper Script Targets
learning_voice_ai_agent scripts/docker-prep-dashboards.sh user-dashboard-web
learning_ai_clock scripts/docker-prep.sh web
learning_ai_fastgap scripts/docker-prep.sh root package.json
learning_multimodal_memory_agents scripts/docker-prep.sh mindlyst-native/web

Dashboards inside this repo (dashboards/admin-web, dashboards/tracker-web) use workspace:* refs and do NOT need this workflow — pnpm resolves them automatically.

Infrastructure Lint

Validates all 25 Dockerfiles across the 11 ByteLyst repos using hadolint, and any Helm charts using helm lint + helm template.

# Prerequisites
brew install hadolint helm

# Lint everything
./scripts/lint-infra.sh

# Dockerfiles only / Helm charts only
./scripts/lint-infra.sh --docker
./scripts/lint-infra.sh --helm

# Explicit paths
./scripts/lint-infra.sh path/to/Dockerfile path/to/chart-dir

Suppressed rules (false positives for this codebase): DL3045, DL3018, DL3008, DL3059, SC2155.

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 constants
  • MindLystTokens.kt — Kotlin object for KMP
  • MindLystTheme.swift — Swift structs for SwiftUI

Roadmap

See docs/ROADMAP.md for the full phased extraction plan.