Commit Graph

104 Commits

Author SHA1 Message Date
saravanakumardb1
02ac682c52 feat(web): wire Zod form validation into CreateTimerModal + add event schema
- Import and validate against alarmSchema, countdownSchema, pomodoroSchema, eventSchema
- Show inline error messages below form fields (label, time, duration, event date)
- Error border color highlights invalid fields
- Errors clear on tab switch and successful creation
2026-02-28 13:30:56 -08:00
saravanakumardb1
3d70a7c197 docs: add Docker/CI build instructions for tarball prep workflow 2026-02-28 13:17:31 -08:00
saravanakumardb1
b12d4236b0 chore: add repo workflow files (backup, push, sync, commit) 2026-02-28 12:56:16 -08:00
saravanakumardb1
b124009053 chore: add docker-prep script + gitignore entries for portable builds 2026-02-28 12:32:28 -08:00
saravanakumardb1
8ef44788e1 refactor(web): deduplicate getBaseUrl() — export from auth-api.ts, import in auth-context.tsx 2026-02-28 12:11:26 -08:00
saravanakumardb1
f80602d2b1 refactor(web): DRY platform-sync.ts — remove 88 lines of hand-rolled auth, delegate to auth-client 2026-02-28 11:49:06 -08:00
saravanakumardb1
8a5a40676a refactor(web): wire @bytelyst/react-auth into auth-context, clean platform-sync auth plumbing 2026-02-28 11:28:14 -08:00
saravanakumardb1
bde5cb792d refactor(web): wire @bytelyst/auth-client + telemetry-client into ChronoMind
- auth-api.ts: lazy-init shared auth client singleton
- platform-sync.ts: delegate auth ops to @bytelyst/auth-client
- telemetry.ts: delegate to @bytelyst/telemetry-client
- All 373 tests pass
2026-02-28 04:50:00 -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
5e8cbbf556 feat(auth): implement refresh token flow with 401 auto-retry and dedup 2026-02-28 02:44:56 -08:00
saravanakumardb1
8ad31af72a chore(telemetry): add tracing headers to flush + .env.example 2026-02-28 02:36:55 -08:00
saravanakumardb1
1f18c53b76 fix(auth): enable sync on login/logout + fix data copy + wire page-view tracking 2026-02-28 02:33:19 -08:00
saravanakumardb1
9d50a196bc feat(analytics): bridge analytics.ts to platform telemetry client 2026-02-28 02:15:45 -08:00
saravanakumardb1
1713ce058b feat(web): add platform-service telemetry client 2026-02-28 02:04:08 -08:00
saravanakumardb1
1fc1d6478a feat(web): add auth flow via platform-service + productId header 2026-02-28 02:01:27 -08:00
saravanakumardb1
375d3a7ec0 feat(web): wire useSync hook into Dashboard with cloud sync status indicator 2026-02-28 01:54:40 -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
3ac658a89e docs(roadmap): mark iOS Swift ports, routine models, routine views, and Android RoutineScreen as complete 2026-02-28 01:51:46 -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
8b6f44ac9a docs(roadmap): mark all 4 backend modules complete (timers, routines, households, shared-timers) 2026-02-28 00:05:39 -08:00
saravanakumardb1
f92193139b docs(roadmap): mark cross-platform cloud sync complete — timers module in platform-service (42 tests, 759 total) 2026-02-27 23:55:58 -08:00
saravanakumardb1
831fcfadd0 docs(roadmap): mark Google Calendar integration complete for Android 2026-02-27 23:18:05 -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
0848c9a041 docs(roadmap): mark Advanced NL parsing task as complete — timer-parse in extraction-service 2026-02-27 23:16:54 -08:00
saravanakumardb1
f6e78a454d docs(roadmap): mark Room database and foreground service as complete in Phase 5 2026-02-27 23:15:07 -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
449b2dc514 docs(roadmap): update Phase 5 Weeks 15-19 — Android app, Wear OS, timer engine Kotlin port, 30 JUnit5 tests 2026-02-27 23:10:58 -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
saravanakumardb1
400b1e038c docs(roadmap): mark Phase 4 exit criteria — 9/12 complete, remaining are non-code growth metrics 2026-02-27 23:00:53 -08:00
saravanakumardb1
0311980bfe docs(roadmap): update Phase 4 Weeks 10-14 — macOS, calendar, location, sleep, mood, GDPR, sharing, referrals 2026-02-27 22:59:55 -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
2fc277b663 feat(macos): add macOS menu bar app — popover timeline, quick timer, keyboard shortcut, settings 2026-02-27 22:35:26 -08:00
saravanakumardb1
a2e8f985d2 feat(web): recurring timer badge, recurringTimerId field, generateTimerFromRecurrence helper 2026-02-27 22:33:57 -08:00
saravanakumardb1
d909830fcd feat(web): snooze suggestion card on Dashboard, event countdown large display
- Dashboard: adaptive snooze suggestion cards (dismissable, max 2 shown, pattern-based)
- TimerCard: event countdown type gets large days display with milestone progress bar
  - Progress bar color-codes: accent → warning (70%) → danger (90%)
  - Shows days + hours remaining with target date
- Updated roadmap: marked snooze suggestion card and event visual as completed
- 373 tests across 16 files, tsc clean
2026-02-27 22:31:20 -08:00