saravanakumardb1
08661bbd97
feat(backend-config): create @bytelyst/backend-config package with shared Zod schema
...
- baseBackendConfigSchema: PORT, HOST, NODE_ENV, CORS_ORIGIN, SERVICE_NAME,
DB_PROVIDER, COSMOS_*, JWT_SECRET, PLATFORM_JWKS_URL
- parseBackendConfig() helper for env parsing
- Products extend via baseBackendConfigSchema.extend({...})
- 8 tests passing
2026-03-20 07:51:22 -07:00
saravanakumardb1
f61a1f0b04
feat(fastify-auth): create @bytelyst/fastify-auth package with JWT auth + request context
...
- createAuthMiddleware(): RS256 JWKS + HS256 fallback (parameterized)
- createRequestContext(): productId validation + getUserId()
- Fastify request type augmentation for jwtPayload
- 15 tests passing
2026-03-20 07:30:53 -07:00
saravanakumardb1
0f299231cc
feat(platform-service): declarative YAML module loader (4.4) — 34 tests
...
New files:
- src/lib/declarative-schema.ts — YAML schema + Zod validation
- ModuleSchema, FieldSchema, EndpointSchema
- fieldToZodSchema, buildCreateSchema, buildUpdateSchema, defaultEndpoints
- src/lib/declarative-loader.ts — runtime route generator
- parseModuleYaml, registerModuleRoutes, loadDeclarativeModules
- MemoryStore with filtering, sorting, pagination
- Auth enforcement (none/user/admin), custom endpoint support
- src/lib/declarative-loader.test.ts — 34 tests
- Schema validation, field conversion, endpoint generation
- MemoryStore CRUD, route integration with full lifecycle
Dependency: yaml (npm)
2026-03-19 21:16:58 -07:00
saravanakumardb1
be03efa111
feat(shared-packages): add 9 @bytelyst/* client packages with 100% API coverage
...
Packages added:
- @bytelyst/referral-client — referral API client + share helpers
- @bytelyst/subscription-client — subscription/plan API client + cache
- @bytelyst/celebrations — milestone triggers, confetti, positive messages
- @bytelyst/gentle-notifications — ND-friendly messaging, forbidden phrases
- @bytelyst/accessibility — VoiceOver/TalkBack label generators
- @bytelyst/quick-actions — progressive disclosure, smart defaults
- @bytelyst/time-references — familiar duration references
- @bytelyst/org-client — org/workspace/membership/license API client
- @bytelyst/marketplace-client — listing/review/install API client
All packages: pure TS, ESM, globalThis.fetch, no Node.js deps.
99 Vitest tests across 9 packages, 79/79 public methods covered.
Review fixes applied:
- time-references: fix module-level mutable state leak + add clearCustomReferences()
- accessibility: fix parameter reassignment in formatDurationForA11y/numberToWords
- subscription-client: fix flaky daysRemaining test (ms boundary race)
2026-03-19 13:10:09 -07:00
root
885ee2d504
feat(events): add durable event bus worker path
2026-03-14 16:02:40 +00:00
root
2b4fccb744
feat(queue): add durable worker runtime and extraction integration
2026-03-14 06:25:10 +00:00
root
db9ae4a573
feat(platform-service): add smtp email delivery and postal setup
2026-03-14 05:52:28 +00:00
root
19b58b3ea0
Fix prototype service runtime dependencies
2026-03-14 05:32:21 +00:00
saravanakumardb1
4ca9b73d75
fix(platform): build react-native-platform-sdk + fix admin-web typecheck errors
...
- react-native-platform-sdk: add tsconfig.json + 13 source files (core, auth, telemetry, feature-flags, kill-switch, broadcasts, surveys)
- react-native-platform-sdk: React hooks + providers wrapping platform-service APIs via fetch
- admin-web: fix ThemeEditor.tsx + themes/active/route.ts lysnrai token type access
- tracker-web: product-context import path fix (pre-existing)
2026-03-12 16:36:13 -07:00
saravanakumardb1
f4b9124065
feat(auth): add Phase 5C-5E endpoints + SDK methods — TOTP secret, push approvals, QR auth
...
- GET /auth/mfa/totp/secret — retrieve decrypted TOTP secret for auth app
- POST /auth/mfa/push/create, GET /pending, POST /:id/respond, GET /:id/status
- POST /auth/qr/create, POST /auth/qr/confirm, GET /auth/qr/:id/status
- Kotlin SDK: getTotpSecret, getPendingApprovals, respondToApproval, confirmQrLogin
- Swift SDK: getTotpSecret, getPendingApprovals, respondToApproval, confirmQrLogin
- All 53 auth tests passing
2026-03-12 15:01:51 -07:00
saravanakumardb1
07d698e700
feat(packages): add @bytelyst/event-store, @bytelyst/fastify-sse, @bytelyst/webhook-dispatch — reusable event infrastructure for product backends
2026-03-10 18:37:01 -07:00
saravanakumardb1
9a298d50ef
fix(mcp-server): add missing jose + @fastify/cors deps; use ServiceError subclasses for 401/403; remove swagger option that crashed startup; add AbortSignal.timeout to platformFetch
2026-03-05 12:06:54 -08:00
saravanakumardb1
359d6e18a5
feat: Platform Acceleration + A/B Testing Framework
...
Platform Acceleration Phase 1:
- @bytelyst/sync package: Offline-first sync engine with conflict resolution
- Storage adapters: LocalStorage, InMemory, MMKV
- Deduplication, retry with backoff, auto-flush on reconnect
- 12 comprehensive tests
- @bytelyst/dashboard-components package: Shared React components
- ErrorPage, NotFoundPage, LoadingSpinner, LoadingSkeleton, EmptyState, PageHeader
- Theme-aware with CSS custom properties
A/B Testing Framework (Complete):
- Admin UI at /ops/ab-testing with experiments list, variant performance, AI suggestions
- Sidebar navigation with Beaker icon
- 40 tests passing in ab-testing module
All 909 platform-service tests pass.
2026-03-03 19:47:47 -08:00
saravanakumardb1
6e0b6c33c9
test(admin-web): Add Playwright E2E tests for broadcasts and surveys
...
- Broadcasts: list, create, target, clone, pause/resume, metrics, delete
- Surveys: list, create with NPS/questions, conditional logic, activate/pause
- Integration: navigation, targeting, incentives, export
2026-03-03 08:31:31 -08:00
saravanakumardb1
10e252617b
feat(packages): fix test assertions for x-request-id header compatibility
...
- Update kill-switch-client and feature-flag-client tests to use
expect.objectContaining for headers to handle x-request-id
- Move React Native SDK roadmap to completed/
Total: 44 client-side package tests passing
2026-03-02 09:08:45 -08:00
saravanakumardb1
fc1fef9c70
refactor(dashboards): migrate admin-web to @bytelyst/datastore
2026-03-02 01:49:41 -08:00
saravanakumardb1
4d126cb051
feat(platform-service): migrate 6 repositories to @bytelyst/datastore (flags, settings, comments, votes, products, themes) — 756/756 tests pass
2026-03-02 00:51:03 -08:00
saravanakumardb1
dfa5eb73fa
feat(packages): add cloud-agnostic abstraction packages — datastore, storage, llm, push + refactor secrets (58 tests)
2026-03-02 00:43:06 -08:00
saravanakumardb1
b33d3cf2b3
feat(platform): add webhook subscriptions module, DB migration runner, Swagger UI — complete 23/25 roadmap items
2026-03-01 23:38:48 -08:00
saravanakumardb1
91c48a7bc7
feat(sdk): add kotlin-platform-sdk (13 components) + 4 new TS client packages (32 tests)
2026-03-01 18:15:57 -08:00
saravanakumardb1
da165a589a
refactor(dashboards): wire @bytelyst/telemetry-client into admin-web + tracker-web, add onInit + baseUrl to react-auth
2026-02-28 11:27:57 -08:00
saravanakumardb1
b400c76c0a
feat(packages): add @bytelyst/auth-client + telemetry-client, extend react-auth lifecycle
...
- @bytelyst/auth-client: browser/RN-safe auth API wrapper (17 tests)
- @bytelyst/telemetry-client: shared telemetry with configurable transport (11 tests)
- @bytelyst/react-auth: add register, forgotPw, changePw, deleteAccount, token refresh (10 tests)
- eslint.config: add missing browser globals
2026-02-28 04:49:46 -08:00
saravanakumardb1
772f428967
feat(platform): add P0 foundational modules — event bus, scheduled jobs, password reset, email verification, status page
2026-02-28 02:29:08 -08:00
saravanakumardb1
2d54795c30
feat(dashboards): migrate admin + tracker dashboards to common-plat as product-agnostic
...
- Copy admin-dashboard-web → dashboards/admin-web
- Copy tracker-dashboard-web → dashboards/tracker-web
- Update pnpm-workspace.yaml to include dashboards/*
- Replace file: refs with workspace:* for @bytelyst/* packages
- Replace all hardcoded LysnrAI/lysnn.com branding with generic platform refs
- Make telemetry use NEXT_PUBLIC_PRODUCT_ID / PRODUCT_ID env vars
- Update mock credentials, seed data, invitation codes, placeholders
- Update READMEs, e2e tests, unit tests for product-agnostic content
- Both dashboards pass tsc --noEmit clean
2026-02-28 02:17:35 -08:00
saravanakumardb1
7ae92da16e
feat(local-llm): Phase B quick actions + command palette (B1-B6)
...
- add fuse.js dependency and command palette modal (Cmd+K)
- add built-in quick actions library (30 templates across categories)
- add quick action CRUD + seeding + import/export helpers in db layer
- seed quick actions on workspace load and list top actions in sidebar
- implement quick action launcher -> creates preconfigured conversation
- add custom quick action editor modal for creating/editing actions
- wire command palette system actions and conversation navigation
- support passing QA template into conversation input via query param
2026-02-20 00:19:17 -08:00
saravanakumardb1
e17bb311c9
feat(local-llm): Phase A foundation (A1-A8) workspace + indexeddb
...
- add idb dependency and create typed db layer (conversations/messages/agents/etc)
- extend app/lib/types.ts with v4 workspace interfaces
- move existing dashboard to /mission-control route group
- create / workspace route group with sidebar shell and conversation pages
- implement conversation list grouping + search in sidebar
- implement conversation view with streaming via /api/ollama/chat
- add context bar and token/context utilities
- add /api/ollama/title endpoint for auto-title generation
- add v3->v4 migration utility (llm-inference-log + llm-chat-* to indexeddb)
- wire migration in workspace layout and cmd+/ sidebar toggle
Implements roadmap Phase A tasks A1-A8.
2026-02-20 00:11:27 -08:00
saravanakumardb1
2e5b4de0c4
feat(config): add Azure Key Vault secret resolution with env fallback
2026-02-14 22:15:02 -08:00
saravanakumardb1
29fc8124e4
refactor: merge tracker-service into platform-service
...
Phase 3 of service consolidation (5→2 services).
Moved modules:
- items (16 tests)
- comments (6 tests)
- votes (5 tests)
- public (16 tests) — rate-limited, no auth required
Changes:
- Copied 4 modules from tracker-service
- Added DEFAULT_PRODUCT_ID alias in product-config.ts (Gap 1)
- Created src/lib/auth.ts re-exporting extractAuth from @bytelyst/auth (Gap 2)
- Added @bytelyst/auth and @fastify/rate-limit to package.json (Gap 2)
- Registered itemRoutes, commentRoutes, voteRoutes, publicRoutes in server.ts
- Public routes at top level (no auth scope)
- Removed tracker-service directory
Tests: 158 passing (115 + 43 from tracker = 158) ✅
Build: clean ✅
Service consolidation Phases 1-3 complete:
- growth-service: merged ✅
- billing-service: merged ✅
- tracker-service: merged ✅
Remaining: 2 services (platform-service + extraction-service)
2026-02-14 21:34:21 -08:00
saravanakumardb1
f13c676139
refactor: merge billing-service into platform-service
...
Phase 2 of service consolidation (5→2 services).
Moved modules:
- subscriptions (9 tests)
- usage (7 tests)
- plans (9 tests)
- licenses (7 tests)
- stripe (0 tests — webhook signature verified at runtime)
Changes:
- Copied 5 modules + stripe.ts lib from billing-service
- Added billing env vars to config schema (Stripe, internal key, etc.)
- Scoped billing routes with internal key auth guard (Gap 3)
- When BILLING_INTERNAL_KEY is set, billing routes require x-internal-key header
- When unset, billing routes are open (dev mode)
- Stripe routes always outside scope (own webhook signature check)
- Removed billing-service directory
Tests: 115 passing (83 + 32 from billing = 115) ✅
Build: clean ✅
2026-02-14 21:31:04 -08:00
saravanakumardb1
05008ee04f
refactor: merge growth-service into platform-service
...
Phase 1 of service consolidation (5→2 services).
Moved modules:
- invitations (12 tests)
- referrals (9 tests)
- promos (7 tests)
Changes:
- Copied 3 modules + webhooks.ts lib from growth-service
- Added stripe dep to platform-service package.json
- Added webhook env vars to config schema
- Registered invitationRoutes, referralRoutes, promoRoutes in server.ts
- Removed growth-service directory
Tests: 83 passing (was 55 + 28 from growth = 83) ✅
Build: clean ✅
2026-02-14 21:27:44 -08:00
fd79131067
chore(release): add changesets
2026-02-14 19:49:08 -08:00
e9b33fb518
feat(monitoring): add @bytelyst/monitoring package
2026-02-14 15:57:41 -08:00
125eb03745
feat(blob): add @bytelyst/blob shared package
2026-02-14 15:53:33 -08:00
saravanakumardb1
c292bb5cc1
feat(extraction): scaffold extraction-service + @bytelyst/extraction package
...
- extraction-service: Fastify scaffold (port 4005) with extract/tasks modules
- src/lib/: config, errors, cosmos, product-config, python-bridge
- src/modules/extract/: types (Zod schemas), routes (POST /extract, batch, models)
- src/modules/tasks/: types, repository (Cosmos CRUD), routes (CRUD endpoints)
- Python sidecar: FastAPI app, LangExtract wrapper, models, task registry
- @bytelyst/extraction package: types, client factory, index exports
- Both pnpm build pass clean
2026-02-14 13:31:40 -08:00
c84185da24
test(react-auth): switch vitest env to happy-dom
2026-02-14 13:15:12 -08:00
saravanakumardb1
54e062b989
chore: remove unused devDeps found by depcheck
...
- react-auth: removed @testing-library/jest-dom (not imported)
- testing: removed @bytelyst/errors, @fastify/cors (not imported)
2026-02-13 00:17:04 -08:00
saravanakumardb1
99cbdf582c
feat(auth): add middleware tests + E2E flow + migrate tracker-service to @bytelyst/auth
...
- Upgraded @bytelyst/auth middleware to throw ServiceError types (UnauthorizedError, ForbiddenError)
- Added @bytelyst/errors as dependency to auth package
- 11 new middleware tests (extractAuth + requireRole)
- 4 new E2E tests (full login → JWT → auth → role check flow)
- Refactored tracker-service lib/auth.ts from 48-line local impl to 1-line re-export
- Added @bytelyst/auth as tracker-service dependency
- All 277 tests pass, 0 regressions
2026-02-12 23:41:46 -08:00
saravanakumardb1
7ffc60c490
feat(testing): create @bytelyst/testing shared package with 10 tests
...
Exports:
- createCosmosMocks(): full Cosmos DB mock factory for vitest
- TEST_USERS, TEST_JWT_SECRET, createTestTokenPayload(): auth fixtures
- injectGet/Post/Patch/Delete(): Fastify inject wrappers
- expectHealthOk(): health endpoint assertion helper
2026-02-12 22:59:28 -08:00
saravanakumardb1
428e973548
test(react-auth): add 10 tests with jsdom + React Testing Library
...
Tests: createAuthProvider factory, AuthProvider rendering, login/logout
flows, localStorage persistence, onLoginFallback, useAuth outside provider,
custom storage prefix.
2026-02-12 22:55:44 -08:00
saravanakumardb1
63c08dbb0a
refactor(services): integrate @bytelyst/fastify-core into all 4 services
...
Replaced duplicated server setup code with createServiceApp() factory:
- platform-service: 91 → 39 lines
- billing-service: 105 → 51 lines (keeps service-specific internal key auth)
- growth-service: 83 → 33 lines
- tracker-service: 88 → 36 lines
Enhanced fastify-core with optional Swagger + Prometheus metrics support.
Total reduction: ~208 lines of duplicated boilerplate eliminated.
All 246 tests pass.
2026-02-12 22:53:22 -08:00
saravanakumardb1
832eccafed
feat: add package tests (58 new) + @bytelyst/fastify-core package
...
Package tests added:
- @bytelyst/cosmos: 12 tests (client singleton, env vars, container registry)
- @bytelyst/config: 15 tests (base schema, loadConfig, product identity)
- @bytelyst/auth: 10 tests (JWT round-trip, password hash/verify)
- @bytelyst/api-client: 10 tests (fetch, safeFetch, auth injection)
- @bytelyst/design-tokens: 11 tests (loadTokens, generated file checks)
New package:
- @bytelyst/fastify-core: 8 tests (createServiceApp factory with CORS,
x-request-id, health endpoint, ServiceError handler)
Total: 246 tests passing (was 180)
2026-02-12 22:17:17 -08:00
saravanakumardb1
90b9cf93d8
fix(common): configure ESLint 9 and fix lint issues
...
- Added @eslint/js dependency
- Updated eslint.config.js for ESLint 9 compatibility
- Added required globals (crypto, localStorage, React, etc.)
- Fixed unused imports and variables
- Disabled sort-imports temporarily
- Formatted all files with Prettier
2026-02-12 16:37:30 -08:00
saravanakumardb1
92cb800d32
chore: remove test file
2026-02-12 16:17:29 -08:00
saravanakumardb1
dca1587efb
feat: tighten production-readiness workflow
...
Quick wins implemented:
- Add ESLint to common_plat (12 projects now linted)
- Add test coverage with 80% thresholds
- Add security audit for all dependencies
- Add bundle analysis for Next.js builds
- Update Makefile with audit target
Enhanced coverage:
- common_plat: +lint, +coverage, +security
- dashboards: +coverage, +bundle analysis, +security
- Python: +security audit via make target
Workflow now validates 7 dimensions instead of 4.
2026-02-12 15:49:46 -08:00
saravanakumardb1
4ae7a9d023
refactor(services): rewire lib/ to @bytelyst/* packages + add docker-compose
...
Rewired all 4 services:
- lib/errors.ts → re-exports from @bytelyst/errors
- lib/cosmos.ts → re-exports from @bytelyst/cosmos
- lib/product-config.ts → uses loadProductIdentity()/getProductId() from @bytelyst/config
- lib/config.ts → kept self-contained (zod v3/v4 type mismatch with loadConfig)
Added workspace deps (@bytelyst/errors, @bytelyst/cosmos, @bytelyst/config) to all 4 services.
Added docker-compose.yml with Loki, Grafana, Traefik, and all 4 services.
Added .env.example with required env vars.
Added passWithNoTests to vitest.config.ts.
Pinned root zod to ^3.24.0 to match service zod versions.
All 12 projects build. 175 tests passing.
2026-02-12 11:49:42 -08:00
saravanakumardb1
c97e697097
feat(services): add monitoring (Loki + Grafana config, health-check)
...
- Copied as-is from learning_voice_ai_agent/services/monitoring
- Grafana dashboards + provisioning for Loki datasource
- health-check.ts for service health polling
- Updated pnpm-workspace.yaml to include services/*
2026-02-12 11:39:24 -08:00
saravanakumardb1
72c6e64854
chore: add pnpm lockfile
2026-02-12 11:23:09 -08:00