Commit Graph

41 Commits

Author SHA1 Message Date
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
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
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
0609281967 feat(android): add Android app scaffold + update E2E tests 2026-02-27 23:06:54 -08:00
saravanakumardb1
639d606233 feat(web): add Playwright E2E tests, service worker, package updates 2026-02-27 22:37:04 -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
saravanakumardb1
f61483e7a5 feat(web): calendar import preview, repeat timer, CSV export, compact mode
- Calendar import preview: parse .ics → show events with conflict indicators → confirm/cancel before importing
- History page: repeat timer button (recreates alarm at same time-of-day, countdown with same duration)
- History page: CSV export (Label, Type, State, Urgency, Category, Created, Completed, Duration)
- Settings: compact mode toggle (persisted to localStorage, sets data-compact attribute)
- Updated roadmap Week 5 items
- 373 tests across 16 files, tsc clean
2026-02-27 22:28:36 -08:00
saravanakumardb1
48a4b7d024 feat(web): prep-time intelligence, adaptive snooze, event countdown, TimerCard badges
- Prep time intelligence (lib/prep-time.ts): 12 keyword rules + 6 category defaults, prep/travel time suggestions, warning formatter, shouldShowPrepWarning() (22 tests)
- Adaptive snooze learning (lib/adaptive-snooze.ts): snooze pattern tracking, label normalization, suggestion engine with 5+ data point threshold, localStorage persistence (22 tests)
- Event countdown timer: createEvent factory with milestone warnings (30/7/3/1 days), addEvent store action, Event tab in CreateTimerModal with date picker
- TimerCard: category badge, chain link badge, prep time warning integration
- Analytics: added 'event' to trackTimerCreated type union
- Updated roadmap: marked prep time, adaptive snooze, event countdown, export/import, history as completed
- Phase 2 exit criteria: 6/10 met, 373 tests across 16 files, tsc clean
2026-02-27 22:25:36 -08:00
saravanakumardb1
29cd7ffc62 fix(deploy): add --webpack flag to dev script for Serwist compatibility 2026-02-27 22:19:21 -08:00
saravanakumardb1
fc05ea12ba feat(web): routine editor/runner UI, linked timers, routines page
- RoutineEditor component: add/remove/reorder steps, transition types, notes, save-as-template toggle, total duration display
- RoutineRunner component: countdown ring, step dots, progress bar, next step preview, pause/resume/skip/done/cancel, completion celebration
- Routine store (lib/routine-store.ts): Zustand + localStorage persistence, template management, auto-advance via tickRoutines()
- Routines page (app/routines/): template browser, active runner, ready queue, past routines
- Linked timers engine (lib/linked-timers.ts): chain building/append/remove with relinking, 3 presets (Pasta, Laundry, Meeting Prep), downstream queries
- Linked timers tests (27 tests)
- Dashboard: added Routines + nav link
- Updated roadmap.md Week 3 items
- 329 tests passing (14 test files), tsc clean
2026-02-27 22:07:16 -08:00
saravanakumardb1
38bb2629e9 feat(web): Phase 2 — stats, categories, recurring, export/import, calendar .ics
- Statistics + streaks engine (lib/stats.ts) with daily/weekly/monthly breakdowns, on-time rate, focus time, streak tracking (23 tests)
- Categories/tags system (lib/categories.ts) with 6 built-in categories, custom tags, default urgency+cascade per category (29 tests)
- Recurring timer engine (lib/recurrence.ts) with daily/weekday/weekend/weekly/biweekly/monthly/custom rules, skip/pause, DST edge cases (37 tests)
- Timer export/import as JSON (lib/export.ts)
- Calendar .ics import (lib/calendar-import.ts) with RFC 5545 parsing, conflict detection, priority-to-urgency mapping (26 tests)
- StatsView component with Recharts (bar, line, pie charts)
- StreakCard component with milestone badges
- History page (/history) with stats, history search/filter, import/export
- Category picker in CreateTimerModal with auto urgency+cascade defaults
- Category filter chips on Dashboard + History link in header
- Installed recharts dependency
- Updated roadmap.md Phase 2 Week 4-5 with completion status
- 302 tests passing (up from 82 in Phase 1)
2026-02-27 21:59:09 -08:00
saravanakumardb1
e6b97fcbf0 feat(deploy): Phase 1 polish — analytics, install prompt, a11y, PWA icons 2026-02-27 21:57:43 -08:00
saravanakumardb1
065bb1b1a0 feat(web): add focus mode UI and NL parser integration
- FocusView component: duration presets, 'until next timer' mode, pomodoro shortcut,
  full-screen countdown ring, pause/resume, session summary with stats
- Focus page at /focus with minimal header and back navigation
- NL parser integrated into CreateTimerModal with live parse preview,
  Enter-to-create, and type/label/urgency detection display
- Dashboard header: added Focus Mode (Eye icon) link
2026-02-27 21:45:37 -08:00
saravanakumardb1
8fe5e8e787 feat(web): add routine engine, NL parser, and context messages
- Routine engine: data model, state machine (start/pause/resume/complete/skip/cancel),
  4 built-in templates (Morning, Workout, Cooking, Wind-Down), template instantiation
- NL parser: regex-based parsing for relative times, absolute times, durations,
  pomodoro, urgency detection, label extraction (no LLM dependency)
- Context messages: keyword→message rules for 20+ categories (meetings, flights,
  cooking, health, etc.), warning message formatting
- 105 unit tests (45 routines + 37 NL parser + 23 context messages)
2026-02-27 21:42:29 -08:00
saravanakumardb1
35f53e87f5 feat: add Pomodoro session celebration with trophy animation 2026-02-27 21:23:45 -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
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
saravanakumardb1
b39652accf feat: add Web Audio sound system with urgency-mapped tones and notification integration 2026-02-27 21:06:25 -08:00
saravanakumardb1
2a4d66faa9 feat: add dark/light theme toggle with localStorage persistence 2026-02-27 21:01:33 -08:00
saravanakumardb1
ace036b1fc feat: add PWA manifest, landing page, privacy/terms pages, format tests (53 tests) 2026-02-27 21:00:34 -08:00
saravanakumardb1
6b46384304 feat: add PomodoroView, CountdownRing, QuickTimerBar, keyboard shortcuts 2026-02-27 20:58:06 -08:00
saravanakumardb1
da4f3b5419 feat: add Zustand store, dashboard UI, timer cards, create modal, alarm overlay 2026-02-27 20:55:40 -08:00
saravanakumardb1
6ac54d76fd feat: add timer engine, cascade system, urgency system with 40 passing tests 2026-02-27 20:50:36 -08:00