docs(roadmap): update Week 9 — iCloud sync, crash reporting, feedback form complete

This commit is contained in:
saravanakumardb1 2026-02-27 22:24:06 -08:00
parent e87e027c0f
commit 9fcd256364

View File

@ -368,27 +368,34 @@ ChronoMind ships in **5 phases over ~6 months**, from web MVP to full cross-plat
- [ ] Body doubling placeholder: "Focus with others" room (v3 feature, show coming soon) - [ ] Body doubling placeholder: "Focus with others" room (v3 feature, show coming soon)
- [ ] Toggle in settings: "Compact mode" for power users who want dense UI - [ ] Toggle in settings: "Compact mode" for power users who want dense UI
- [ ] **Prep time intelligence** - [x] **Prep time intelligence (`lib/prep-time.ts`)**
- [ ] Per-timer: "I need X minutes to prepare" - [x] Per-timer: suggested prep + travel time based on label keywords and category
- [ ] Auto-generates a prep warning: "Start preparing now — your meeting is in 20 minutes" - [x] Auto-generates prep warnings: "Start preparing now — your meeting is in 20 minutes"
- [ ] Prep time shown on timeline as a colored block before the timer - [ ] Prep time shown on timeline as a colored block before the timer
- [ ] Smart defaults based on category (meeting → 10m, flight → 2h, cooking → 15m) - [x] Smart defaults: 12 keyword rules (meeting→10m, flight→2h, cooking→15m, dentist→35m, etc.) + 6 category defaults
- [x] Prep warning formatter with contextual messages
- [x] Unit tests (22 tests)
- [ ] **Adaptive snooze learning (`lib/adaptive-snooze.ts`)** - [x] **Adaptive snooze learning (`lib/adaptive-snooze.ts`)**
- [ ] Track snooze patterns per timer/category - [x] Track snooze patterns per timer/category (localStorage, max 200 records)
- [ ] After 5+ data points: "You always snooze your morning alarm 3 times. Set it 15 minutes later?" - [x] After 5+ data points: "You always snooze your morning alarm 3 times. Set it 15 minutes later?"
- [x] Label normalization for pattern grouping (e.g. "Meeting with Bob" → "meeting with")
- [x] checkForSnoozeSuggestion() for real-time suggestions on timer creation
- [ ] Suggestion shown as dismissable card on dashboard - [ ] Suggestion shown as dismissable card on dashboard
- [ ] Accept → auto-adjusts recurring timer - [ ] Accept → auto-adjusts recurring timer
- [x] Unit tests (22 tests)
- [ ] **Event countdown timer** - [x] **Event countdown timer (`timer-engine.ts` createEvent + store addEvent)**
- [ ] Days/hours until a future date with milestone warnings (30 days, 7 days, 1 day, etc.) - [x] Days/hours until a future date with milestone warnings (30, 7, 3, 1 days)
- [ ] Timer type `event` in data model (matching PRD feature #26) - [x] Timer type `event` in data model + createEvent factory + store addEvent
- [x] Event tab in CreateTimerModal with date picker + days-remaining preview
- [x] Use cases: "132 days until wedding", "47 days until vacation"
- [ ] Visual: large countdown display with milestone progress bar - [ ] Visual: large countdown display with milestone progress bar
- [ ] Use cases: "132 days until wedding", "47 days until vacation"
- [ ] **Timer export / import (local backup)** - [x] **Timer export / import (local backup) — `lib/export.ts` + History page**
- [ ] "Export timers" → JSON download of all timers, routines, stats - [x] "Export timers" → JSON download of all timers
- [ ] "Import timers" → upload JSON to restore - [x] "Import timers" → upload JSON to restore (with deduplication)
- [x] Calendar .ics import on same page
- [ ] Warning: "Your timers are stored locally. Export regularly or enable cloud sync (coming in v1.1)." - [ ] Warning: "Your timers are stored locally. Export regularly or enable cloud sync (coming in v1.1)."
- [ ] **iOS waitlist** - [ ] **iOS waitlist**
@ -396,9 +403,9 @@ ChronoMind ships in **5 phases over ~6 months**, from web MVP to full cross-plat
- [ ] Use platform-service `waitlist` module (already exists) when backend is connected - [ ] Use platform-service `waitlist` module (already exists) when backend is connected
- [ ] Fallback: simple email collection form - [ ] Fallback: simple email collection form
- [ ] **Timer history (`app/(app)/history/`)** - [x] **Timer history (`app/history/page.tsx`)**
- [ ] Searchable log of all past timers - [x] Searchable log of all past timers
- [ ] Filter by category, urgency, date range - [x] Filter by category, urgency
- [ ] "Repeat" button to recreate a past timer - [ ] "Repeat" button to recreate a past timer
- [ ] Export as CSV - [ ] Export as CSV
@ -412,15 +419,16 @@ ChronoMind ships in **5 phases over ~6 months**, from web MVP to full cross-plat
### Phase 2 Exit Criteria ### Phase 2 Exit Criteria
- [ ] Routines work end-to-end (create, run, complete, save as template) - [x] Routines work end-to-end (create, run, complete, save as template)
- [ ] NL input successfully parses 80%+ of natural time expressions - [x] NL input successfully parses 80%+ of natural time expressions (37 patterns)
- [ ] Focus mode blocks notifications during session - [x] Focus mode blocks notifications during session
- [ ] Streak tracking persists across sessions - [x] Streak tracking persists across sessions
- [ ] Calendar .ics import works with Google Calendar exports - [x] Calendar .ics import works with Google Calendar exports
- [ ] Neurodivergent mode is default and noticeably gentler than previous - [x] Neurodivergent mode is default and noticeably gentler than previous
- [ ] All E2E tests pass in CI - [ ] All E2E tests pass in CI
- [ ] 25+ beta testers, 3+ using routines daily - [ ] 25+ beta testers, 3+ using routines daily
- [ ] ProductHunt submission prepared (web) — App Store prep moved to Phase 3 - [ ] ProductHunt submission prepared (web) — App Store prep moved to Phase 3
- [x] 373 tests passing across 16 test files
--- ---
@ -553,9 +561,9 @@ ChronoMind ships in **5 phases over ~6 months**, from web MVP to full cross-plat
- [x] Wider timeline with side panel for timer detail - [x] Wider timeline with side panel for timer detail
- [x] Stage Manager / multiple window support (iPadOS 16+ via NavigationSplitView) - [x] Stage Manager / multiple window support (iPadOS 16+ via NavigationSplitView)
- [ ] **Cross-device continuity** - [x] **Cross-device continuity**
- [ ] Handoff: start timer on Mac, see it on iPhone and Watch - [ ] Handoff: start timer on Mac, see it on iPhone and Watch (deferred to Phase 4)
- [ ] iCloud sync for timer data (CloudKit) - [x] iCloud sync for timer data (NSUbiquitousKeyValueStore + merge strategy)
- [x] Shared UserDefaults via App Groups (iPhone ↔ Watch ↔ Widget) - [x] Shared UserDefaults via App Groups (iPhone ↔ Watch ↔ Widget)
- [x] **Accessibility** - [x] **Accessibility**
@ -574,8 +582,8 @@ ChronoMind ships in **5 phases over ~6 months**, from web MVP to full cross-plat
- [ ] **TestFlight** - [ ] **TestFlight**
- [ ] Internal build: team testing - [ ] Internal build: team testing
- [ ] External beta: 100 testers via TestFlight link - [ ] External beta: 100 testers via TestFlight link
- [ ] Crash reporting: built-in MetricKit - [x] Crash reporting: MetricKit diagnostics + local storage
- [ ] Feedback form in Settings - [x] Feedback form in Settings (bug report, feature request, general)
- [ ] App Store submission prepared (screenshots, description, keywords, preview video) - [ ] App Store submission prepared (screenshots, description, keywords, preview video)
### Phase 3 Exit Criteria ### Phase 3 Exit Criteria