Commit Graph

58 Commits

Author SHA1 Message Date
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
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
9fcd256364 docs(roadmap): update Week 9 — iCloud sync, crash reporting, feedback form complete 2026-02-27 22:24:06 -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
5a9a855ec9 docs(roadmap): update Phase 3 exit criteria — 9/11 checkmarks complete 2026-02-27 22:21:13 -08:00
saravanakumardb1
2c224c5c4f test(week9): add urgency tests (14) + accessibility tests (14) + update roadmap Week 9 2026-02-27 22:20:29 -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
29cd7ffc62 fix(deploy): add --webpack flag to dev script for Serwist compatibility 2026-02-27 22:19:21 -08:00
saravanakumardb1
4b579750a2 test(week8): add reschedule engine tests (14) + gamification engine tests (15) + update roadmap 2026-02-27 22:14:01 -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
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
0b798bf9ff test(shared): add SharedTimerData tests + update roadmap Week 7 checkmarks 2026-02-27 22:01:57 -08:00
saravanakumardb1
016a3d14e5 feat(project): add widget, watchOS, and complications targets to project.yml with dependencies 2026-02-27 22:01:51 -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
71bda1dab9 feat(watch): add watchOS app with timeline, timer detail, quick presets, haptics, and complications 2026-02-27 22:01:39 -08:00
saravanakumardb1
5936016a36 feat(widget): add WidgetKit widgets — small, medium, lock screen with AppIntentTimelineProvider 2026-02-27 22:01:34 -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
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
1235a2b218 docs: update roadmap Phase 2 with completed items
Routine engine (45 tests), NL parser (37 tests), context messages (23 tests),
focus mode, and CreateTimerModal NL integration all marked complete.
Total: 276 tests passing, tsc clean.
2026-02-27 21:46:24 -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
885a2685ad docs(ios): update roadmap Phase 3 Week 6 with iOS app foundation progress
- Xcode project setup:  (XcodeGen, iOS 17+, zero third-party deps)
- Timer engine Swift port:  (TimerEngine, Cascade, Urgency, Format, TimeBlindness)
- Data models:  partial (CMTimer Codable struct, UserDefaults persistence)
- iOS screens:  (Timeline, CreateTimer, Pomodoro, History, Settings, AlarmOverlay)
- Notification scheduling:  (UNUserNotificationCenter, cascade warnings, actions)
- Haptic engine:  (urgency-mapped feedback patterns)
- XCTest: 58 tests passing (TimerEngine, Cascade, Format)
- Remaining: Recurrence, NLParser, ContextMessages (Phase 2 web deps), SwiftData migration
2026-02-27 21:27:02 -08:00
saravanakumardb1
445e25bee1 docs: final roadmap update with Serwist SW, toast fallback, Pomodoro celebration commits 2026-02-27 21:24:36 -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
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
saravanakumardb1
b39652accf feat: add Web Audio sound system with urgency-mapped tones and notification integration 2026-02-27 21:06:25 -08:00
saravanakumardb1
a3ebb9fd6d docs: update roadmap.md with Phase 1 progress checkmarks and commit links 2026-02-27 21:03:27 -08:00
saravanakumardb1
02f9a5fc12 ci: add GitHub Actions workflow for lint, typecheck, and test 2026-02-27 21:01:59 -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