saravanakumardb1
84dc348687
feat(platform): Phase 2 — Agent Runtime Orchestration
...
- New: agents/executor.ts — full agent execution engine
- Multi-step pipeline: prompt_assembly → tool_execution → finalize
- AbortController-based cancellation with in-memory tracking
- Token usage aggregation across tool calls
- Review-required tool gating (pauses run, returns review_required)
- Step event streaming for SSE consumers
- New: agents/tool-registry.ts — global tool registry
- Register/list/validate tools with risk levels + review flags
- New: agents/executor-routes.ts — 11 endpoints, 14 tests
- POST /agents/execute, POST /runs/:id/cancel
- GET /agents/active-runs, GET /runs/:id/children, GET /runs/:id/tree
- GET /agents/:id/metrics, GET /runs/:id/stream (SSE)
- GET /tools, POST /tools/validate, POST /agents/:id/schedule
- Enhanced: runs/repository.ts — added listChildRuns() for DAG query
- 1,307 tests passing (14 new)
2026-03-20 03:20:31 -07:00
saravanakumardb1
15e24e5710
feat(platform): Phase 1 — Durable Event Bus + Worker Runtime
...
- New module: event-subscriptions/ (types, repository, routes, 15 tests)
- Subscription CRUD: create/list/get/update/delete event subscriptions
- DLQ: list/retry/delete/purge dead-letter queue entries
- Event replay: POST /events/replay by topic + time range
- New lib: event-dispatcher.ts — subscription-driven dispatch with retry + DLQ
- New lib: event-store-bridge.ts — persistent event log for replay capability
- Worker runtime hardening (jobs/runner.ts):
- Concurrency limit (MAX_CONCURRENT_JOBS=5)
- Stuck-job recovery (10min threshold)
- Graceful shutdown (30s drain)
- Active job tracking + diagnostics (getActiveJobs/getActiveJobCount)
- Per-job dedup (skip if already running)
- Wired dispatcher + event-subscriptions into server.ts startup
- Cosmos containers: event_subscriptions, event_dlq, event_log
- 1,293 tests passing (15 new)
2026-03-20 03:12:54 -07:00
saravanakumardb1
17f5671595
docs(roadmap): P3 platform deepening roadmap — reviewed and audited
...
- 6 phases: Event Bus, Agent Runtime, AI Budget, AI Evals, Reviews, Support Cases
- 7-sprint mapping (14 weeks) with parallelization opportunities
- Cross-referenced all claims against actual codebase — 15 bugs/gaps found and fixed:
- DurableEventBus already exists in @bytelyst/events (not just in-memory)
- jobs/ has 25 tests (not 6), support-cases/ has 4 (not 3)
- ai-budgets already has verdict engine (252 LOC), alert generation, model allowlists
- BudgetScopeType only supports product+agent (not org/workspace yet)
- reviews/notifications.ts already has notifyReviewAssigned()
- Phase 2 effort overflowed (17d in 15d sprint) — rebalanced
- Test baseline corrected to 1,278 (not 1,308)
- Identified Cosmos QueueStore gap as critical path for Phase 1
- ai-diagnostics has 5,235 LOC but 0 tests — flagged as risk
- Estimated ~138 new tests bringing total to ~1,416
2026-03-20 01:20:49 -07:00
saravanakumardb1
9e510f7b49
test(scim): add 7 tests for stats, pause, resume, delete endpoints
...
- routes.test.ts: add mock functions for deleteConnector, getConnectorStats
- 7 new tests: stats endpoint, pause active, pause rejects non-active,
resume paused, resume rejects non-paused, delete paused, delete rejects active
- Total: 11 SCIM tests (was 4)
2026-03-20 01:06:07 -07:00
saravanakumardb1
28b6668fb1
fix(knowledge): align searchChunks scoring with routes, add 5 new tests
...
- repository.ts: searchChunks now includes tag matching (+2 per tag hit)
consistent with scoreChunk() in routes.ts
- routes.test.ts: add 5 new tests — stats endpoint, delete draft base,
reject non-draft delete, delete source, search chunks
- Total: 9 knowledge tests (was 4)
2026-03-20 01:04:32 -07:00
saravanakumardb1
036d17d8f0
fix(agents): use NotFoundError for missing resources, add deprecate+published tests
...
- routes.ts: use NotFoundError (404) instead of BadRequestError (400)
for missing agent by key and missing published version
- routes.test.ts: fix expectation for unknown key (400→404),
add 4 new tests: deprecate success, deprecate already-deprecated guard,
GET published success, GET published 404 when none
- Total: 13 agent tests (was 8)
2026-03-20 01:02:36 -07:00
saravanakumardb1
5f294b30b0
docs: update workspace review — all P0/P1/P2 items completed with commit links
...
- P0: typecheck sweep (0 errors), integration verified, roadmap hygiene (8c3d540 )
- P1: analytics deepened (1efbb93 ), cloud SDK + declarative loader already done
- P2: orgs RBAC (0195cde ), agents (ae87371 ), knowledge (20663d7 ), SCIM (d073122 )
- 4 items deferred to product-level: iOS keyboard, create-app publish, ChronoMind, auth-ui
- Full test sweep: 1,262 tests pass across 114 files
2026-03-20 00:46:42 -07:00
saravanakumardb1
d073122a48
feat(scim): deepen SCIM provisioning — stats, delete, pause/resume
...
- repository.ts: add ScimConnectorStats interface, getConnectorStats (user/group/event counts),
deleteConnector
- routes.ts: 4 new endpoints — GET /scim/connectors/:orgId/:id/stats,
DELETE /scim/connectors/:orgId/:id (must be paused first),
POST /scim/connectors/:orgId/:id/pause, POST /scim/connectors/:orgId/:id/resume
- Existing 4 tests unchanged, typecheck clean
2026-03-20 00:44:49 -07:00
saravanakumardb1
20663d7078
feat(knowledge): deepen Knowledge/RAG — search, stats, delete endpoints
...
- repository.ts: add searchChunks (term-based text search with scoring),
getBaseStats (source/chunk/token counts), deleteSource, deleteBase
- routes.ts: 4 new endpoints — GET /knowledge/bases/:id/stats,
DELETE /knowledge/bases/:id (draft only), DELETE /knowledge/bases/:id/sources/:sourceId,
POST /knowledge/bases/:id/search (text search with previews)
- Existing 4 tests unchanged, typecheck clean
2026-03-20 00:42:12 -07:00
saravanakumardb1
ae87371b3a
feat(agents): deepen agent registry — version lifecycle, lookup by key, delete
...
- repository.ts: add getAgentByKey, updateAgentVersion, getPublishedVersion, deleteAgent
- routes.ts: 5 new endpoints — GET /agents/by-key/:key, GET /agents/:id/published,
POST /agents/:id/versions/:vId/publish (auto-deprecates previous),
POST /agents/:id/versions/:vId/deprecate, DELETE /agents/:id (draft only)
- routes.test.ts: 6 new tests (8 total) — publish lifecycle, deprecate guard,
key lookup, delete draft-only guard
- repository.test.ts: 1 existing test unchanged
2026-03-20 00:39:24 -07:00
saravanakumardb1
0195cde1c0
feat(orgs): deepen Org/Workspace RBAC — role hierarchy, permissions, delete endpoints
...
- types.ts: add ROLE_HIERARCHY (owner>admin>member>viewer), ROLE_PERMISSIONS matrix (11 permissions),
hasPermission() and canManageRole() helpers
- repository.ts: add deleteMembership, getUserMembership, deleteOrganization, deleteWorkspace
- routes.ts: 4 new endpoints — DELETE /orgs/:id (owner only), DELETE /orgs/:id/workspaces/:wsId,
DELETE /orgs/:id/memberships/:mbrId (RBAC enforced), GET /orgs/:id/permissions
- RBAC enforcement: role update checks actor outranks target, cannot remove owner, cannot
assign role >= own level
- routes.test.ts: 6 new tests (8 total) — owner-only delete, member removal RBAC,
permissions endpoint, non-member handling
- repository.test.ts: 1 existing test unchanged
2026-03-20 00:36:02 -07:00
saravanakumardb1
1efbb9340d
feat(analytics): deepen analytics rollups — aggregation, summary dashboard, top metrics
...
- types.ts: add AggregateRollupsSchema, SummaryQuerySchema, TopMetricsSchema, AnalyticsSummary
- repository.ts: add aggregateDailyToWeekly, aggregateDailyToMonthly (merge daily rollups)
- repository.ts: add getSummary (trend + top metrics over N days), getTopMetrics (per-date)
- routes.ts: 3 new endpoints — POST /analytics/aggregate, GET /analytics/summary, GET /analytics/top-metrics
- analytics.test.ts: 11 new tests (25 total) for aggregate, summary, top-metrics schemas
- Existing 14 tests unchanged
2026-03-20 00:30:07 -07:00
saravanakumardb1
b52ace83d0
ci: update CI/CD configuration
2026-03-20 00:26:26 -07:00
saravanakumardb1
8c3d54048a
docs: reorganize roadmaps — broadcast/survey to completed, 10 scaffolded roadmaps to new dir
...
- Move platform_BROADCAST_SURVEY_ROADMAP.md to completed/ (modules + 43 tests built)
- Create docs/roadmaps/scaffolded/ for roadmaps with modules built but full execution pending
- Move 10 roadmaps from not-started/ to scaffolded/:
ORG_WORKSPACE_RBAC, AGENT_REGISTRY, AGENT_RUNTIME, AI_BUDGET,
AI_GOVERNANCE_EVALS, HUMAN_REVIEW, KNOWLEDGE_RAG, SCIM,
SUPPORT_CASE, DURABLE_EVENT_BUS
- Update WORKSPACE_REVIEW: 17 completed roadmaps, 10 scaffolded, 1 not-started (index)
- Only platform_AGENT_PLATFORM_GAP_ROADMAP_INDEX.md remains in not-started/
2026-03-20 00:25:36 -07:00
saravanakumardb1
a8bef2ea08
docs: sync workspace review with actual code state — post-audit update
...
- platform-service: 37 → 62 modules, 1020 → 1239 tests, 23 → 53 packages
- Mark completed: Platform Acceleration (4 phases), CDN, Search, Dunning,
Tenants, Retention, Backups, API Versioning, A/B Testing, Impersonation,
Predictive Analytics, AI Diagnostics, Broadcasts, Surveys
- Add scaffolded roadmaps section (11 modules with types/repo/routes/tests)
- Update maturity score: 91 → 97/100
- Update priority list: 13 items moved from TODO to DONE
- Accurate counts: 75 routes, 131 Cosmos containers, ~3,492 total tests
2026-03-20 00:02:08 -07:00
saravanakumardb1
3a14f87814
chore(platform-service): wire P2+P3 modules into server + cosmos-init
...
- server.ts: register cdnRoutes, searchRoutes, dunningRoutes (P2)
- server.ts: register tenantRoutes, retentionRoutes, backupRoutes, apiVersioningRoutes (P3)
- cosmos-init.ts: 17 new containers across 7 modules:
CDN: cdn_assets, cdn_purge_requests, cdn_origin_configs
Search: search_index, search_suggestions
Dunning: dunning_campaigns, dunning_policies
Tenants: tenants, tenant_members, tenant_invites
Retention: retention_policies, retention_jobs
Backups: backups, restores, backup_configs
API Versioning: api_versions, api_version_pins
- Total platform-service modules: ~41, tests: 1239
2026-03-19 23:50:38 -07:00
saravanakumardb1
946390f378
feat(api-versioning): add API versioning — lifecycle, pins, deprecation
...
- types.ts: ApiVersionDoc, ClientVersionPinDoc + 4 Zod schemas
- repository.ts: version CRUD, client pin CRUD, active version lookup
- routes.ts: 10 endpoints (version lifecycle, current, pins CRUD)
- api-versioning.test.ts: 13 schema tests
- draft → active → deprecated → sunset lifecycle
- Client version pinning with auto-upgrade scheduling
- Cosmos containers: api_versions, api_version_pins
2026-03-19 23:50:23 -07:00
saravanakumardb1
b5c83b1874
feat(backups): add backup/restore module — on-demand + config
...
- types.ts: BackupDoc, RestoreDoc, BackupConfigDoc + 3 Zod schemas
- repository.ts: backup/restore CRUD, config singleton per product
- routes.ts: 9 endpoints (backup CRUD, restore, history, config)
- backups.test.ts: 11 schema tests
- Supports full/incremental/selective types with expiry
- Cosmos containers: backups, restores, backup_configs
2026-03-19 23:50:09 -07:00
saravanakumardb1
c638555069
feat(retention): add data retention policies — policy CRUD, enforce, jobs
...
- types.ts: RetentionPolicyDoc, RetentionJobDoc + 2 schemas + getCutoffDate helper
- repository.ts: policy CRUD, enabled policies query, job audit trail, stats
- routes.ts: 7 endpoints (policy CRUD, enforce with dry-run, job history, stats)
- retention.test.ts: 12 schema + helper tests
- Supports delete/archive/anonymize actions with configurable date fields
- Cosmos containers: retention_policies, retention_jobs
2026-03-19 23:49:56 -07:00
saravanakumardb1
33e5fd70ce
feat(tenants): add multi-tenant module — tenant CRUD, members, invites
...
- types.ts: TenantDoc, TenantMemberDoc, TenantInviteDoc + 4 Zod schemas
- repository.ts: tenant CRUD, member CRUD, invite lifecycle, slug uniqueness
- routes.ts: 10 endpoints (tenant CRUD, invite, accept, member role, remove)
- tenants.test.ts: 16 schema + plan-limits tests
- Plan limits: free(5), starter(25), pro(100), enterprise(10k) members
- SHA-256 hashed invite tokens with 7-day expiry
- Cosmos containers: tenants, tenant_members, tenant_invites
2026-03-19 23:49:41 -07:00
saravanakumardb1
797f5e4318
feat(dunning): add billing dunning module — campaigns, policies, retries
...
- types.ts: DunningCampaignDoc, DunningPolicyDoc + 3 Zod schemas + helpers
- repository.ts: campaign CRUD, policy management, retry scheduling
- routes.ts: 11 endpoints (campaign lifecycle, policy CRUD, retry, grace period)
- dunning.test.ts: 20 schema + helper tests (getNextRetryTime, isGracePeriodExpired)
- Configurable retry schedules, grace periods, auto-downgrade
- Campaign status lifecycle: active → resolved/escalated
- Cosmos containers: dunning_campaigns, dunning_policies
2026-03-19 23:49:25 -07:00
saravanakumardb1
e9cb6b2a38
feat(search): add full-text search module — index, query, suggestions
...
- types.ts: SearchIndexDoc, SearchSuggestion + 3 Zod schemas
- repository.ts: index/remove entities, search with CONTAINS, prefix suggestions
- routes.ts: 6 endpoints (search, suggest, index entity, reindex, delete by type:id)
- search.test.ts: 15 schema validation tests
- Parameterized queries (no manual quote escaping)
- Composite doc ID format: entityType:entityId
- Cosmos containers: search_index, search_suggestions
2026-03-19 23:49:02 -07:00
saravanakumardb1
7b43a02126
feat(cdn): add CDN asset pipeline module — upload, purge, origin config
...
- types.ts: CdnAsset, PurgeRequest, OriginConfig + 3 Zod schemas
- repository.ts: asset CRUD, purge request tracking, origin config management
- routes.ts: 9 endpoints (asset upload/list/get/delete, purge, origin config CRUD)
- cdn.test.ts: 15 schema validation tests
- Supports categories (image/video/font/script/style/document/other)
- SHA-256 content hash tracking, size limits, TTL-based purge requests
- Cosmos containers: cdn_assets, cdn_purge_requests, cdn_origin_configs
2026-03-19 23:47:59 -07:00
saravanakumardb1
4071429871
fix(platform-service): fix OFFSET/LIMIT pairing, survey analytics productId, unused imports
...
- broadcasts/repository: fix OFFSET/LIMIT must be paired (Cosmos SQL requires both)
- broadcasts/repository: remove unused TargetingContext import
- surveys/repository: fix OFFSET/LIMIT in listSurveys + listResponsesForSurvey
- surveys/repository: fix getSurveyAnalytics to accept and pass productId
- surveys/repository: fix isComplete boolean param cast for Cosmos SDK types
- surveys/routes: fix parseInt safety for limit/offset query params (NaN guard)
- surveys/routes: pass productId to getSurveyAnalytics call
2026-03-19 23:47:43 -07:00
saravanakumardb1
652a8e5d15
fix(platform-service): missing cosmos containers + NaN guard in cross-product limit
...
- cosmos-init.ts: add onboarding_events + onboarding_completions containers
(onboarding repository references them but they were never registered)
- telemetry cross-product route: parseInt(limit) could produce NaN when
given non-numeric input — now clamps to 1-100 with default 20
2026-03-19 22:20:31 -07:00
saravanakumardb1
4e7401d164
test(platform-service): add broadcast + survey module tests — 43 tests
...
Broadcasts (23 tests): schema validation, targeting engine (segments,
platform, version range, country, specific users, percentage rollout),
query builder, context extraction.
Surveys (20 tests): schema validation (create, update, question, answer,
triggers), completion rate, answer type validation (NPS, text, rating,
dropdown, scale, ranking), length/range constraints.
2026-03-19 22:16:28 -07:00
saravanakumardb1
c2c5dd518a
docs: complete Platform Acceleration Roadmap (all 4 phases) — move to completed/
...
Phase 4 delivered:
- 4.1 Auto-Registration on First Request (8 tests, 1fe1e75 )
- 4.2 Multi-Product Telemetry Dashboard (6 tests, d900df3 )
- 4.3 Shared Onboarding Analytics (8 tests, 0e880fd )
- 4.4 Pre-Built Stripe Checkout Flow (6 tests, 0352ea5 )
- 4.5 Cross-Product User Dashboard design doc (deferred to post-SmartAuth)
Total across all 4 phases: 327 tests
Roadmap moved from in-progress/ to completed/
2026-03-19 22:13:21 -07:00
saravanakumardb1
0352ea5383
feat(platform-service): pre-built Stripe checkout flow (Phase 4.4) — 6 tests
...
New modules/billing-checkout/ — higher-level POST /billing/checkout with:
- Zod-validated input (plan OR explicit priceId)
- Tax collection support (automatic_tax)
- Customer email pre-fill
- Arbitrary metadata passthrough
- Trial period and promo code support
- 6 tests: plan, priceId, missing both, invalid plan, optional fields, URL validation
2026-03-19 22:10:32 -07:00
saravanakumardb1
0e880fd40d
feat(platform-service): shared onboarding analytics module (Phase 4.3) — 8 tests
...
New modules/onboarding/ with standard pattern (types → repository → routes):
- POST /onboarding/step — track step completion (any auth)
- POST /onboarding/complete — track onboarding completion (any auth)
- GET /onboarding/funnel — funnel conversion rates (admin)
- GET /onboarding/user/:userId — user progress (admin)
- Cosmos containers: onboarding_events, onboarding_completions
- Funnel: per-step unique users, conversion rates, avg duration
- 8 tests: schema validation, funnel, date filter, user progress, empty product
2026-03-19 22:07:03 -07:00
saravanakumardb1
d900df3dc8
feat(platform-service): cross-product telemetry endpoint (Phase 4.2) — 6 tests
...
GET /telemetry/cross-product?products=a,b,c — admin-only endpoint for
multi-product telemetry comparison:
- Per-product summary: totalEvents, errorEvents, errorRate, topModules, platforms
- Daily event counts per product (for stacked bar charts)
- Top error clusters across products (merged + sorted by count)
- Date range filtering via from/to query params
- 6 tests: summary, daily breakdown, clusters, date filter, unknown product, limit
2026-03-19 22:04:00 -07:00
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