saravanakumardb1
1fe1e75999
feat(platform-service): auto-registration on first request (Phase 4.1) — 8 tests
...
Zero-touch product provisioning: when a request arrives with an unknown
productId and a valid JWT, auto-create a minimal ProductDoc instead of
rejecting. Enables new products to use platform-service immediately.
- auto-register.ts: auto-create ProductDoc with sensible defaults
- Rate limited: max 10 auto-registrations per minute
- Requires valid JWT (unauthenticated requests still rejected)
- Audit logged as product.auto_registered
- request-context.ts: exported extractProductIdAsync with auto-register
- 8 tests: register, duplicate, format validation, rate limit
2026-03-19 22:00:57 -07:00
saravanakumardb1
f3c53b3331
refactor(admin-web): remove dead local components — already using @bytelyst/dashboard-components
...
Removed unused local copies that were superseded by shared package imports:
- EmptyState.tsx (dead — no imports found)
- LoadingSpinner.tsx (dead — no imports found)
- PageHeader.tsx (dead — no imports found)
Dashboard already consumes NotFoundPage from @bytelyst/dashboard-components.
2026-03-19 21:56:00 -07:00
saravanakumardb1
af88c4a0b3
docs: update Platform Acceleration Roadmap — Phases 1-3 complete, move to in-progress
...
Verified all task status against actual code:
- Phase 1: product-manifest (51 tests), dashboard-components (32 tests),
sync engine (31 tests), module generator — all built
- Phase 2: create-app CLI (26 tests), auth-ui (54 tests),
API route generator, AGENTS.md auto-gen — all built
- Phase 3: Swift SDK (30 tests/7 files), Kotlin SDK (64 tests/9 files),
dashboard-shell (41 tests), declarative YAML loader (34 tests) — all built
- Phase 4: not started (5 tasks remaining)
Total: 299 tests across acceleration packages
Remaining integration work (unchecked):
- Migrate dashboards to consume @bytelyst/dashboard-components
- Migrate ChronoMind to @bytelyst/sync
- Migrate product auth pages to @bytelyst/auth-ui
- Migrate user-dashboard to @bytelyst/dashboard-shell
- Migrate ChronoMind iOS/Android to platform SDKs
- Migrate changelog to declarative YAML
- Publish create-app to npm
2026-03-19 21:43:54 -07:00
saravanakumardb1
f56672508a
chore: update dependencies
2026-03-19 21:25:30 -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
70635ba80e
feat(kotlin-sdk): add ByteLystPlatform unified entry point + 2 new test files (4.2)
...
New source:
- ByteLystPlatform.kt — unified entry point wiring all services via Context + Config
(secureStore, client, auth, telemetry, flags, killSwitch, auditLog)
- start(userId?) / stop() lifecycle for telemetry + flags
- Mirrors Swift ByteLystPlatform API
New tests (2 files):
- BLKillSwitchResultTest — ok(), disabled, default, copy
- BLTelemetryEventTest — serialize, deserialize, optional fields
2026-03-19 21:09:24 -07:00
saravanakumardb1
933390e89b
feat(swift-sdk): add ByteLystPlatform unified entry point + 5 new test files (4.1)
...
New source:
- ByteLystPlatform.swift — unified entry point wiring all services
(config, client, telemetry, flags, killSwitch, crashReporter, keychain, auditLog, auth)
- BLKeychainAccessor — convenience wrapper binding BLKeychain to a bundleId
- start(userId:) / stop() lifecycle for telemetry + flags + killSwitch
New tests (5 files, ~25 test cases):
- ByteLystPlatformTests — init, start/stop, idempotency, keychain accessor
- BLPlatformConfigTests — default + custom init
- BLKillSwitchClientTests — default state, reset
- BLFeatureFlagClientTests — empty flags, unknown key, stop
- BLTelemetryClientTests — installId stability, session rotation, track/flush
Also: add .build/ and .swiftpm/ to .gitignore
2026-03-19 21:05:58 -07:00
saravanakumardb1
1fda345d38
feat(dashboard-shell): add @bytelyst/dashboard-shell package (4.3) — 41 tests
...
Components:
- DashboardShell — main layout combining sidebar + topbar + content area
- Sidebar — collapsible nav with sections, badges, active state, auto-settings link
- TopBar — user avatar/menu, notifications bell, sign out, custom actions
- ProfilePage — avatar, name/email form, loading/error/success states
- BillingPage — current plan card, status badge, trial info, plan comparison grid
- SettingsPage — section-based layout with empty state
Features:
- NavItem[] or NavSection[] for flat or grouped navigation
- ShellFeatures toggle: profile, billing, settings, notifications, themeToggle
- ShellUser with avatar, role, initials fallback
- onNavigate callback for SPA routers (Next.js, etc.)
- Collapsible sidebar with toggle button
- All styled via --bl-shell-* CSS custom properties with fallbacks
- 41 tests covering all components
2026-03-19 20:54:28 -07:00
saravanakumardb1
6354711f97
feat(create-app): add CLI Scaffolder (3.1) — interactive product repo generator
...
Scaffolder (scaffolder.ts):
- Interactive prompts: product name/ID/tagline/domain, port, platforms, features
- --from product.json flag to skip prompts (non-interactive)
- --dry-run preview mode
- Generates backend (always) + web (Next.js) + mobile (Expo) based on selection
- Template engine with {{VARIABLE}} and {{#IF FEATURE}} conditional blocks
- Backend scaffold: Fastify 5, Zod config, JWT auth, datastore, server.ts
- Web scaffold: Next.js 16 App Router, layout, page, product-config
- Mobile scaffold: Expo with app.json, index screen
- Root files: product.json, .gitignore, .env.example, README.md
Tests: 26 passing (11 template-engine + 15 scaffolder)
Tested with ActionTrail product.json dry-run — correct output
2026-03-19 20:31:35 -07:00
saravanakumardb1
43439e9c85
feat(auth-ui): complete Auth UI Kit (3.2) — 7 new components, 54 tests
...
New components:
- RegisterForm — name, email, password, confirm, terms, password strength
- ForgotPasswordForm — email input with success/error states, back link
- ResetPasswordForm — new password + confirm with strength indicator
- VerifyEmailForm — 6-digit code input with resend, numeric-only filter
- OnboardingShell — step indicator, progress bar, back/next/complete nav
- AuthPageLayout — full-page centered card with product branding
- PasswordStrengthBar — visual bar + label (weak/fair/good/strong)
Existing components preserved: LoginForm, MfaChallenge, SocialButtons
All styled via --bl-* CSS custom properties for product theming
54 tests (13 existing + 41 new) — all passing
2026-03-19 20:25:57 -07:00
saravanakumardb1
f051942ef6
feat(create-app): add API Route Generator (3.3) + AGENTS.md Auto-Generator (3.4)
...
3.3 API Route Generator (api-routes.ts):
- Two modes: 'direct' (Cosmos DB CRUD) and 'proxy' (backend fetch)
- Generates route.ts + [id]/route.ts (Next.js App Router named exports)
- Direct mode also generates lib/schemas/ + lib/repositories/ files
- withErrorHandler HOF wrapper, Zod validation, auth check
- Dry-run preview, configurable methods, skip existing files
3.4 AGENTS.md Auto-Generator (agents-md.ts):
- Reads shared/product.json for identity, port, domain
- Scans repo for backend modules, lib files, test counts
- Generates full AGENTS.md with identity, layout, stack, conventions
- --update preserves CUSTOM sections
- Creates CLAUDE.md, .cursorrules, .windsurfrules symlinks
2026-03-19 20:17:02 -07:00
saravanakumardb1
c3f81cc97a
fix(kotlin-sdk): add platform query parameter to kill-switch URL
...
BLKillSwitchClient was missing the platform query parameter that
BLFeatureFlagClient already sends. This caused the test
'sends correct query parameters' to fail.
2026-03-19 20:03:26 -07:00
saravanakumardb1
6ba86e0bf4
fix: replace corepack pnpm with pnpm in pretest/predev scripts
...
Node 25 removed corepack as a built-in. Replace all 'corepack pnpm'
invocations with direct 'pnpm' calls since pnpm is installed globally.
Affected: platform-service, tracker-web, blob, testing, LLM dashboard
2026-03-19 19:57:16 -07:00
saravanakumardb1
16dc1c4a79
feat(platform-service): overhaul module generator with auto-patching
...
- Rewrote gen-module.ts to match actual codebase patterns
- Repository uses getRegisteredContainer from @bytelyst/cosmos
- Routes use req.jwtPayload?.sub for auth (not req.user)
- Routes register with explicit /name paths under /api prefix
- Auto-patches cosmos-init.ts with container definition
- Auto-patches server.ts with import + route registration
- Proper parenthesis-aware field splitter for enum(a,b,c)
- Test template generates per-field validation tests
- Checks for existing module directory before overwriting
- Pascal/camel case helpers handle hyphenated module names
- Dry-run shows auto-patch previews
2026-03-19 19:52:06 -07:00
saravanakumardb1
a0dafcd693
feat(config): overhaul product manifest schema + 51 tests
...
- Redesigned schema to match real-world product.json files across ecosystem
- Changed 'id' → 'productId' (matches all existing files)
- Support bundleId as string OR per-platform object
- Added backendPort, tagline, primarySurface, appStore, bundleIds fields
- Added legacy identity fields (licensePrefix, configDirName, envVarPrefix, etc.)
- Added duplicate container name validation via superRefine
- Fixed loadProductManifestSync: require() → readFileSync (ESM-safe)
- Added BundleIdSchema and AppStoreSchema exports
- Added 'mac' platform option
- 51 new tests covering all schemas, validation, file loading, real-world manifests
2026-03-19 19:43:46 -07:00
saravanakumardb1
cf20f0f591
docs: consolidate workspace review → WORKSPACE_REVIEW_2026_03_19.md
...
- Renamed from 2026_03_03 to 2026_03_19 (single source of truth)
- Updated all test counts, added FlowMonk/NoteLett/ActionTrail sections
- Moved SHARED_CLIENT_PACKAGES to completed roadmaps
- Platform maturity 87→91, Client SDKs 95→100%
- Removed duplicate review file generated by Cascade
2026-03-19 19:04:13 -07:00
saravanakumardb1
1ad8660dd8
fix(platform): fix 2 type errors found in typecheck sweep
...
- api-key-auth.ts: Record<string, unknown> → FilterMap (import from @bytelyst/datastore)
- reviews/notifications.ts: raw subject/html/text → templateId + variables (match dispatchEmail signature)
2026-03-19 19:02:57 -07:00
saravanakumardb1
6a79742605
chore(kotlin-sdk): add .gitignore and remove tracked build artifacts
2026-03-19 19:02:44 -07:00
saravanakumardb1
6115ae5c0f
fix(docs): correct 10 issues in workspace review 2026-03-19
...
- platform-service tests: ~1,027 -> 1,020 (verified)
- Product backend total: ~1,256 -> 1,217 (verified)
- ChronoMind backend: ~179 -> 176
- FlowMonk backend: ~194 -> 181
- ActionTrail backend: ~187 -> 185
- Grand total: ~4,298 -> ~4,220
- kotlin-platform-sdk: 38/39 -> 56/57 (13 deferred files restored)
- Scope: 15 repos -> 14 repos + 1 temp workspace
- SHARED_CLIENT_PACKAGES_ROADMAP moved from Active to Completed (15 total)
- P2 maturity: 40% -> 60%, Client SDKs: 98% -> 100%
- Added web dev server port table (3000/3050/3060)
- Removed ~ approximation from all verified backend test counts
2026-03-19 18:51:26 -07:00
saravanakumardb1
35487137e1
feat(kotlin-sdk): restore 13 deferred UI files — diagnostics, clients, Compose UI, passkeys, deep links
...
- Move 5 diagnostics files into src/main/.../diagnostics/ (DiagnosticsTypes, DiagnosticsClient, BreadcrumbTrail, DeviceStateCollector, NetworkInterceptor)
- Move 3 API clients (BLBroadcastClient, BLSurveyClient, BLFeedbackClient) — fix toMediaType, serializer pattern, coroutine imports
- Move 2 pure Kotlin files (DeepLinkRouter, BLPasskeyManager)
- Move 3 Compose UI files into src/main/.../ui/ (BLAuthUI, SurveyUI, BroadcastUI)
- Move 2 test files (DiagnosticsTypesTest, BLAuthClientSmartAuthTest) — fix JUnit5, Device JSON, serializer
- Add coil-compose dependency for AsyncImage
- Add appVersion/osVersion fields to BLPlatformConfig
- Fix OkHttp Headers iteration (name/value indexed access)
- Fix BroadcastUI string comparisons for status/style/priority
- Remove _deferred_ui/ directory — all files now compile in src/
- 57 tests total, 56 pass (1 pre-existing BLKillSwitchClientTest failure)
2026-03-19 18:25:35 -07:00
saravanakumardb1
e90b2f67e7
docs: refresh workspace review with 2026-03-19 test sweep results
...
- Update all test counts from verified backend sweep (2,237 service tests)
- Add 3 missing repos: FlowMonk, NoteLett, ActionTrail
- Add completed initiatives: shared client packages, Android builds, code review
- Update maturity score 87->91, P2 progress 40->60%
- Refresh repo script to include all 10 repos
- Next review: 2026-04-02
2026-03-19 18:16:42 -07:00
saravanakumardb1
548f7199bf
fix(extraction-service): fix QueueJob generic type mismatch in createJob
...
enqueue() returns QueueJob<TPayload, unknown> since no result exists at
enqueue time. mapQueueJob expects ExtractionJobResult. Cast at the call
site since newly enqueued jobs have undefined result and all accesses
use optional chaining.
2026-03-19 18:12:34 -07:00
saravanakumardb1
90f8f64937
ci: update CI/CD configuration
2026-03-19 18:11:27 -07:00
saravanakumardb1
b173fdd4d4
docs: mark all product migrations complete in shared packages roadmap
...
9/9 products audited and migrated:
- NomGap: 9 mobile + 6 web files (+ 6 bug fixes)
- ChronoMind: billing-client + feature-flags
- MindLyst: billing-client + feature-flags
- LysnrAI: feature-flags
- JarvisJr: audited, no candidates (custom marketplace routes)
- FlowMonk, NoteLett, ActionTrail: already fully migrated
- PeakPulse: iOS-only, no web migration needed
2026-03-19 17:02:30 -07:00
saravanakumardb1
c9e58505a2
chore: gitignore swift-platform-sdk build artifacts
2026-03-19 17:01:52 -07:00
saravanakumardb1
6b63fda434
fix(kotlin-sdk): fix compile errors in kotlin-platform-sdk core components
...
- Fix MapSerializer/serializer imports in BLAuthClient, BLBlobClient, BLLicenseClient
- Add material-icons-extended dependency to build.gradle.kts
- Move 13 uncompiled files (UI, diagnostics, extended) to _deferred_ui/
(SurveyUI, BroadcastUI, BLAuthUI, DiagnosticsClient, NetworkInterceptor,
BreadcrumbTrail, DeviceStateCollector, DiagnosticsTypes, BLSurveyClient,
BLBroadcastClient, BLFeedbackClient, BLPasskeyManager, DeepLinkRouter)
- Move 2 broken test files to _deferred_ui/
- Core SDK compiles: 38/39 tests pass
- Unblocks all Android app builds (MindLyst, JarvisJr, LysnrAI, ChronoMind)
2026-03-19 17:01:34 -07:00
saravanakumardb1
3c6e452999
docs: update roadmap — NomGap mobile migration complete
2026-03-19 16:26:19 -07:00
saravanakumardb1
710992e69f
docs: add corporate network/proxy setup (§9) to AGENTS.md + expand switch-network.sh header
2026-03-19 15:22:14 -07:00
saravanakumardb1
3ef40028ab
fix(gradle): add corporate proxy SSL truststore + Compose deps for kotlin-platform-sdk
...
- switch-network.sh: set GRADLE_OPTS with custom truststore when NETWORK=corp
- kotlin-platform-sdk: add repos to settings.gradle.kts for composite builds
- kotlin-platform-sdk: add Compose plugin + BOM + UI/Material3/Foundation deps
- kotlin-platform-sdk: use kotlinOptions (stable) instead of compilerOptions
2026-03-19 15:13:50 -07:00
saravanakumardb1
96866dcaf6
fix(swift-sdk): add buildRequest, BLPlatformError, fix SDK compile errors for iOS 26
2026-03-19 14:22:18 -07:00
saravanakumardb1
c5e292fe05
docs(roadmap): update shared client packages status to reflect completion + NomGap web migration
2026-03-19 13:30:33 -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
saravanakumardb1
c87a8e9ef1
docs: fix 17 bugs/gaps in shared client packages roadmap + add workflow
...
Review findings and fixes:
- Fix subscription routes use :userId not :id
- Fix GET /plans returns { plans: [...] } wrapper
- Fix org routes require admin-only JWT role
- Flag missing POST /referrals/apply endpoint
- Flag missing POST /subscriptions/restore endpoint
- Expand org-client and marketplace-client with full API signatures
- Add x-product-id header requirement
- Add NomGap Migration Plan
- Add Known Backend Gaps appendix
- Add /implement-shared-packages workflow
2026-03-19 11:02:42 -07:00
saravanakumardb1
0d20987f75
ci: update CI/CD configuration
2026-03-19 09:17:35 -07:00
saravanakumardb1
79e704286f
feat(react-auth): include productId in login/register request bodies
...
When productId is configured via createAuthProvider({ productId }),
it is now included in the login and register POST bodies alongside
email/password. Previously it was only injected for OAuth calls.
This is required by platform-service which validates productId on
all auth endpoints.
2026-03-18 20:54:20 -07:00
root
e996962b64
feat(mcp-server): add team provisioning follow-up hooks
2026-03-15 09:59:35 +00:00
root
8976caa966
feat(mcp-server): add org review follow-up hooks
2026-03-15 09:56:04 +00:00
root
7c5999ce5a
feat(mcp-server): wire a2a governance hooks
2026-03-15 09:51:00 +00:00
root
d93ada4037
docs(config): align rate limit settings
2026-03-15 09:42:42 +00:00
root
e4bff5a2fe
feat(platform-service): add support case management foundation
2026-03-15 09:39:20 +00:00
root
14346fbd5d
feat(ratelimit): back api throttles with datastore
2026-03-15 09:37:03 +00:00
root
8b99b7a9a7
feat(platform-service): add scim provisioning foundation
2026-03-15 09:36:27 +00:00
root
66d0bf53a9
feat(platform-service): add shared knowledge foundation
2026-03-15 09:33:17 +00:00
root
728d8f2484
feat(platform-service): add ai budget governance
2026-03-15 09:30:16 +00:00
root
3f06427038
feat(platform-service): add agent evaluation governance
2026-03-15 09:26:40 +00:00
root
8d78b6ce59
feat(api-key): audit security events
2026-03-15 09:24:01 +00:00
root
2f7163b856
feat(api-key): restrict job operations to service tokens
2026-03-15 09:08:38 +00:00
root
95261acb92
feat(api-key): log auth and throttling rejects
2026-03-15 09:06:51 +00:00
root
798c1b9fad
feat(platform-service): add agent registry foundation
2026-03-15 09:05:39 +00:00
root
473b7310d5
fix(tokens): tighten machine credential issuance
2026-03-15 06:28:50 +00:00