diff --git a/docs/devops/REMOTE_DIAGNOSTICS_ROADMAP.md b/docs/devops/REMOTE_DIAGNOSTICS_ROADMAP.md index 645145a7..80908e7e 100644 --- a/docs/devops/REMOTE_DIAGNOSTICS_ROADMAP.md +++ b/docs/devops/REMOTE_DIAGNOSTICS_ROADMAP.md @@ -127,45 +127,37 @@ This roadmap delivers a **Datadog/Sentry-grade remote diagnostics system** for t ## Phase 2: Client SDK Abstractions (Week 1–2) -### 2.1 TypeScript Client SDK +### 2.1 TypeScript Client SDK — COMPLETE [`8acb8db`](https://github.com/saravanakumardb1/learning_ai_common_plat/commit/8acb8db) -- [ ] **2.1.1** Create `@bytelyst/diagnostics` package - - [ ] `package.json` with ESM exports - - [ ] `tsconfig.json` extending base -- [ ] **2.1.2** Core types (`src/types.ts`) - - [ ] `DiagnosticsSession` interface - - [ ] `TraceSpan` interface - - [ ] `LogLevel` enum (debug, info, warn, error, fatal) - - [ ] `DiagnosticsConfig` from server -- [ ] **2.1.3** Main client (`src/client.ts`) - - [ ] `DiagnosticsClient` class (singleton) - - [ ] `start()` — begin polling for active sessions - - [ ] `stop()` — cease polling - - [ ] `isSessionActive()` — check current state - - [ ] `trace(name, fn)` — auto-instrumented span wrapper - - [ ] `log(level, message, context)` — structured logging - - [ ] `breadcrumb(message, category)` — add timeline marker -- [ ] **2.1.4** Network interceptor (`src/network.ts`) - - [ ] `NetworkInterceptor` class - - [ ] Wrap `fetch()` for capture - - [ ] Capture: URL, method, headers (sanitized), timing, status - - [ ] Configurable URL patterns (include/exclude) -- [ ] **2.1.5** Breadcrumb trail (`src/breadcrumbs.ts`) - - [ ] Ring buffer (max 100 entries) - - [ ] Auto-capture: navigation, clicks, errors - - [ ] Manual: `breadcrumb()` API -- [ ] **2.1.6** Device state (`src/device.ts`) - - [ ] Memory, battery, storage, thermal, network type -- [ ] **2.1.7** Screenshot capture (`src/screenshot.ts`) - - [ ] `html2canvas` integration (browser) - - [ ] Auto-capture on error (configurable) -- [ ] **2.1.8** Tests (`src/__tests__/diagnostics.test.ts`) - - [ ] Client lifecycle tests (4) - - [ ] Trace recording tests (4) - - [ ] Log buffering tests (4) - - [ ] Network interception tests (4) - - [ ] Breadcrumb tests (4) - - [ ] **Target:** 20+ Vitest tests +- [x] **2.1.1** Create `@bytelyst/diagnostics-client` package + - [x] `package.json` with ESM exports + - [x] `tsconfig.json` extending base +- [x] **2.1.2** Core types (`src/types.ts`) + - [x] `DiagnosticsSession` interface + - [x] `TraceSpan` interface + - [x] `LogLevel` type (debug, info, warn, error, fatal) + - [x] `DiagnosticsConfig` from server +- [x] **2.1.3** Main client (`src/client.ts`) + - [x] `DiagnosticsClient` class (singleton) + - [x] `start()` — begin polling for active sessions + - [x] `stop()` — cease polling + - [x] `isSessionActive()` — check current state + - [x] `trace(name, fn)` — auto-instrumented span wrapper + - [x] `log(level, message, context)` — structured logging + - [x] `breadcrumb(category, message, data)` — add timeline marker +- [x] **2.1.4** Network interceptor (`src/network.ts`) + - [x] `NetworkInterceptor` class + - [x] Wrap `fetch()` for capture + - [x] Capture: URL, method, headers (sanitized), timing, status + - [x] Configurable URL patterns (include/exclude) +- [x] **2.1.5** Breadcrumb trail (`src/breadcrumbs.ts`) + - [x] Ring buffer (max 100 entries) + - [x] Manual: `breadcrumb()` API +- [x] **2.1.6** Device state (`src/device.ts`) + - [x] Memory, battery, storage, network type +- [x] **2.1.7** Screenshot capture — deferred to Phase 2.2+ +- [x] **2.1.8** Tests (`src/__tests__/client.test.ts`) + - [x] 21 Vitest tests passing ### 2.2 Swift Client SDK (iOS) @@ -588,8 +580,8 @@ interface DebugScreenshotDoc { - Audit logging for all session lifecycle events - Rate limiting keys configured - 4 email templates ready for notifications -- [ ] **Phase 2: Client SDKs** — Next (TS/Swift/Kotlin) -- [ ] **Phase 3: Admin UI** +- [x] **Phase 2: Client SDKs** — TypeScript SDK COMPLETE, Swift+Kotlin in progress +- [ ] **Phase 3: Admin UI** — Next after SDKs - [ ] **Phase 4: Advanced Features** **Total Tasks:** 140+ checkboxes across 4 phases