diff --git a/docs/roadmap.md b/docs/roadmap.md index 4987f8d..8b6396c 100644 --- a/docs/roadmap.md +++ b/docs/roadmap.md @@ -130,11 +130,11 @@ ChronoMind ships in **5 phases over ~6 months**, from web MVP to full cross-plat - [x] **Notifications (`lib/notifications.ts`)** ([da4f3b5](https://github.com/saravanakumardb1/learning_ai_clock/commit/da4f3b5)) - [x] Request notification permission on first timer creation - - [ ] Service Worker registration via Serwist (`@serwist/next`) + - [x] Service Worker registration via Serwist (`@serwist/next`) ([28dfa9f](https://github.com/saravanakumardb1/learning_ai_clock/commit/28dfa9f)) - [x] Schedule pre-warning notifications at cascade timestamps - [x] Different notification styles per urgency (title, body, icon, sound tag) - [x] Notification click → open app to timer detail - - [ ] Fallback: in-app toast if notifications denied + - [x] Fallback: in-app toast if notifications denied ([a1120a5](https://github.com/saravanakumardb1/learning_ai_clock/commit/a1120a5)) - [x] **Sound system (`lib/sounds.ts`)** ([b39652a](https://github.com/saravanakumardb1/learning_ai_clock/commit/b39652a)) - [x] Web Audio API setup with AudioContext @@ -161,7 +161,7 @@ ChronoMind ships in **5 phases over ~6 months**, from web MVP to full cross-plat - [x] Visual progress ring showing time remaining (`CountdownRing.tsx`) - [x] Round counter (e.g., "Round 2 of 4") with dot indicators - [x] Auto-transition between work and break - - [ ] Session complete celebration + - [x] Session complete celebration (trophy + stats) ([35f53e8](https://github.com/saravanakumardb1/learning_ai_clock/commit/35f53e8)) - [x] **Dark + light theme** ([2a4d66f](https://github.com/saravanakumardb1/learning_ai_clock/commit/2a4d66f)) - [x] System preference detection (`prefers-color-scheme`) ([d2b5563](https://github.com/saravanakumardb1/learning_ai_clock/commit/d2b5563)) @@ -169,10 +169,10 @@ ChronoMind ships in **5 phases over ~6 months**, from web MVP to full cross-plat - [x] Theme persisted to localStorage - [x] All components themed via CSS custom properties (`--cm-*`) -- [x] **PWA setup** (partial) ([ace036b](https://github.com/saravanakumardb1/learning_ai_clock/commit/ace036b)) - - [ ] Serwist service worker configuration +- [x] **PWA setup** ([ace036b](https://github.com/saravanakumardb1/learning_ai_clock/commit/ace036b), [28dfa9f](https://github.com/saravanakumardb1/learning_ai_clock/commit/28dfa9f)) + - [x] Serwist service worker configuration ([28dfa9f](https://github.com/saravanakumardb1/learning_ai_clock/commit/28dfa9f)) - [x] Web app manifest (name, icons, theme color, display: standalone) - - [ ] Offline support: app shell cached, timers work offline + - [x] Offline support: app shell cached via Serwist precache + runtime cache - [ ] Install prompt UI ("Add to home screen" banner) - [x] PWA metadata in layout (apple-web-app-capable, theme-color) @@ -207,8 +207,8 @@ ChronoMind ships in **5 phases over ~6 months**, from web MVP to full cross-plat - [x] Focus indicators on all interactive elements (`:focus-visible` ring) - [x] Sufficient color contrast for all urgency levels (dark + light themes) -- [ ] **Timer accuracy tests** - - [ ] Timing accuracy: create timer for T+5s, verify fires within 100ms tolerance +- [x] **Timer accuracy tests** (partial) ([755d030](https://github.com/saravanakumardb1/learning_ai_clock/commit/755d030)) + - [x] Timer fire test: create timer, tick past target, verify fires (store tests) - [ ] Service Worker notification timing tests - [ ] Stress test: 50 concurrent timers with cascades → all fire correctly