saravanakumardb1
d3c3affc1b
fix(ios): Fix KillSwitchService — BLKillSwitchClient.check() returns Void
...
Swift BLKillSwitchClient.check() sets isDisabled/maintenanceMessage as
properties on the client, not a returned result. Expose isDisabled and
maintenanceMessage as computed properties on the wrapper.
2026-03-20 23:09:36 -07:00
saravanakumardb1
c328216a0e
refactor(ios): Phase 9A — Add Config.swift + KillSwitchService.swift
...
- Create Shared/Cloud/Config.swift with shared BLPlatformConfig for ChronoMind
- Create Shared/Cloud/KillSwitchService.swift thin wrapper over BLKillSwitchClient
Part of Mobile DRY Refactoring Roadmap Phase 9A.
2026-03-20 22:48:34 -07:00
saravanakumardb1
424e804396
fix(ios): resolve Swift compile errors for iOS 26 / Xcode 26
...
- Fix CloudKitSyncManager deinit concurrency violation
- Replace deprecated List(selection:) with VStack+ForEach sidebar
- Replace removed Animation.none with Animation.linear(duration: 0)
- Fix CountdownRing initializer parameter mismatch
- Unwrap optional timer.duration in ShareableTimerManager and DataExportManager
- Add missing .event case to exhaustive switch
- Change CascadeWarning.scheduledTime from let to var
- Fix CalendarSyncManager CMTimer init (add elapsedBeforePause, remove non-existent params)
- Add missing UserNotifications import in SleepManager
- Remove parameterized App Intents phrases (iOS 26 restriction)
- Temporarily remove watchOS target dependency for iOS build
2026-03-19 14:22:50 -07:00
saravanakumardb1
d6b1bb6f63
fix(sync): fix BatchResult.errors type mismatch — backend returns {id,error} objects not strings
2026-03-01 21:27:44 -08:00
saravanakumardb1
48b88d3a29
fix(sync): add x-product-id header and fix pullDelta response decode mismatch
2026-03-01 21:26:12 -08:00
saravanakumardb1
b7688b55d1
fix(security): move PlatformSyncManager auth token from UserDefaults to Keychain
2026-03-01 16:37:39 -08:00
saravanakumardb1
3adab843cd
refactor(ios): migrate CrashReporter to ByteLystPlatformSDK's BLCrashReporter
...
Replaced standalone MetricKit crash reporter (153 lines) with thin wrapper (34 lines)
delegating to SDK's BLCrashReporter. Preserves existing call-site API.
2026-02-28 22:38:55 -08:00
saravanakumardb1
d1b4534b22
refactor(ios): migrate Cloud/ files to ByteLystPlatformSDK — eliminate duplicated platform code
...
Replaced standalone implementations with thin wrappers over shared SDK:
- KeychainHelper → delegates to BLKeychain (53→27 lines)
- TelemetryService → delegates to BLTelemetryClient (139→55 lines)
- FeatureFlagService → delegates to BLFeatureFlagClient (72→39 lines)
- AuthService → delegates to BLAuthClient (359→171 lines)
- project.yml → added ByteLystPlatformSDK local package dependency
Total: 623 lines of duplicated code → 292 lines of thin wrappers.
PlatformSyncManager kept as-is (product-specific timer DTOs).
All existing call-site APIs preserved — zero breaking changes.
2026-02-28 22:12:37 -08:00
saravanakumardb1
3596a8f350
feat(sync): wire platform sync into timer and routine stores, extend fullSync for routines, add error/not-found pages
2026-02-28 20:24:53 -08:00
saravanakumardb1
77254b751e
fix(telemetry): lowercase osFamily to match server enum
2026-02-28 19:26:52 -08:00
saravanakumardb1
180c98160b
feat(ios): add telemetry client, feature flags client, Settings login/register form
2026-02-28 19:10:08 -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
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
bebb566caf
feat(growth): add referral program — unique codes, invite tracking, Pro reward months
2026-02-27 22:59:02 -08:00
saravanakumardb1
fdcae8297a
feat(share): add shareable timer links with universal link support + import/export
2026-02-27 22:58:57 -08:00
saravanakumardb1
9be48f0abf
feat(gdpr): add data export (JSON) + account deletion — App Store and GDPR compliance
2026-02-27 22:57:56 -08:00
saravanakumardb1
3df8ac597b
feat(wellness): add sleep manager (HealthKit, bedtime routine, smart alarm) + mood/energy check-in with weekly insights
2026-02-27 22:57:47 -08:00
saravanakumardb1
639d606233
feat(web): add Playwright E2E tests, service worker, package updates
2026-02-27 22:37:04 -08:00
saravanakumardb1
4341502e33
feat(location): add CoreLocation geofencing triggers + MapKit travel time intelligence
2026-02-27 22:35:48 -08:00
saravanakumardb1
351410ba41
feat(calendar): add EventKit calendar sync — read events, convert to timers, auto-sync every 15m
2026-02-27 22:35:36 -08:00
saravanakumardb1
e87e027c0f
feat(testflight): add MetricKit crash reporting + feedback form in Settings
2026-02-27 22:24:00 -08:00
saravanakumardb1
01c0f5759e
feat(sync): add iCloud sync via NSUbiquitousKeyValueStore with merge strategy
2026-02-27 22:23:45 -08:00
saravanakumardb1
3bec3602d2
feat(a11y): add VoiceOver, Dynamic Type, Reduce Motion, High Contrast accessibility helpers
2026-02-27 22:20:22 -08:00
saravanakumardb1
be0e8748b2
feat(ipad): adaptive layout — NavigationSplitView sidebar + timer detail side panel on iPad
2026-02-27 22:20:15 -08:00
saravanakumardb1
40fd63e748
feat(gamification): integrate gamification into app — badge celebration overlay, history stats+badges tabs
2026-02-27 22:13:50 -08:00
saravanakumardb1
58dde35cc9
feat(gamification): add streak card, focus score card, badge grid, confetti, weekly summary card with share
2026-02-27 22:13:44 -08:00
saravanakumardb1
f6208e65d1
feat(gamification): add streak engine, focus score, badge definitions, and GamificationStore
2026-02-27 22:13:39 -08:00
saravanakumardb1
a86ed05271
feat(reschedule): add reschedule sheet UI, undo banner, suggestion banner, and timeline integration
2026-02-27 22:13:32 -08:00
saravanakumardb1
931746a119
feat(reschedule): add AI reschedule engine with shift, skip, push, undo and smart suggestions
2026-02-27 22:13:27 -08:00
saravanakumardb1
36523334c4
feat(siri): add App Intents for Siri Shortcuts — set timer, start pomodoro, next timer info
2026-02-27 22:01:46 -08:00
saravanakumardb1
4b1cbcf81b
feat(live-activity): add ActivityKit attributes and LiveActivityManager for Dynamic Island
2026-02-27 22:01:28 -08:00
saravanakumardb1
46d9866253
feat(shared): add App Groups data layer for iOS/Watch/Widget communication
2026-02-27 22:01:24 -08:00
saravanakumardb1
a1120a56e8
feat: add in-app toast system with notification fallback for denied permissions
2026-02-27 21:21:46 -08:00
saravanakumardb1
28dfa9f929
feat: add Serwist service worker for offline PWA support
2026-02-27 21:18:43 -08:00
saravanakumardb1
cae442d099
test: add time-blindness and urgency tests (82 total passing)
2026-02-27 21:16:49 -08:00
saravanakumardb1
755d030c7a
test: add 13 Zustand store tests (66 total passing)
2026-02-27 21:15:30 -08:00
saravanakumardb1
815e1cd7fe
docs: comprehensive roadmap update with all Phase 1 checkmarks and commit links
2026-02-27 21:11:39 -08:00
saravanakumardb1
1883697de7
feat: add settings link in dashboard header
2026-02-27 21:10:25 -08:00
saravanakumardb1
cad95be62a
feat: add Zod schemas, settings page with sound preview, notification controls
2026-02-27 21:09:33 -08:00
saravanakumardb1
d2b5563414
feat: add time blindness aids, feedback button, tab title flash, system theme detection
2026-02-27 21:08:22 -08:00