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