saravanakumardb1
b16a6614d4
feat(android): gate Focus tab behind focus_mode_enabled feature flag
2026-03-21 20:42:01 -07:00
saravanakumardb1
151d8361ed
fix(android): KillSwitchResult uses 'disabled' not 'killed'
...
BLKillSwitchClient.KillSwitchResult has field 'disabled: Boolean',
not 'killed'. Fix property access in kill switch check.
2026-03-20 22:59:10 -07:00
saravanakumardb1
2060a831bf
refactor(android): Phase 1 — delete dead services, migrate sync to OkHttp, wire kill switch
...
- Delete auth/AuthService.kt (328 LOC dead code — LoginScreen already uses BLAuthClient)
- Delete telemetry/TelemetryService.kt (178 LOC dead code — TimerViewModel already uses BLTelemetryClient)
- Delete telemetry/FeatureFlagService.kt (89 LOC dead code — PlatformModule provides BLFeatureFlagClient)
- Migrate sync/PlatformApiClient.kt from raw HttpURLConnection to OkHttp (consistent with kotlin-platform-sdk)
- Migrate sync/SyncRepository.kt to use BLSecureStore for auth token instead of manual SharedPreferences
- Wire BLKillSwitchClient in MainActivity.kt with kill switch check on app start
- Update AppModule.kt to inject BLSecureStore into SyncRepository
Part of Mobile DRY Refactoring Roadmap Phase 1.
2026-03-20 22:19:11 -07:00
saravanakumardb1
6dd31490b2
fix(android): complete ChronoMind Android compile fixes — all tests pass
...
- Fix SyncRepository.timerToDTO: timer.pomodoro → timer.pomodoroConfig/pomodoroState
- Fix SyncRepository.dtoToEntity: add missing TimerEntity fields (dismissedAt, snoozedUntil,
snoozeCount, elapsedBeforePause, category), fix non-nullable cascadePreset/cascadeIntervalsJson
- Fix PomodoroDTO field mapping: focusMinutes→workMinutes, shortBreakMinutes→breakMinutes, etc.
- ChronoMind Android now compiles and all tests pass
2026-03-19 17:07:57 -07:00
saravanakumardb1
9f2325078d
fix(android): partial compile fixes for ChronoMind Android
...
- Fix AuthService: add MapSerializer/serializer imports, replace fully-qualified calls
- Fix CMColors: add missing textPrimary and textTertiary tokens
- Fix TimerWidget: add Glance clickable/ColorProvider imports, add night param
- Fix SyncRepository: replace pomodoroJson with individual pomodoro fields
- Note: SyncRepository still has CMTimer model drift errors (deferred)
2026-03-19 17:02:16 -07:00
saravanakumardb1
c49829cd3e
fix(android): add gradlew + wrapper JAR, fix dependencyResolutionManagement
2026-03-19 15:14:11 -07:00
saravanakumardb1
6b82ca1b33
feat(android): migrate auth, telemetry, feature flags to ByteLyst Kotlin Platform SDK
2026-03-01 18:16:13 -08:00
saravanakumardb1
77254b751e
fix(telemetry): lowercase osFamily to match server enum
2026-02-28 19:26:52 -08:00
saravanakumardb1
672acadba6
feat(android): add telemetry client, feature flags client, wire into DI + ViewModel
2026-02-28 19:12:15 -08:00
saravanakumardb1
e3add90f87
feat(auth): add forgot password, reset password, change password, delete account, email verify, token refresh
...
Web:
- platform-sync.ts: Added forgotPassword, resetPassword, changePassword, verifyEmail, resendVerification, deleteAccount API functions
- auth-context.tsx: Added forgotPassword, resetPassword, changePassword, deleteAccount actions + successMessage state + 45min auto-refresh timer
- settings/page.tsx: Added forgot password link, change password form, delete account form with confirmation
- reset-password/page.tsx: New page for password reset via email token
- verify-email/page.tsx: New page for email verification via token
iOS:
- AuthService.swift: Added forgotPassword, changePassword, deleteAccount methods
- SettingsView.swift: Added change password, delete account, forgot password UI sections
Android:
- AuthService.kt: Added forgotPassword, changePassword, deleteAccount methods
2026-02-28 04:08:58 -08:00
saravanakumardb1
6a41cc9f48
feat(mobile): add auth login/register flow for iOS and Android
...
- iOS: Add KeychainHelper.swift for secure token storage
- iOS: Add AuthService.swift (CMAuthService) with login/register/refresh/logout
- iOS: Add LoginView.swift (CMLoginView) with ChronoMind theme
- iOS: Wire auth gate in ChronoMindApp.swift (LoginView vs ContentView)
- iOS: Add Account section to SettingsView with email/plan/sign-out
- iOS: Add Cloud group + 3 files to Xcode project.pbxproj
- Android: Add AuthService.kt with Hilt @Singleton, login/register/refresh/logout
- Android: Add LoginScreen.kt with Compose login/register form
- Android: Wire auth gate in MainActivity via Hilt-injected AuthService
- Android: Add Account section to SettingsScreen via HiltViewModel
- Android: Add x-product-id header to PlatformApiClient
2026-02-28 03:22:23 -08:00
saravanakumardb1
bf2f7cde50
feat(wear): expand Wear OS with quick timer creation, timer detail, dismiss/snooze actions, navigation
2026-02-28 01:53:28 -08:00
saravanakumardb1
11e50295ea
feat: fix web build, add repo infra, port iOS engine modules, add routine screens
...
- fix(web): cast window through unknown in platform-sync.ts (TS2352)
- docs: add AGENTS.md, README.md, CLAUDE.md, .windsurfrules, .cursorrules, env.example
- feat(ios): port Recurrence.swift from web/src/lib/recurrence.ts
- feat(ios): port NLParser.swift from web/src/lib/nl-parser.ts
- feat(ios): port ContextMessages.swift from web/src/lib/context-messages.ts
- feat(ios): add CMRoutine model + Routines.swift engine with state machine + templates
- feat(ios): add RoutineListView, RoutineRunnerView, RoutineEditorView
- feat(android): add RoutineScreen.kt with list, runner, templates, step controls
Web: 373 tests passing, build succeeds with --webpack flag
2026-02-28 01:50:35 -08:00
saravanakumardb1
af33a2c86d
feat(sync): add cross-platform sync managers for iOS, Android, and Web
...
- iOS: PlatformSyncManager — URLSession, delta sync, batch upload, offline queue, HMAC auth
- Android: PlatformApiClient + SyncRepository — HttpURLConnection, Room integration, offline queue
- Web: platform-sync.ts + use-sync.ts — fetch client, localStorage queue, React hook with 60s auto-sync
All consume platform-service /timers/*, /routines/*, /households/* endpoints.
Sync protocol: syncVersion optimistic concurrency, delta sync via ?since=, batch upsert for offline flush.
2026-02-28 00:25:35 -08:00
saravanakumardb1
31d1668ce8
feat(android): add Google Calendar sync via CalendarContract — read events, convert to timers, deterministic IDs
2026-02-27 23:17:50 -08:00
saravanakumardb1
8c7e64fab5
feat(android): add Room database persistence, Hilt DI module, timer entity mapper
2026-02-27 23:14:49 -08:00
saravanakumardb1
91b0bb6d63
chore(android): add .gitignore, gradle.properties, wrapper config; update roadmap with Quick Settings + foreground service
2026-02-27 23:13:02 -08:00
saravanakumardb1
4570c076ec
feat(android): add foreground service, Quick Settings tile, proguard rules
2026-02-27 23:12:18 -08:00
saravanakumardb1
ded0a0f0ea
feat(wear): add Wear OS app — Compose for Wear, timeline screen, timer chips, Material theme
2026-02-27 23:10:12 -08:00
saravanakumardb1
9c34a92b9e
feat(android): add Android app — Jetpack Compose, Hilt, timer engine Kotlin port, 4 screens, notifications, 3 Glance widgets, 30 JUnit5 tests
2026-02-27 23:09:12 -08:00
saravanakumardb1
4b1e969039
feat(android): add strings and themes resources
2026-02-27 23:08:23 -08:00
saravanakumardb1
74d084ba77
feat(android): add widget layouts and large widget config
2026-02-27 23:08:13 -08:00
saravanakumardb1
09e78d0920
feat(android): add AndroidManifest, BootReceiver, widget XML configs
2026-02-27 23:07:54 -08:00
saravanakumardb1
b68bd22cc3
feat(android): add TimerWidget for home screen
2026-02-27 23:07:21 -08:00
saravanakumardb1
0609281967
feat(android): add Android app scaffold + update E2E tests
2026-02-27 23:06:54 -08:00