Commit Graph

187 Commits

Author SHA1 Message Date
root
534395bb5e fix(dashboards): restore runtime and expose internal ops health 2026-03-31 07:26:43 +00:00
root
c0cf80d96b docs(devops): add Track A handoff and prep gateway changes 2026-03-29 23:57:03 +00:00
root
eba6c7a641 chore(platform): align docker and package outputs 2026-03-29 23:41:08 +00:00
saravanakumardb1
e928ec6025 fix(infra): audit round 2 — token guard, frozen-lockfile, build cache, docs
- Add require_gitea_token() guard — fail early with actionable message
  if GITEA_NPM_TOKEN is empty after restore (prevents silent failures
  in Phase 4/5/7)
- Wire require_gitea_token() into phase4_build and setup_compose_env
- Remove --frozen-lockfile from admin-web + tracker-web Dockerfiles
  (Docker context is missing services/ and scripts/ workspace members;
  Phase 4 reconciles lockfile so --frozen-lockfile is unnecessary)
- Add docker builder prune after Phase 7 builds (reclaim 20-40 GB)
- Update README: pre-flight thresholds, Ollama stop/restart behavior,
  Loki + Azurite in port map, updated memory pressure note
2026-03-24 13:37:21 -07:00
saravanakumardb1
2b9fd71740 fix(docker): make proxy optional in dashboard Dockerfiles, strip proxy in VM setup 2026-03-24 10:35:00 -07:00
saravanakumardb1
eac1ba3faf fix(dashboards): upgrade Dockerfiles from node:20 to node:22-alpine 2026-03-24 10:05:11 -07:00
saravanakumardb1
4d050696c1 fix(dashboards): add typecheck script, remove stale engines.node 20.x 2026-03-24 08:39:58 -07:00
saravanakumardb1
ef246989b6 fix(docker): align dashboard images with node 20 2026-03-23 16:17:42 -07:00
saravanakumardb1
618ba6a86d fix(docker): harden dashboard container builds 2026-03-23 16:16:47 -07:00
saravanakumardb1
0ffbdce0ef fix(ci): fix admin-web test mocks + workflow build command
- Add getCurrentUserFromRequest + requireAdmin to all 8 auth-server test mocks
- Fixes Vitest 4.x strict mock requiring all accessed exports
- Skip pnpm install in CI workflow (deps already installed locally)
2026-03-22 21:11:24 -07:00
saravanakumardb1
34c34360b7 fix(dashboards): wire telemetry error reporting in admin-web + tracker-web error boundaries
- Import trackEvent from @/lib/telemetry in both error.tsx files
- Report unhandled errors with error name, message, and digest
- Resolves P0 TODO items #1 and #2 from WORKSPACE_TODO_AUDIT.md
2026-03-21 23:49:14 -07:00
saravanakumardb1
9180954903 fix(platform+admin-web): 3 bugs in delivery retry + webhooks delivery loading
Backend (delivery retry):
- Use NotFoundError (404) instead of BadRequestError (400) for missing log doc
- Add telegram + slack retry support (was email-only, threw error for others)

Frontend (delivery page):
- Add pk field to DeliveryEntry interface
- Pass pk query param in retry call so backend can look up the doc
- Fix handleRetry to accept full entry object instead of just id

Frontend (webhooks page):
- Parallelize delivery fetches with Promise.allSettled (was sequential for loop)
- Significant page load improvement for subscriptions with many deliveries
2026-03-21 23:21:58 -07:00
saravanakumardb1
29605da16d fix(admin-web): implement debug-session JSON download, remove console.log 2026-03-21 23:13:58 -07:00
saravanakumardb1
ead9457345 feat(platform+admin-web): implement 4 missing backend endpoints + re-enable frontend
Backend endpoints added:
- POST /delivery/logs/:id/retry — re-dispatches failed email deliveries (Q1)
- POST /reviews/:id/flag — flags review item with reason + admin metadata (Q2)
- DELETE /agent-evals/suites/:id — deletes evaluation suite with 204 response (Q3)

Frontend re-enabled:
- delivery: retry button for failed entries
- reviews: flag dropdown menu item
- agent-evals: delete dropdown menu item + Trash2 icon

