diff --git a/__LOCAL_LLMs/AI_IDE_CHAT_HISTORY/WINDSURF/.last-refresh.log b/__LOCAL_LLMs/AI_IDE_CHAT_HISTORY/WINDSURF/.last-refresh.log index 65872c08..9d62108d 100644 --- a/__LOCAL_LLMs/AI_IDE_CHAT_HISTORY/WINDSURF/.last-refresh.log +++ b/__LOCAL_LLMs/AI_IDE_CHAT_HISTORY/WINDSURF/.last-refresh.log @@ -1,9 +1,9 @@ -Last refresh: 2026-03-21T00:06:30Z (2026-03-20 17:06:30 PDT) -Cascade conversations: 50 (409M) +Last refresh: 2026-03-21T06:00:10Z (2026-03-20 23:00:10 PDT) +Cascade conversations: 50 (411M) Memories: 91 Implicit context: 20 -Code tracker dirs: 100 -File edit history: 3324 entries -Workspace storage: 36 workspaces +Code tracker dirs: 132 +File edit history: 3365 entries +Workspace storage: 35 workspaces Repo docs: 7 files across 2 repos Repo workflows: 43 files across 10 repos diff --git a/docs/MOBILE_DRY_REFACTORING_ROADMAP.md b/docs/MOBILE_DRY_REFACTORING_ROADMAP.md index ede4cc4f..ff8dafb0 100644 --- a/docs/MOBILE_DRY_REFACTORING_ROADMAP.md +++ b/docs/MOBILE_DRY_REFACTORING_ROADMAP.md @@ -452,3 +452,50 @@ Week 4 (LOW priority + cleanup): - **TextCleanupService** (LysnrAI) and other LLM-specific services that use URLSession for OpenAI/Azure calls are intentionally product-specific and should NOT be migrated to platform SDK. - **CertificatePinning** is a security feature that may need to stay product-specific. Evaluate during Phase 4/6 whether it's worth adding to the SDK. - **LysnrAI Android `AuthViewModel`** is intentionally kept hand-rolled (DataStore, keyboard bridging, CloudSync integration are too LysnrAI-specific for `BLAuthClient`). This is a conscious design decision, not a gap. + +--- + +## Post-Implementation Review Fixes (2026-03-21) + +Systematic review of all 9 phases found **7 bugs** across 7 repos. All fixed and pushed. + +### Bug 1: LysnrAI Android — SettingsStore.kt incorrectly deleted + +- **Root cause:** Phase 4 grep for callers searched by class name `SettingsStore`, but callers import `SettingsKeys` and `settingsStore` (top-level extension property). +- **Impact:** 5 files with broken imports (SettingsScreen, RecordViewModel, RecordScreen, AuthViewModel, SessionDetailScreen). +- **Fix:** [`ada3d43`](https://github.com/saravanakumardb1/learning_voice_ai_agent/commit/ada3d43) — restored SettingsStore.kt. + +### Bug 2: Android kill switch — `result.killed` should be `result.disabled` + +- **Root cause:** `BLKillSwitchClient.KillSwitchResult` uses `disabled: Boolean`, not `killed`. Code was written without verifying SDK API. +- **Impact:** Kill switch never triggered on Auth App, JarvisJr, ChronoMind Android. +- **Fix:** + - Auth App: [`bf518fd`](https://github.com/saravanakumardb1/learning_ai_auth_app/commit/bf518fd) + - JarvisJr: [`dddb11c`](https://github.com/saravanakumardb1/learning_ai_jarvis_jr/commit/dddb11c) + - ChronoMind: [`151d836`](https://github.com/saravanakumardb1/learning_ai_clock/commit/151d836) + +### Bug 3: Auth App iOS — BLKillSwitchClient.check() returns Void + +- **Root cause:** Swift `BLKillSwitchClient.check()` sets `isDisabled`/`maintenanceMessage` as instance properties. Code treated it as returning a result struct. +- **Also:** `BLFeatureFlagClient` uses `start()` not `poll()`. +- **Fix:** [`215e7c9`](https://github.com/saravanakumardb1/learning_ai_auth_app/commit/215e7c9) + +### Bug 4: ChronoMind iOS — KillSwitchService returned nonexistent BLKillSwitchResult + +- **Root cause:** Same as Bug 3. `BLKillSwitchResult` type doesn't exist in the Swift SDK. +- **Fix:** [`d3c3aff`](https://github.com/saravanakumardb1/learning_ai_clock/commit/d3c3aff) — expose `isDisabled`/`maintenanceMessage` as computed properties. + +### Bug 5: MindLyst iOS — KillSwitchService + CrashReporterService wrong API + +- **Root cause:** KillSwitchService same as Bug 4. CrashReporter takes `productId: String`, not `config: BLPlatformConfig`. Also `@MainActor` + `NSObject` subclass needs lazy init. +- **Fix:** [`cd78597`](https://github.com/saravanakumardb1/learning_multimodal_memory_agents/commit/cd78597) + +### Bug 6: JarvisJr iOS — KillSwitchResponse decoded `killed` (doesn't exist in server response) + +- **Root cause:** Pre-existing bug. Platform-service returns `{ disabled: Bool }` but hand-rolled `KillSwitchResponse` decoded `killed`, which is always nil/false. +- **Fix:** [`2a3cc7e`](https://github.com/saravanakumardb1/learning_ai_jarvis_jr/commit/2a3cc7e) + +### Bug 7: NoteLett Mobile — `createDiagnosticsClient` doesn't exist + +- **Root cause:** `@bytelyst/diagnostics-client` exports `DiagnosticsClient` class with `getInstance()` singleton, not a factory function. +- **Fix:** [`0b5c224`](https://github.com/saravanakumardb1/learning_ai_notes/commit/0b5c224)