Commit Graph

468 Commits

Author SHA1 Message Date
saravanakumardb1
439610cbe5 feat(admin-dashboard): add User Feedback link to sidebar navigation 2026-03-03 07:01:03 -08:00
saravanakumardb1
4839ac2799 docs(feedback): update roadmap with Phase 2.1 and Phase 3 completion status 2026-03-03 07:00:18 -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
b261cda1cd feat(feedback-client): Phase 2.1 - create @bytelyst/feedback-client TypeScript SDK 2026-03-03 00:03:03 -08:00
saravanakumardb1
3ded5ad751 fix(diagnostics,test): fix flaky test and test configuration
- Add DB_PROVIDER=memory to vitest config for diagnostics tests
- Fix flaky timestamp comparison in 'should update a session' test
  - Add 10ms delay between create and update
  - Use toBeGreaterThanOrEqual instead of strict inequality
- All 17 diagnostics tests now pass
2026-03-03 00:01:20 -08:00
saravanakumardb1
fdaffdb13c docs(feedback): fix 8 bugs/gaps identified in systematic review
- Fix inconsistent screenshotUrl fields (removed, SAS generated on-demand)
- Fix blob path pattern to match feedbackScreenshots container
- Clarify flow: direct upload to final container (no temp/move)
- Add rate limiting specs to endpoint table
- Clarify access control: users submit but cannot view (security)
- Remove sas.ts from appendix (not created)
- Align size limits to 5MB consistently
- Add missing screenshotContentType and screenshotSizeBytes
2026-03-03 00:00:14 -08:00
saravanakumardb1
0996534fb4 docs(feedback): update roadmap with Phase 1 completion and commit links 2026-03-02 23:57:48 -08:00
saravanakumardb1
6f9b799cc4 fix(jobs): add missing 'warn' method to logger type in runner.ts
The JobContext type requires log.warn but runner.ts loggers only
defined info/error. This caused TypeScript errors when passing log
to job handlers.

- Add warn: (...a: unknown[]) => void to startRunner log param
- Add warn: (...a: unknown[]) => void to tick log param
- Add warn: (...a: unknown[]) => void to executeJob log param
2026-03-02 23:57:21 -08:00
saravanakumardb1
e712968d3d test(feedback): Phase 1.5 - add screenshot and deviceContext schema tests 2026-03-02 23:56:59 -08:00
saravanakumardb1
ecb9f67c99 fix(broadcasts): Fix percentage rollout bucketing logic
- Use userId only as seed instead of userId + percentage
- Prevents users from being re-bucketed when rollout % increases
- Ensures deterministic assignment for phased rollouts
2026-03-02 23:56:42 -08:00
saravanakumardb1
e4681fbbb2 fix(broadcasts): Fix metrics increment bug in updateBroadcastMetrics
- Change from merge pattern to explicit increment pattern
- Each metric field is properly incremented instead of overwritten
- Prevents race condition data loss
2026-03-02 23:56:09 -08:00
saravanakumardb1
cfbaa92539 feat(feedback): Phase 1.3 - add SAS endpoint and screenshot view/delete routes 2026-03-02 23:55:47 -08:00
saravanakumardb1
b5fb2b683b fix(surveys): Create missing surveys module
- types.ts: Survey, Question, SurveyResponse, conditional logic, validation
- repository.ts: CRUD + analytics + CSV export with proper type casting
- routes.ts: Admin CRUD + public endpoints (13 routes)