Frontend fixed:
- webhooks: per-subscription delivery loading via GET /subscriptions/:id/deliveries (Q4)
2026-03-21 23:11:38 -07:00
saravanakumardb1
8c45e440df feat(admin-web): add experiments + ab-testing proxy routes, fix webhooks deliveries
New proxy routes:
- /api/experiments → rewrites to /api/ab-testing/experiments (base + catch-all)
- /api/ab-testing/[...path] → /api/ab-testing/* (for suggestions, hypotheses)

Bug fix:
- B20: webhooks page called GET /webhooks/deliveries (404) — removed broken call,
  backend only has GET /webhooks/subscriptions/:id/deliveries (TODO Q4)
2026-03-21 22:56:22 -07:00
saravanakumardb1
880338b79c feat(admin-web): add missing proxy routes for ai-diagnostics + feedback pages
- ai-diagnostics: GET/POST /api/ai-diagnostics/* → platform-service /api/ai-diagnostics/*
- feedback: GET/POST/DELETE /api/feedback/* → platform-service /api/feedback/*
- feedback base: GET/POST /api/feedback → platform-service /api/feedback

These pages existed with sidebar items but had no proxy routes, causing 404s.
2026-03-21 21:17:04 -07:00
saravanakumardb1
c54a3fe277 fix(admin-web): fix agent-evals run endpoint + disable delete (no backend)
- B18: POST /agent-evals/suites/:id/run → /suites/:id/runs (plural)
- B19: DELETE /agent-evals/suites/:id has no backend endpoint — disabled with TODO Q3
2026-03-21 21:14:52 -07:00
saravanakumardb1
587d22e107 fix(admin-web): correct 4 more broken API calls in organizations + marketplace
Organizations fixes:
- B13: GET /orgs/:id/members → GET /orgs/:id/memberships (match backend)
- B14: DELETE /orgs/:id/delete → DELETE /orgs/:id (no suffix needed)

Marketplace fixes:
- B16: GET /marketplace/listings → GET /marketplace/admin/pending (admin view)
- B17: POST /marketplace/listings/:id/approve → POST /marketplace/admin/:id/approve
- B17: POST /marketplace/listings/:id/reject → POST /marketplace/admin/:id/reject
2026-03-21 21:12:32 -07:00
saravanakumardb1
a3e94f3f3d fix(admin-web): correct 12 broken API calls across 5 pages
Pages fixed:
- waitlist: GET /waitlist/list → GET /waitlist (root)
- delivery: GET /delivery/log → GET /delivery/logs; disable retry button (no backend endpoint)
- reviews: GET /reviews/list → GET /reviews; approve/reject → POST /:id/decision with body; disable flag (no endpoint)
- jobs: GET /jobs/list → GET /jobs; GET /runs/list → GET /runs; trigger → POST /jobs/trigger with {jobId}
- gdpr-export: GET /exports/list → GET /exports; POST /exports/create → POST /exports

TODO Q1: delivery retry endpoint not implemented in backend
TODO Q2: reviews flag endpoint not implemented in backend
2026-03-21 21:06:49 -07:00
saravanakumardb1
0b8e45a9b0 fix(admin-web): jobs proxy route missing PATCH+DELETE exports — page uses PATCH in handleToggle 2026-03-21 20:46:53 -07:00
saravanakumardb1
e5ffdad8e8 fix(admin-web): jobs page uses PUT instead of PATCH — matches backend API 2026-03-21 20:44:00 -07:00
saravanakumardb1
daf1f90706 fix(admin-web): maintenance page API path mismatches + base proxy route
- maintenance page: 'status' → 'full' (GET /settings/maintenance/full)
- maintenance page: 'mode' POST → '' PUT (PUT /settings/maintenance)
- Add maintenance base route.ts for root-level GET/PUT proxy
2026-03-21 20:37:32 -07:00
saravanakumardb1
ce0074d6ee fix(admin-web): proxy routes + pages use cookie-based auth
- Add getCurrentUserFromRequest() to auth-server.ts (checks cookies first, then Authorization header)
- Update all 34 proxy routes: getCurrentUser(req.headers.get('authorization')) → getCurrentUserFromRequest(req)
- Add createProxyFetch() shared helper in lib/proxy-fetch.ts (injects auth + product-id headers)
- Update 15 admin pages: replace inline fetch helpers with createProxyFetch
- Root cause: newer pages used bare fetch() without Authorization headers, causing 401s on all proxy routes
2026-03-21 20:31:30 -07:00
saravanakumardb1
dba594d4eb fix(admin-web): GDPR export routes — create exports proxy + fix page paths
- Create /api/exports/[...path] proxy route for platform-service exports module
- Fix gdpr-export page: /api/maintenance/gdpr-exports → /api/exports/list|create
- Old path routed to settings/maintenance which has no export endpoints
2026-03-21 20:18:37 -07:00
saravanakumardb1
7b6aa53d68 fix(admin-web): proxy route path mismatches + missing HTTP methods
- maintenance: fix path /api/maintenance → /api/settings/maintenance
- maintenance: replace PATCH with PUT + add DELETE (matches backend API)
- ip-rules: fix path /api/ip-rules → /api/ratelimit/ip-rules
- jobs: add missing PUT handler for job updates
2026-03-21 20:12:24 -07:00
saravanakumardb1
633fe855bf fix(admin-web): runs proxy route — same DELETE body-forwarding fix 2026-03-21 18:19:28 -07:00
saravanakumardb1
b6f9636171 fix(admin-web): proxy routes forward body on DELETE — use method !== GET/HEAD guard 2026-03-21 18:18:26 -07:00
saravanakumardb1
e712113c30 fix(admin-web): remove 38 unused imports across 13 dashboard pages 2026-03-21 18:13:29 -07:00
saravanakumardb1
e0bc38c365 feat(admin-web): Phase 4 — event-subscriptions, ip-rules, maintenance, sessions, status, gdpr-export pages 2026-03-21 18:05:14 -07:00
saravanakumardb1
aaceba2ee5 feat(admin-web): Phase 2 — webhooks, knowledge, agent-evals, reviews, marketplace, delivery, jobs pages 2026-03-21 17:53:44 -07:00
saravanakumardb1
aa33b12f8c feat(admin-web): Phase 1 — organizations, support, AI budgets, waitlist pages 2026-03-21 17:47:41 -07:00
saravanakumardb1
d1d01727e4 fix(platform): register ai-diagnostics routes + wire 6 hidden sidebar pages
Phase 0 from DASHBOARD_UI_COVERAGE_ROADMAP:
- Register ai-diagnostics routes in server.ts (671-line module was never mounted)
- Add 6 hidden pages to admin sidebar-nav.tsx:
  Debug Sessions, Health Dashboard, Extraction, Experiments,
  Predictive, AI Diagnostics
- /users was already in sidebar (no change needed)
- Kill switch verified: already per-product via productId query param
- Admin sidebar now has 33 items (was 27)
2026-03-21 17:40:35 -07:00
saravanakumardb1
10b48a3800 feat(admin-web): add ActionTrail integration page
- New /actiontrail page with 4 tabs: Timeline, Agents, Alerts, Approvals
- Summary cards: total actions, critical/high count, pending approvals, active alerts
- Risk-level filtering on timeline, color-coded risk badges
- Server-side API proxy route (/api/actiontrail) to ActionTrail backend (port 4018)
- actiontrail-client.ts: typed API client using @bytelyst/api-client
- Sidebar nav item with Crosshair icon
- ACTIONTRAIL_SERVICE_URL added to .env.example
- Graceful fallback when ActionTrail service is unavailable
2026-03-21 13:20:15 -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
f56672508a chore: update dependencies 2026-03-19 21:25:30 -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
root
b7c8e4fbef test(router): tighten routing and telemetry assertions 2026-03-14 14:53:43 +00:00
root
9a746dfffa test(tracker-web): cover auth proxy 502 responses 2026-03-14 06:43:36 +00:00
root
128207ac21 fix(testing): stabilize workspace test dependencies 2026-03-14 06:35:29 +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
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
0c4e53a0ed feat(auth): Phase 6 — enterprise SAML/OIDC, magic link, HIBP, E2E specs
6A: Enterprise IdP CRUD, SAML callback, OIDC callback, email domain lookup
6B: Magic link send/verify (15min TTL, anti-enumeration), HIBP breach check
6D: 3 new E2E specs (account-linking, step-up, enterprise) — total 8 SmartAuth specs
- All 53 auth tests passing
2026-03-12 15:25:28 -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
10494ae0e4 feat(auth): SmartAuth tracker-web — OAuth proxy, MFA verify, login page with Google Sign-In
- Add OAuth proxy route with productId forwarding via getRequestProductId
- Add MFA verify proxy route
- Update login page with Google Sign-In button (env-gated) and MFA challenge flow
- Fix completeAuth to avoid redundant router.push before window.location.href
- Add NEXT_PUBLIC_GOOGLE_CLIENT_ID to .env.example
- Add MessageEvent to ESLint globals for popup message handler
2026-03-12 11:15:44 -07:00
saravanakumardb1
ac798a727e test(auth): SmartAuth Playwright E2E specs — login, MFA settings, security dashboard, devices, passkeys
- smartauth-login.spec.ts: Google Sign-In button presence, MFA challenge not shown initially
- smartauth-mfa-settings.spec.ts: MFA status, setup/disable flows with API mocking
- smartauth-security-dashboard.spec.ts: stats cards, login events table, suspicious filter
- smartauth-devices.spec.ts: device list, trust badges, revoke all button
- smartauth-passkeys.spec.ts: passkey list, add button, empty state, device type labels
2026-03-12 11:13:41 -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
4537ed271e docs(ux-lab): consolidate each kit to single PROMPT.md + .gitignore only 2026-03-05 21:42:19 -08:00
saravanakumardb1
1db2263599 docs(ux-lab): fix GitHub username saravanakumardb1 → saravanakumardb in all kit docs 2026-03-05 21:20:05 -08:00
saravanakumardb1
401bf13a88 docs(ux-lab): add GitHub repo names to all 8 kit folders + add missing READMEs 2026-03-05 21:17:36 -08:00
saravanakumardb1
c66d014044 chore(ux-lab): add notify/states, settings, and command palette kits 2026-03-05 19:56:42 -08:00
saravanakumardb1
504ab0f0f5 chore(ux-lab): remove lovable ops ui kit repo 2026-03-05 19:45:24 -08:00
saravanakumardb1
d8dc93c157 chore(ux-lab): tighten acceptance checklists for agent pushes 2026-03-04 20:42:55 -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
fab88a57a4 refactor(admin-web): replace hardcoded chart colors with theme tokens 2026-03-04 17:32:35 -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
a31fdfe55a feat(predictive-analytics): complete admin UI for churn prediction and health scoring
- Add health-dashboard page with 6-dimension health cards and anomaly detection
- Add predictive/at-risk page with user risk profiles and segmentation
- Add predictive/campaigns page with campaign management and stats
- Add predictive-client.ts API client with full type coverage
- Update all 3 roadmaps to reflect complete implementation status
2026-03-03 13:48:37 -08:00
saravanakumardb1
460ed6d0c0 feat(ai-diagnostics): add admin UI insights page [4.1] 2026-03-03 12:15:09 -08:00
saravanakumardb1
44fa045ec5 feat(ab-testing): AI hypothesis generation and admin dashboard UI [3.1][3.2][3.3][4.1][4.2][4.3] 2026-03-03 11:53:48 -08:00
saravanakumardb1
97b3ffb21d feat(ai-diagnostics): add LLM analyzer with prompts and insight generation [2.1-2.2] 2026-03-03 11:52:12 -08:00
saravanakumardb1
1ff02934fa feat(ai-diagnostics): add telemetry linking and context enrichment [1.3] 2026-03-03 11:50:28 -08:00
saravanakumardb1
e2e5e2cece feat(admin-dashboard): add Session Detail View (Phase 3.2)
- New /ops/debug-sessions/[id]/page.tsx with 5 tabs

- Session header with status badge and action buttons (Extend, Stop, Download)

- Info cards: User, Device, Duration, Collection Level

- Timeline tab: Session lifecycle breadcrumbs

- Logs tab: Level filter (debug/info/warn/error/fatal)

- Network tab: Request list with method/status/duration

- Traces tab: Trace spans with status and timing

- Screenshots tab: Placeholder for captured screenshots

Features:

- Auto-refresh every 5 seconds

- Live data fetching for traces and logs

- Color-coded status badges and log levels
2026-03-03 09:47:34 -08:00
saravanakumardb1
2e697a13db feat(admin-dashboard): add Debug Sessions page (Phase 3.1)
- New /ops/debug-sessions page with session list table

- Status filter and search functionality

- Create Session modal with form fields

- Auto-refresh every 5 seconds

- Client library in lib/diagnostics-client.ts

Features:

- View all debug sessions with filtering

- Create new debug sessions via modal

- Real-time status updates
2026-03-03 09:38:22 -08:00
saravanakumardb1
399f6f0bed test(admin-web): Playwright E2E tests for diagnostics (Phase 4.4)
- Debug session CRUD: create, view, pause, resume, cancel
- Session filtering and search
- Logs viewing with level filtering and search
- Trace span viewing with expansion
- Screenshot gallery and lightbox navigation
- End-to-end workflow tests
- Error threshold and crash-triggered auto-session tests
2026-03-03 09:36:53 -08:00
saravanakumardb1
a5d68decdb feat(diagnostics): Admin dashboard client library (Phase 3.4)
- querySessions, createSession, getSession, updateSession, cancelSession
- getTraces, getLogs, getScreenshots
- Full TypeScript types for all diagnostics entities
2026-03-03 09:35:41 -08:00
saravanakumardb1
8d7d8e4e18 test(admin-web): Rich media E2E tests for broadcasts
- Create broadcasts with single/multiple media items
- Upload media via blob storage
- Validate media URLs
- Reorder and remove media
- User dashboard media display and lightbox
- Video playback and media view tracking
2026-03-03 08:37:34 -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
bd8c6fde43 feat(admin): Phase 2.3 - Survey builder UI
- surveys/[id]/page.tsx: Full survey builder with 9 question types
- Questions tab: Add/edit/remove questions with drag handles
- 9 question types: single/multiple choice, rating, NPS, text, dropdown, scale, ranking
- Dynamic options management for choice-based questions
- Settings tab: Display trigger selection, incentive configuration
- Targeting tab: Platform and segment targeting
2026-03-03 07:30:10 -08:00
saravanakumardb1
dbc9ffd328 feat(admin): Phase 2.2 - Broadcast create/edit wizard 2026-03-03 07:28:56 -08:00
saravanakumardb1
ee3b23711f feat(admin): Phase 2.1 - Broadcast and Survey list pages
- broadcasts/page.tsx: List, filter, delete, send, pause, clone actions
- surveys/page.tsx: List, filter, delete, pause, duplicate, analytics, CSV export
- api.ts: Add all broadcast and survey API functions with types
- sidebar-nav.tsx: Add navigation items with Megaphone and ClipboardList icons
2026-03-03 07:21:37 -08:00
saravanakumardb1
8614e3f0f1 fix(feedback): address 6 bugs/gaps from systematic review
- Fix search icon positioning (add relative container)
- Fix toast variant from 'destructive' to 'error'
- Remove non-existent screenshotUrl fields from delete endpoint
- Fix misleading blob path comment (blob stays at initial location)
- Add download screenshot function and button
- Add pointer-events-none to search icon
2026-03-03 07:03:27 -08:00
saravanakumardb1
439610cbe5 feat(admin-dashboard): add User Feedback link to sidebar navigation 2026-03-03 07:01:03 -08:00
saravanakumardb1
d2c8931ad0 feat(admin-dashboard): Phase 3.1-3.3 - add feedback management UI with screenshot support
- Add feedback list page with search, type/status/screenshot filters
- Add thumbnail indicator for feedback with screenshots
- Add detail dialog with device context panel
- Add screenshot lightbox viewer
- Add delete screenshot button for GDPR compliance
2026-03-03 06:59:27 -08:00
saravanakumardb1
ee9d4b358d feat(cloud-agnostic): complete Sprints 4-6 — secrets consumer migration, @bytelyst/speech package, push verified 2026-03-02 09:46:24 -08:00
saravanakumardb1
cad17a41d6 fix(tracker-web): use dynamic import in telemetry test for correct mock ordering 2026-03-02 09:18:27 -08:00
saravanakumardb1
0ee0533699 fix(tracker-web): telemetry test mock setup for process.env and document.addEventListener 2026-03-02 09:17:51 -08:00
saravanakumardb1
8d9fc4b8d4 fix(admin-web): fix 7 pre-existing test failures — product-config mocks, invitation prefix, telemetry DOM stubs 2026-03-02 02:00:51 -08:00
saravanakumardb1
fc1fef9c70 refactor(dashboards): migrate admin-web to @bytelyst/datastore 2026-03-02 01:49:41 -08:00
saravanakumardb1
dcabe46de2 feat(jarvis): add jarvis-agents, jarvis-sessions, jarvis-memory modules (63 tests) 2026-03-01 07:09:12 -08:00
saravanakumardb1
022720bf6e feat(admin-dashboard): add edge middleware for API route auth gating 2026-02-28 20:25:42 -08:00
saravanakumardb1
c3885059cf feat(dashboards): add error and not-found pages for admin and tracker dashboards 2026-02-28 20:24:15 -08:00
saravanakumardb1
ac106ed917 feat(tracker): add product switcher — filter items by any product
- product-config.ts: add getRequestProductId(req) + KNOWN_PRODUCTS
- product-context.tsx: client-side product selection context
- product-switcher.tsx: native select dropdown component
- tracker-client.ts: inject x-product-id header on all API calls
- proxy route: forward x-product-id header to platform-service
- providers.tsx: wrap with ProductProvider
- dashboard/layout.tsx: render ProductSwitcher in top nav
2026-02-28 14:15:18 -08:00
saravanakumardb1
ed7fa3f9a4 feat(admin): add product switcher — filter all data by any product
- product-config.ts: add getRequestProductId(req) helper + KNOWN_PRODUCTS list
- product-context.tsx: new React context storing selected productId in localStorage
- product-switcher.tsx: dropdown component with icons for all 4 products
- api.ts: pass x-product-id header from localStorage on all API calls
- providers.tsx: wrap with ProductProvider
- sidebar-nav.tsx: render ProductSwitcher between logo and nav
- repositories/users.ts + tokens.ts: accept optional productId parameter
- 8 API routes updated: users, auth/login, auth/forgot-password, seed,
  settings/plans, themes/active, analytics/retention, analytics/revenue
2026-02-28 14:12:15 -08:00
saravanakumardb1
ba2641c552 feat(platform-service): add push notification triggers module (6 endpoints, 22 tests)
- 7 trigger types: streak_risk, fast_milestone, stage_transition, social_invite, weekly_digest, achievement_unlocked, refeeding_reminder
- Built-in templates with variable interpolation
- CRUD + batch create + pending trigger query + status updates + stats
- push_triggers container (TTL 30d)
- 1,112 total platform-service tests passing
2026-02-28 14:10:11 -08:00
saravanakumardb1
7210464019 fix(tracker-web): replace broken webpack alias with transpilePackages — build now succeeds
fix(config): mock Azure SDK in keyvault tests — eliminates timeouts, 26/26 pass in <1s
2026-02-28 12:11:37 -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
4e94ecd721 feat(auth): add forgot-password/change-password API routes to admin dashboard + wire email delivery
Admin dashboard:
- platform-client.ts: Added forgotPasswordViaService, changePasswordViaService, deleteAccountViaService
- app/api/auth/forgot-password/route.ts: New API route proxying to platform-service
- app/api/auth/change-password/route.ts: New API route for authenticated password change

Platform-service (from prior session):
- auth/routes.ts: Added /auth/change-password and DELETE /auth/account endpoints, wired email verification on register
- auth/types.ts: Added ChangePasswordSchema and DeleteAccountSchema
- delivery/subscribers.ts: Updated password reset subscriber, added email verification subscriber
- delivery/channels/email.ts: Added ByteLyst email API provider (sendViaBytelyst)
- delivery/types.ts: Added 'bytelyst' provider
- events/types.ts: Added resetToken/displayName to user.password_reset, added user.email_verification_requested event
2026-02-28 04:17:04 -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