root
8ad3e1be34
test(core): strengthen app and auth assertions
2026-03-14 14:25:18 +00:00
root
50fc9c93c5
test(llm-router): cover local ollama inference
2026-03-14 06:41:08 +00:00
root
7616901683
test(workspace): harden service bootstrap and sync coverage
2026-03-14 06:40:10 +00:00
root
128207ac21
fix(testing): stabilize workspace test dependencies
2026-03-14 06:35:29 +00:00
root
2b4fccb744
feat(queue): add durable worker runtime and extraction integration
2026-03-14 06:25:10 +00:00
root
bf2c285e41
feat(llm-router): unify local ollama routing
2026-03-14 06:17:17 +00:00
root
66a11c5713
Add Azurite-backed blob storage for prototype
2026-03-14 05:45:43 +00:00
root
a5e8890df2
Add Cosmos emulator prototype support
2026-03-14 05:24:01 +00:00
saravanakumardb1
5195f9c052
fix(platform): production readiness — admin-web client bundling, config sub-path exports, stale tests
...
- dashboards/admin-web: split product-constants.ts for client-safe imports
- dashboards/admin-web: serverExternalPackages + webpack fallbacks for @bytelyst/config
- dashboards/admin-web: instrumentation.ts uses @bytelyst/config/keyvault sub-path
- packages/config: add ./keyvault and ./product-identity sub-path exports
- packages/feedback-client: fix stale test expectation (TODO-1 → actual error message)
- packages/sync: fix reprocessFailed test (flush already pushes items)
2026-03-12 16:49:15 -07:00
saravanakumardb1
9438085cc0
fix(blob): rewrite tests for storage-delegated API
...
- Old tests imported removed functions (getBlobServiceClient, getContainerClient)
- Old tests mocked @azure/storage-blob directly but blob now delegates to @bytelyst/storage
- New tests use MemoryStorageProvider for functional validation
- Tests cover: isBlobStorageConfigured (4 cases), storage provider/bucket ops (5 cases), BLOB_CONTAINERS (1 case)
- 10/10 tests passing (was 2/8)
2026-03-12 16:44:52 -07: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
2b3130821c
fix(auth): register magic_link event type + use admin productId for enterprise IdP
...
- Register 'auth.magic_link_requested' in @bytelyst/events PlatformEventSchemas
- Remove any-cast from magic-link/routes.ts — now properly typed
- Enterprise IdP creation uses admin's JWT productId instead of hardcoded 'smartauth'
- All 53 auth tests passing
2026-03-12 15:55:09 -07:00
saravanakumardb1
b8f22be677
fix(auth): SDK device/login-events response wrappers + correct API paths
...
- Swift + Kotlin SDKs: listDevices() now unwraps { devices: [...] }
- Swift + Kotlin SDKs: getLoginHistory() now unwraps { events: [...] }
- Swift + Kotlin SDKs: revokeDevice() uses fingerprint param (not doc ID)
- Swift + Kotlin SDKs: revokeAllDevices() uses POST /revoke-all (not DELETE)
- Swift + Kotlin SDKs: getLoginHistory() path /login-events (not /login-events/me)
- Swift + Kotlin SDKs: Device model updated to match backend response fields
- All 53 auth tests passing
2026-03-12 15:42:54 -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
b1b3fe42df
feat(llm-router): add @bytelyst/llm-router — pure-code LLM router for free-tier providers
...
- 4 providers: Groq, OpenRouter, Together AI, Cerebras
- Regex-based prompt classifier (code/math/reasoning/creative/general)
- Instance-level round-robin state (no shared module globals)
- Sliding-window health tracker (latency, error rate, rate-limit rate)
- Auto-fallback on 429/5xx with per-attempt latency tracking
- Telemetry hook for all routing decisions (auto + explicit)
- OpenRouter recommended headers (HTTP-Referer, X-Title)
- 47 tests across 5 test files, zero runtime deps
2026-03-12 13:45:49 -07:00
saravanakumardb1
ae13abfab2
fix(auth): address SmartAuth agent review gaps — Swift mock wiring, passkey SDK consistency, device list parity, JSDoc, SSR docs
2026-03-12 12:27:08 -07:00
saravanakumardb1
067a23449f
feat(auth): SmartAuth admin-web — OAuth proxy, MFA settings, devices, passkeys, security dashboard
...
- Add 15 API proxy routes for SmartAuth endpoints (OAuth, MFA, devices, passkeys, security)
- Add MFA Settings page (/settings/security) with TOTP setup/verify/disable flow
- Add Device Management page (/settings/devices) with trust badges and revoke actions
- Add Passkey Management page (/settings/passkeys) with WebAuthn registration
- Add Admin Security Dashboard (/ops/security) with stats, provider distribution, login events
- Update login page with Google Sign-In button (env-gated) and MFA challenge flow
- Add sidebar nav links for new security pages
- Fix sidebar nav highlighting for nested routes (exact match for parent items)
- Add NEXT_PUBLIC_GOOGLE_CLIENT_ID to .env.example
2026-03-12 11:13:14 -07:00
saravanakumardb1
362b915ea9
feat(auth): SmartAuth backend core — OAuth, MFA, passkeys, device trust, login events
...
Phase 0A: OneAuth schema extension — UserDoc evolution + auth_providers container
Phase 0B: Progressive lockout + IP rate limiting on login
Phase 1A-1B: Google/Microsoft/Apple OAuth + account linking
Phase 1D: Enhanced /auth/me — products, providers, MFA status
Phase 2A-2C: TOTP MFA + challenge flow + admin policies
Phase 3A-3B: WebAuthn passkeys + device trust
Phase 4A: Login events + rule-based risk scoring
New sub-modules: oauth/, mfa/, passkeys/, devices/, login-events/
New containers: auth_providers, auth_mfa, auth_mfa_policies, auth_passkeys, auth_devices, auth_login_events
Tests: 37 new (946 total, all passing), typecheck clean
2026-03-12 10:55:41 -07:00
saravanakumardb1
2c330387fc
feat(auth): native SDK passkey + BLAuthUI Swift + Kotlin social/MFA
...
SmartAuth v2 SDK extensions for both Swift and Kotlin platform SDKs:
Swift (BLAuthClient.swift):
- Social login, MFA, passkeys, providers, devices, step-up, login history
- New types: BLMfaChallenge, BLTotpSetup, BLMfaStatus, BLAuthProvider, etc.
- BLAuthState: added .mfaRequired case
Swift (BLAuthUI.swift) — 4 reusable views:
- BLLoginView, BLMfaChallengeView, BLPasskeyView, BLStepUpSheet
Kotlin (BLAuthClient.kt):
- Social login, MFA, providers, devices, step-up, login history
- MFA challenge detection in login(), encodeMap() helper
Kotlin (BLPasskeyManager.kt) — Credential Manager passkey wrapper
Kotlin (BLAuthUI.kt) — 5 Compose screens matching Swift BLAuthUI
Kotlin build.gradle.kts — Credential Manager dependencies
Tests: Swift (6 methods), Kotlin (5 methods)
2026-03-12 10:55:32 -07:00
saravanakumardb1
53f2a97d40
feat(auth): SmartAuth SDK packages — OAuth, MFA, passkeys, devices, RS256, auth-ui
...
Phase 1C: @bytelyst/auth-client + @bytelyst/react-auth Google Sign-In
- loginWithGoogle/Microsoft/Apple(idToken) → POST /auth/oauth/:provider
- getProviders/linkProvider/unlinkProvider → provider management
- React context: loginWithGoogle, providers state, refreshProviders
Phase 2D: MFA + Social Login SDK + Auth UI
- verifyMfa/setupTotp/verifyTotpSetup/disableMfa/getMfaStatus
- regenerateRecoveryCodes → recovery code management
- React context: mfaRequired/mfaChallenge/mfaMethods state, verifyMfa action
- login() handles MfaLoginResult (returns false, sets MFA state)
- NEW @bytelyst/auth-ui: LoginForm, MfaChallenge, SocialButtons components
Phase 3: Passkeys + Device SDK
- getPasskeyRegisterOptions/verifyPasskeyRegistration
- getPasskeyAuthOptions/verifyPasskeyAuth/listPasskeys/deletePasskey
- listDevices/trustDevice/revokeDevice/revokeAllDevices
Phase 4C: @bytelyst/auth RS256 support
- createJwtUtils({ algorithm: 'RS256', rsaPrivateKey, rsaPublicKey })
- Dual verification: RS256 first, HS256 fallback (migration-safe)
- Remote JWKS support via jwksUrl option
- Backward-compatible: HS256 remains default
Phase 5B: Admin security endpoints
- getSecurityOverview/unlockUser/exportAuthData/cancelDeletion
Tests: 101 total (36 auth-client + 21 react-auth + 13 auth-ui + 31 auth)
Builds: all 4 packages pass tsc
2026-03-12 10:50:56 -07:00
saravanakumardb1
a45aa8c3fe
feat(design-tokens): add flowmonk product-specific token namespace (--fm-*)
2026-03-10 19:35:19 -07:00
saravanakumardb1
ac525563dc
test(packages): add file-store tests for @bytelyst/event-store (9 tests), SSE hub tests for @bytelyst/fastify-sse (12 tests)
2026-03-10 18:48:07 -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
cfca118c71
feat(fastify-core): add shared optional jwt context
2026-03-06 12:52:49 -08:00
saravanakumardb1
acfad8a042
feat(fastify-core): harden lifecycle and readiness support
2026-03-06 12:47:29 -08:00
saravanakumardb1
00b0555c97
fix(fastify-core,mcp-server): add logLevel to ServiceAppOptions and wire config.LOG_LEVEL so log verbosity is actually honoured at runtime
2026-03-05 12:38:09 -08:00
saravanakumardb1
bf7769bdaa
fix(diagnostics-client): use session-scoped ingest endpoints; update MCP+A2A docs
2026-03-05 10:41:02 -08:00
saravanakumardb1
71b33fcf62
feat(design-tokens): add SSO brand color tokens
2026-03-04 19:54:40 -08:00
saravanakumardb1
2f7e3ad9b6
refactor(design-tokens): improve token validator
...
- ignore hsl(var(--...)) / rgb(var(--...))
- export generated/tokens entry
2026-03-04 18:13:13 -08:00
saravanakumardb1
a33f3cfbd6
docs: design system audit, onboarding guide, and AGENTS.md updates
...
- Comprehensive audit report: DESIGN_SYSTEM_AUDIT_2026-03-03.md
- Token consumption across all 7 repos
- 594 hardcoded colors identified
- Per-product breakdown with migration priorities
- Developer onboarding guide: ONBOARDING.md
- Platform-specific setup instructions
- Migration steps for each product
- Token cheat sheet and troubleshooting
- Updated AGENTS.md with Design System section
- Never hardcode colors rule
- Platform usage patterns (Web, iOS, Android, RN)
- Current adoption status table
- Validation commands
- Added design-tokens package README
- Quick start for all platforms
- Usage examples (CSS, TS, Swift, Kotlin, RN)
- CI integration examples
2026-03-03 21:55:02 -08:00
saravanakumardb1
2a0a59e56c
feat(design-tokens): add validation tooling and React Native bridge
...
- validate-tokens.js: Scan source files for hardcoded colors
- token-coverage.js: Report token adoption percentage per product
- generate-react-native.ts: Generator for Expo/NomGap StyleSheet tokens
All scripts include:
- Cross-platform file detection (.ts, .tsx, .swift, .kt)
- Product-specific token categorization
- Exit codes for CI integration
2026-03-03 21:51:56 -08:00
saravanakumardb1
78d28307ec
feat(design-tokens): v1.1.0 — add product-specific tokens and new categories
...
- Add product token sections:
- peakpulse: activity colors, speed zones, elevation, streaks
- chronomind: urgency levels, focus mode, pomodoro colors
- nomgap: fasting stage colors, autophagy meter, safety
- lysnrai: recording states, processing, dictation mode
- Add new token categories:
- zIndex: layers from hidden (-1) to tooltip (800)
- icon: xs (12) to 2xl (48)
- grid: 12-column system with breakpoints
- opacity: 0-100 scale
- Regenerate all platform outputs (CSS, TS, Kotlin, Swift, React Native)
- Version bumped to 1.1.0
2026-03-03 21:51:20 -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
8749aa211d
fix(feedback-client): update tests to use fetch instead of post
2026-03-03 12:26:02 -08:00
saravanakumardb1
7714ab51fb
fix(events): add missing platform event schemas for campaign engine and notifications
2026-03-03 12:24:39 -08:00
saravanakumardb1
914e344a92
fix(feedback-client): correct ApiClient method usage and types
2026-03-03 12:20:43 -08:00
saravanakumardb1
7f5ff4c790
feat(config): implement P0-1 - Product manifest specification (product.json schema)
...
- Add ProductManifestSchema with Zod validation for product identity
- Support theme tokens, cosmos containers, feature flags, ports
- Add loadProductManifest(), validateProductManifest(), resolveTheme()
- Export all schemas and types from config package index
2026-03-03 10:01:40 -08:00
saravanakumardb1
fc8f8d33dc
feat(kotlin-platform-sdk): add diagnostics module (Phase 2.3)
...
New diagnostics package in kotlin-platform-sdk:
- DiagnosticsTypes: Session, TraceSpan, LogEntry, Breadcrumb, NetworkRequest
- DiagnosticsClient: singleton with StateFlow for reactive state
- BreadcrumbTrail: ring buffer (max 100) for timeline
- NetworkInterceptor: OkHttp interceptor for HTTP capture
- DeviceStateCollector: battery, memory, storage, network
- 16+ JUnit tests for types and breadcrumbs
Features:
- configure()/start()/stop() lifecycle
- trace() suspend span wrapper
- log() with breadcrumb integration
- ETag-based config polling
- 30-second batch flush
2026-03-03 09:31:59 -08:00
saravanakumardb1
abcf817cb3
feat(swift-diagnostics): implement Phase 2.2 Swift Client SDK
...
New package ByteLystDiagnostics with:
- Core types: DiagnosticsSession, TraceSpan, LogEntry, Breadcrumb
- DiagnosticsClient: actor-based singleton with polling
- BreadcrumbTrail: ring buffer (max 100) for timeline
- NetworkInterceptor: URLProtocol-based HTTP capture
- DeviceState: battery, memory, storage, network, thermal
- 20+ XCTest unit tests
Features:
- configure()/start()/stop() lifecycle
- trace() async span wrapper
- log() with breadcrumb integration
- breadcrumb() manual timeline markers
- ETag-based config polling
- 30-second batch flush
Platforms: iOS 15+, macOS 13+, watchOS 8+, tvOS 15+
2026-03-03 09:28:11 -08:00
saravanakumardb1
45dbb789a1
feat(react-native): React Native SDK foundation for NomGap
...
- package.json with React Native/Expo peer dependencies
- Main index.ts with module exports for all platform services
- Providers and hooks for auth, telemetry, feature flags, kill switch, broadcasts, surveys
2026-03-03 08:40:24 -08:00
saravanakumardb1
8acb8db7d7
feat(diagnostics-client): implement Phase 2.1 TypeScript SDK
...
New package @bytelyst/diagnostics-client with:
- DiagnosticsClient: singleton with polling for active sessions
- BreadcrumbTrail: ring buffer (max 100) for timeline
- NetworkInterceptor: fetch wrapper for HTTP capture
- DeviceState: memory, storage, network collection
- 21 Vitest tests (all passing)
2026-03-03 08:35:00 -08:00
saravanakumardb1
18dd263797
feat(sdk): Push deep link routing for all platforms
...
- TypeScript: DeepLinkRouter with URL parsing and handler registration
- Swift: BLDeepLinkRouter with iOS URL handling and Logger integration
- Kotlin: DeepLinkRouter with Android Uri parsing and handler mapping
- Common screen constants: broadcasts, surveys, settings, profile, etc.
2026-03-03 08:33:56 -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
55a1256d8b
docs(swift,kotlin): Add comprehensive SDK READMEs with broadcast and survey examples
...
- Swift SDK README: Installation, Broadcast/Survey clients, SwiftUI integration, push notifications
- Kotlin SDK README: Gradle setup, Jetpack Compose components, FCM integration
2026-03-03 08:30:26 -08:00
saravanakumardb1
80df7c1c1e
docs(packages): Add comprehensive README for broadcast-client and survey-client
...
- Installation, quick start, API reference
- React integration examples with hooks and providers
- Offline support documentation
- Type definitions and error handling
2026-03-03 08:29:07 -08:00
saravanakumardb1
b472f73c94
feat(platform-sdk): Phase 4.2/4.3 - iOS and Android native UI components
...
- BLInAppMessageUI.swift: Banner + Modal SwiftUI components
- BLSurveyUI.swift: Survey modal with all 9 question types for iOS
- BroadcastUI.kt: Banner + Modal Jetpack Compose components
- SurveyUI.kt: Survey modal with all 9 question types for Android
2026-03-03 08:20:01 -08:00
saravanakumardb1
6027d618b7
feat(kotlin-sdk): Phase 3.4 - Broadcast and Survey clients
...
- BLBroadcastClient.kt: In-app message fetch, read/dismiss, click tracking, polling
- BLSurveyClient.kt: Survey fetch, start/submit/complete, offline cache, polling
- Full coroutine support with Result<T> return types
2026-03-03 07:44:39 -08:00
saravanakumardb1
b96503dc2d
feat(swift-sdk): Phase 3.3 - Broadcast and Survey clients
...
- BLBroadcastClient.swift: In-app message fetch, read/dismiss, click tracking, polling
- BLSurveyClient.swift: Survey fetch, start/submit/complete, offline cache, polling
2026-03-03 07:40:56 -08:00
saravanakumardb1
307b84c2a2
feat(packages): Phase 3.2 - Create @bytelyst/survey-client package
...
- package.json: ESM module config
- src/index.ts: Survey client factory with types, validation, offline cache
- tsconfig.json: TypeScript configuration
Includes offline response caching for resilience
2026-03-03 07:36:12 -08:00
saravanakumardb1
c720f1c8de
feat(packages): Phase 3.1 - Create @bytelyst/broadcast-client package
...
- package.json: ESM module config
- src/index.ts: Broadcast client factory with types, hooks
- tsconfig.json: TypeScript configuration
2026-03-03 07:34:39 -08:00