Fixes missing module from Phase 1 implementation
2026-03-02 23:54:59 -08:00
saravanakumardb1
d876bb0626 feat(blob): add feedbackScreenshots container for user feedback attachments 2026-03-02 23:54:38 -08:00
saravanakumardb1
8d2ba9c1cc feat(feedback): Phase 1.2 - extend repository with screenshot support and blob path generation 2026-03-02 23:52:57 -08:00
saravanakumardb1
acfbd7c9d7 feat(feedback): Phase 1.1 - add screenshot fields and deviceContext to FeedbackDoc 2026-03-02 23:52:18 -08:00
saravanakumardb1
9fff880d26 docs(broadcasts,surveys): Update roadmap with Phase 1 completion status
- Mark Phase 1 as COMPLETED with commit link 1b11db3
- Update task status table with checkmarks
2026-03-02 23:51:37 -08:00
saravanakumardb1
1b11db3f6f feat(broadcasts,surveys): Phase 1 complete - backend modules
- broadcasts/types.ts: Broadcast, BroadcastTarget, BroadcastMetrics, InAppMessage
- broadcasts/repository.ts: CRUD + delivery tracking + read receipts
- broadcasts/targeting.ts: evaluateTarget(), semver, FNV-1a hash
- broadcasts/routes.ts: Admin CRUD + public endpoints (14 routes)
- surveys/types.ts: Survey, Question, SurveyResponse, conditional logic
- surveys/repository.ts: CRUD + analytics + CSV export
- surveys/routes.ts: Admin CRUD + public endpoints (13 routes)
- cosmos-init.ts: 7 new containers with TTL policies
- server.ts: Register broadcastRoutes + surveyRoutes

Implements Phase 1 of platform_BROADCAST_SURVEY_ROADMAP.md
2026-03-02 23:51:23 -08:00
saravanakumardb1
6a23a02cd4 fix(diagnostics): BUG-4, BUG-5, BUG-7, BUG-8 - race condition, transactions, test isolation, auth validation
- BUG-4: Add optimistic concurrency control with retry to updateSessionStats
- BUG-5: Document transaction limitations in batch operations
- BUG-7: Fix test isolation with unique productIds per test run
- BUG-8: Add session ownership validation to ingest endpoints
2026-03-02 23:47:14 -08:00
saravanakumardb1
4ffb28d8d2 fix(diagnostics): BUG-3 - add authentication check to /diagnostics/config endpoint 2026-03-02 23:45:36 -08:00
saravanakumardb1
4cb8b499af fix(diagnostics): BUG-1, BUG-2 - DRY violation - centralize generateId and buildPk in types.ts 2026-03-02 23:43:11 -08:00
saravanakumardb1
890a558c31 docs(diagnostics): update roadmap with Phase 1 completion status and commit links 2026-03-02 23:40:02 -08:00
saravanakumardb1
fb71981e53 test(diagnostics): add diagnostics.test.ts with 14+ tests for Phase 1 2026-03-02 23:38:21 -08:00
saravanakumardb1
d444a8dfea feat(diagnostics): wire routes into server.ts 2026-03-02 23:37:34 -08:00
saravanakumardb1
a66a689d7d feat(diagnostics): Phase 1 complete - types, repository, routes
- types.ts: Session, Trace, Log, Screenshot schemas with Zod validation
- repository.ts: CRUD operations with composite partition keys
- routes.ts: REST endpoints for session management and data ingest

TODOs for Phase 2:
- TODO-1: Event bus integration
- TODO-2: PII redaction implementation
- TODO-6: PII redaction in log ingest
- TODO-7: Fatal log alerting
- TODO-8: Blob SAS token generation
2026-03-02 23:36:59 -08:00
saravanakumardb1
f272a44bbe feat(diagnostics): add repository.ts with session, trace, log, screenshot CRUD 2026-03-02 23:34:35 -08:00
saravanakumardb1
dea1521dd5 feat(diagnostics): add 4 Cosmos containers (sessions, traces, logs, screenshots) with TTL 2026-03-02 23:32:49 -08:00
saravanakumardb1
f51c352452 feat(diagnostics): add types.ts with session, trace, log, screenshot schemas 2026-03-02 23:32:27 -08:00
saravanakumardb1
4163e1410a docs(diagnostics): add REMOTE_DIAGNOSTICS_ROADMAP.md with 140+ tasks across 4 phases
Complete roadmap for remote debug tracing system with:
- Phase 1: Server foundation (types, repository, routes, 38+ tests)
- Phase 2: Client SDKs (TypeScript, Swift, Kotlin)
- Phase 3: Admin UI (Next.js dashboard)
- Phase 4: Advanced features (auto-triggers, profiling)

