From 0edafab5013deaa3ef25bf90e8ebe5ae1b9bb2a6 Mon Sep 17 00:00:00 2001 From: saravanakumardb1 Date: Tue, 17 Feb 2026 10:16:45 -0800 Subject: [PATCH] =?UTF-8?q?docs:=20Phase=202=20complete=20=E2=80=94=20Andr?= =?UTF-8?q?oid=20telemetry=20checked=20off,=20roadmap=20updated?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/WINDSURF/TELEMETRY_ROADMAP.md | 50 +++++++++++++++++------------- 1 file changed, 29 insertions(+), 21 deletions(-) diff --git a/docs/WINDSURF/TELEMETRY_ROADMAP.md b/docs/WINDSURF/TELEMETRY_ROADMAP.md index e8b5f08d..83ad4503 100644 --- a/docs/WINDSURF/TELEMETRY_ROADMAP.md +++ b/docs/WINDSURF/TELEMETRY_ROADMAP.md @@ -1,6 +1,6 @@ # Client Telemetry — Implementation Roadmap -> **Status:** Phase 2 in progress (Android pending; tracker + admin self-telemetry done), Phase 3 pending +> **Status:** Phase 2 complete ✅, Phase 3 in progress > **Last updated:** 2026-02-17 > **Design doc:** [`CLIENT_TELEMETRY_DESIGN.md`](./CLIENT_TELEMETRY_DESIGN.md) > **Repos:** `learning_ai_common_plat` (platform-service) · `learning_voice_ai_agent` (all clients + dashboards) @@ -94,12 +94,18 @@ - [x] `/api/telemetry/admin-ingest/route.ts` — Separate proxy from admin query route ([`a102609`](https://github.com/saravanakumardb1/learning_voice_ai_agent/commit/a102609)) - [x] `providers.tsx` — `initTelemetry()` called on app mount ([`a102609`](https://github.com/saravanakumardb1/learning_voice_ai_agent/commit/a102609)) -### Android (Not Started) +### Android -- [ ] `TelemetryClient.kt` — Kotlin telemetry client for Android keyboard + main app -- [ ] Instrument `LysnrInputMethodService.kt` — dictation lifecycle events -- [ ] Offline queue using SharedPreferences or Room -- [ ] Flush on app foreground via `ProcessLifecycleOwner` +- [x] `TelemetryClient.kt` — Kotlin singleton with OkHttp POST, SharedPreferences offline queue, persistent install ID ([`9196f48`](https://github.com/saravanakumardb1/learning_voice_ai_agent/commit/9196f48)) +- [x] Instrument `LysnrInputMethodService.kt` — 10 telemetry points ([`9196f48`](https://github.com/saravanakumardb1/learning_voice_ai_agent/commit/9196f48)) + - [x] `session_started` / `session_ended` (with words_inserted metric) + - [x] `dictation_started` (with backend + reason tags) + - [x] `dictation_completed` (with duration_ms, word_count, segment_count, transcript_length) + - [x] `mic_permission_denied` + - [x] `recognition_failed` (with errorCode + errorDomain) + - [x] `error_recovery_attempted` (azure→local fallback) +- [x] Offline queue using SharedPreferences with FIFO eviction ([`9196f48`](https://github.com/saravanakumardb1/learning_voice_ai_agent/commit/9196f48)) +- [x] Flush on app foreground via `ProcessLifecycleOwner` + 60s periodic flush timer ([`9196f48`](https://github.com/saravanakumardb1/learning_voice_ai_agent/commit/9196f48)) --- @@ -185,7 +191,7 @@ └─────────────────────────┘ └──────────────────────┘ ┌───────────────────────┐ -│ Android (Phase 2) │ ← Not yet implemented +│ Android │ │ TelemetryClient.kt │──▶ POST /api/telemetry/events ──▶ platform-service │ (SharedPreferences) │ └───────────────────────┘ @@ -222,6 +228,7 @@ cd learning_voice_ai_agent/user-dashboard-web && npx vitest run src/__tests__/te - [ ] iOS `LysnrTelemetry.swift` — needs XCTest target (Swift unit tests) - [ ] iOS `TelemetryService.swift` — needs XCTest target +- [ ] Android `TelemetryClient.kt` — needs Android instrumented tests or Robolectric - [ ] Admin dashboard `/api/telemetry/route.ts` — API route integration test - [ ] Platform-service HTTP integration tests (Fastify inject) - [ ] End-to-end: client → platform-service → Cosmos read-back @@ -249,17 +256,18 @@ The following bugs were discovered during systematic review of the roadmap again ## Commit Log -| Date | Repo | Commit | Description | -| ---------- | ----------- | --------------------------------------------------------------------------------------- | ------------------------------------------------------------------------ | -| 2026-02-16 | common-plat | [`c59049e`](https://github.com/saravanakumardb1/learning_ai_common_plat/commit/c59049e) | Design doc: client telemetry & log insights | -| 2026-02-16 | common-plat | [`083cf02`](https://github.com/saravanakumardb1/learning_ai_common_plat/commit/083cf02) | Fix 18 gaps in telemetry design doc (rev 2) | -| 2026-02-16 | common-plat | [`ce4c4ff`](https://github.com/saravanakumardb1/learning_ai_common_plat/commit/ce4c4ff) | Telemetry module — ingest, config, query, clusters, policies (34 tests) | -| 2026-02-17 | voice-agent | [`e546475`](https://github.com/saravanakumardb1/learning_voice_ai_agent/commit/e546475) | iOS keyboard telemetry client + KeyboardViewController instrumentation | -| 2026-02-17 | voice-agent | [`d202f94`](https://github.com/saravanakumardb1/learning_voice_ai_agent/commit/d202f94) | Admin dashboard Client Logs page + sidebar nav | -| 2026-02-17 | voice-agent | [`a173baa`](https://github.com/saravanakumardb1/learning_voice_ai_agent/commit/a173baa) | iOS main app TelemetryService + Desktop Python platform_telemetry | -| 2026-02-17 | voice-agent | [`130e1d6`](https://github.com/saravanakumardb1/learning_voice_ai_agent/commit/130e1d6) | Web user-dashboard telemetry client + ingest proxy | -| 2026-02-17 | common-plat | [`c3d6977`](https://github.com/saravanakumardb1/learning_ai_common_plat/commit/c3d6977) | Telemetry roadmap doc (this file) | -| 2026-02-17 | voice-agent | [`ae77438`](https://github.com/saravanakumardb1/learning_voice_ai_agent/commit/ae77438) | Fix: desktop uuid format + web osFamily — pass Zod validation | -| 2026-02-17 | common-plat | [`20f77d5`](https://github.com/saravanakumardb1/learning_ai_common_plat/commit/20f77d5) | Tests: route-logic tests — PII, pk, fingerprint, policy matching (34→77) | -| 2026-02-17 | voice-agent | [`08efdb6`](https://github.com/saravanakumardb1/learning_voice_ai_agent/commit/08efdb6) | Tests: Python client (19) + web dashboard (12) telemetry tests | -| 2026-02-17 | voice-agent | [`a102609`](https://github.com/saravanakumardb1/learning_voice_ai_agent/commit/a102609) | Tracker + admin self-telemetry clients + tests (20 tests) | +| Date | Repo | Commit | Description | +| ---------- | ----------- | --------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- | +| 2026-02-16 | common-plat | [`c59049e`](https://github.com/saravanakumardb1/learning_ai_common_plat/commit/c59049e) | Design doc: client telemetry & log insights | +| 2026-02-16 | common-plat | [`083cf02`](https://github.com/saravanakumardb1/learning_ai_common_plat/commit/083cf02) | Fix 18 gaps in telemetry design doc (rev 2) | +| 2026-02-16 | common-plat | [`ce4c4ff`](https://github.com/saravanakumardb1/learning_ai_common_plat/commit/ce4c4ff) | Telemetry module — ingest, config, query, clusters, policies (34 tests) | +| 2026-02-17 | voice-agent | [`e546475`](https://github.com/saravanakumardb1/learning_voice_ai_agent/commit/e546475) | iOS keyboard telemetry client + KeyboardViewController instrumentation | +| 2026-02-17 | voice-agent | [`d202f94`](https://github.com/saravanakumardb1/learning_voice_ai_agent/commit/d202f94) | Admin dashboard Client Logs page + sidebar nav | +| 2026-02-17 | voice-agent | [`a173baa`](https://github.com/saravanakumardb1/learning_voice_ai_agent/commit/a173baa) | iOS main app TelemetryService + Desktop Python platform_telemetry | +| 2026-02-17 | voice-agent | [`130e1d6`](https://github.com/saravanakumardb1/learning_voice_ai_agent/commit/130e1d6) | Web user-dashboard telemetry client + ingest proxy | +| 2026-02-17 | common-plat | [`c3d6977`](https://github.com/saravanakumardb1/learning_ai_common_plat/commit/c3d6977) | Telemetry roadmap doc (this file) | +| 2026-02-17 | voice-agent | [`ae77438`](https://github.com/saravanakumardb1/learning_voice_ai_agent/commit/ae77438) | Fix: desktop uuid format + web osFamily — pass Zod validation | +| 2026-02-17 | common-plat | [`20f77d5`](https://github.com/saravanakumardb1/learning_ai_common_plat/commit/20f77d5) | Tests: route-logic tests — PII, pk, fingerprint, policy matching (34→77) | +| 2026-02-17 | voice-agent | [`08efdb6`](https://github.com/saravanakumardb1/learning_voice_ai_agent/commit/08efdb6) | Tests: Python client (19) + web dashboard (12) telemetry tests | +| 2026-02-17 | voice-agent | [`a102609`](https://github.com/saravanakumardb1/learning_voice_ai_agent/commit/a102609) | Tracker + admin self-telemetry clients + tests (20 tests) | +| 2026-02-17 | voice-agent | [`9196f48`](https://github.com/saravanakumardb1/learning_voice_ai_agent/commit/9196f48) | Android TelemetryClient + keyboard instrumentation + ProcessLifecycleOwner |