Review fixes included:
- Fixed partition keys to avoid hot partitions (composite pk)
- Added PII redaction patterns (email, SSN, CC, phone, IP, JWT)
- Added event bus integration with 8 events
- Fixed screenshot storage to use Azure Blob
- Added rate limiting specs for all endpoints
- Added ETag caching for config polling
2026-03-02 23:29:39 -08:00
saravanakumardb1
03ad80a615 docs(roadmaps): mark Pre-Launch Signup and Marketplace as complete, move to completed/ folder 2026-03-02 10:26:23 -08:00
saravanakumardb1
038cf30aca fix(jobs): implement stub job handlers with actual functionality 2026-03-02 10:19:15 -08:00
saravanakumardb1
41b32a840f fix(extraction-service): export rate limit cleanup functions for graceful shutdown 2026-03-02 10:16:24 -08:00
saravanakumardb1
aeae62027f fix(telemetry): remove redundant event.userId check in cluster affected users dedup 2026-03-02 10:13:47 -08:00
saravanakumardb1
e943f14608 fix(marketplace): prevent duplicate votes with vote tracking collection
- Add marketplace_votes container to cosmos-init.ts
- Add MarketplaceVoteDoc type and vote repository functions
- Fix vote endpoint to toggle votes (prevent unlimited voting)
- Fix listMyReports to filter by productId for data isolation
- Update report routes to pass productId to listMyReports
2026-03-02 10:12:33 -08:00
saravanakumardb1
770bc5ae51 feat(referrals): partition key migration to /referrerId with dual-write backfill 2026-03-02 10:04:57 -08:00
saravanakumardb1
3e05260a6f feat(marketplace): generic template marketplace with listings, reviews, installs, certification 2026-03-02 10:02:54 -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
90bc31dc58 docs(roadmap): update cloud-agnostic status to reflect Sprints 1-3 complete 2026-03-02 09:32:42 -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
faca108813 docs(sdk): fix stale route references in Swift SDK source comments and README 2026-03-02 09:17:09 -08:00
saravanakumardb1
1beb6ae7ed fix(kotlin-sdk): add /api prefix to all API paths for consistency
Normalize Kotlin SDK API paths to match Swift SDK and TypeScript SDK convention:
- BLAuthClient: /auth/* → /api/auth/*
- BLBlobClient: /blob/sas → /api/blob/sas
- BLCrashReporter: /telemetry/events → /api/telemetry/events
- BLFeatureFlagClient: /flags/poll → /api/flags/poll
- BLKillSwitchClient: /flags/kill-switch → /api/flags/kill-switch
- BLLicenseClient: /licenses/* → /api/licenses/*
- BLTelemetryClient: /telemetry/events → /api/telemetry/events

All SDKs now consistently include /api prefix in paths, with baseUrl
configured as http://host:port/api. Fixes incompatibility introduced
in recent path normalization (commit 78b942a).
2026-03-02 09:16:12 -08:00
saravanakumardb1
053190d660 fix(kotlin-sdk): add missing /api prefix to flags, kill-switch, and telemetry routes 2026-03-02 09:15:03 -08:00
saravanakumardb1
78b942a105 fix(sdk): normalize API path convention — all SDK components now include /api prefix in paths 2026-03-02 09:10:19 -08:00
saravanakumardb1
10e252617b feat(packages): fix test assertions for x-request-id header compatibility
- Update kill-switch-client and feature-flag-client tests to use
  expect.objectContaining for headers to handle x-request-id
- Move React Native SDK roadmap to completed/

Total: 44 client-side package tests passing
2026-03-02 09:08:45 -08:00
saravanakumardb1
7ca2139418 refactor(storage): migrate to storage abstraction 2026-03-02 09:07:33 -08:00
saravanakumardb1
8315814fd9 docs(roadmap): mark Sprint 3 LLM abstraction as DONE 2026-03-02 09:06:56 -08:00
saravanakumardb1
2c047bcf48 feat(telemetry): phase 4 operational wiring — env vars, roadmap complete 2026-03-02 09:00:16 -08:00
saravanakumardb1
fa9603732a docs(roadmap): mark Sprint 1 (DB abstraction) complete, move to completed/ 2026-03-02 02:23:09 -08:00
saravanakumardb1
2b6551ada6 docs(roadmap): update cloud-agnostic refactor with parallel agent scan results — Sprint 1 ~96% done 2026-03-02 02:09:21 -08:00