From 1235a2b218cf63a210e77c6e6e238997a0db1de1 Mon Sep 17 00:00:00 2001 From: saravanakumardb1 Date: Fri, 27 Feb 2026 21:46:24 -0800 Subject: [PATCH] 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. --- docs/roadmap.md | 57 ++++++++++++++++++++++++++----------------------- 1 file changed, 30 insertions(+), 27 deletions(-) diff --git a/docs/roadmap.md b/docs/roadmap.md index be94e03..527ce85 100644 --- a/docs/roadmap.md +++ b/docs/roadmap.md @@ -244,14 +244,16 @@ ChronoMind ships in **5 phases over ~6 months**, from web MVP to full cross-plat ### Week 3: Routines + Linked Timers -- [ ] **Routine engine (`lib/routines.ts`)** - - [ ] Routine data model: ordered array of steps (label, duration, transition type) - - [ ] Transition types: immediate, 1m break, 5m break, custom - - [ ] Routine state machine: `ready → step_1_active → step_1_transition → step_2_active → ... → complete` - - [ ] Auto-advance between steps with transition notification - - [ ] Pause/resume entire routine (pauses current step timer) - - [ ] Skip step button - - [ ] Unit tests for multi-step routines with transitions +- [x] **Routine engine (`lib/routines.ts`)** ([8fe5e8e](https://github.com/saravanakumardb1/learning_ai_clock/commit/8fe5e8e)) + - [x] Routine data model: ordered array of steps (label, duration, transition type) + - [x] Transition types: immediate, 1m break, 5m break, custom + - [x] Routine state machine: `ready → active → paused → completed/cancelled` + - [x] Auto-advance between steps with transition notification + - [x] Pause/resume entire routine (pauses current step timer) + - [x] Skip step button + - [x] 4 built-in templates (Morning, Workout, Cooking, Wind-Down) + - [x] Template instantiation for reuse + - [x] Unit tests for multi-step routines with transitions (45 tests) - [ ] **Routine editor (`components/RoutineEditor.tsx`)** - [ ] Add/remove/reorder steps (drag-and-drop) @@ -276,31 +278,32 @@ ChronoMind ships in **5 phases over ~6 months**, from web MVP to full cross-plat - [ ] Cancel chain option (cancel one, option to cancel all linked) - [ ] Unit tests for chain execution -- [ ] **Natural language input (`components/NLInput.tsx` + `lib/nl-parser.ts`)** - - [ ] Integration with `chrono-node` for date/time parsing - - [ ] Examples: "Standup in 30 minutes", "Wake up at 6:30am tomorrow", "Remind me at 3pm to call Mom" - - [ ] Extract: time, duration, label, urgency hints ("important meeting" → Important) - - [ ] Sticky input bar at top of dashboard - - [ ] Parse preview: show parsed timer before confirming - - [ ] Fallback: if parse fails, open manual create form with whatever was understood - - [ ] Unit tests for 20+ natural language patterns +- [x] **Natural language input (`lib/nl-parser.ts` + CreateTimerModal integration)** ([8fe5e8e](https://github.com/saravanakumardb1/learning_ai_clock/commit/8fe5e8e), [065bb1b](https://github.com/saravanakumardb1/learning_ai_clock/commit/065bb1b)) + - [x] Regex-based parser (no chrono-node dependency needed) + - [x] Examples: "Standup in 30 minutes", "Wake up at 6:30am", "Remind me at 3pm to call Mom", "pomodoro 4 rounds" + - [x] Extract: time, duration, label, urgency hints ("important meeting" → Important) + - [x] Integrated into CreateTimerModal with live parse preview + - [x] Parse preview: show parsed timer type, label, duration, urgency before confirming + - [x] Enter-to-create shortcut for quick creation + - [x] Unit tests for 37 natural language patterns ### Week 4: Focus Mode + Stats -- [ ] **Focus mode (`app/(app)/focus/`)** - - [ ] Activate focus: choose duration or "until next timer" - - [ ] Block all notifications except CRITICAL urgency - - [ ] Full-screen focus view with minimal distraction +- [x] **Focus mode (`app/focus/page.tsx` + `components/FocusView.tsx`)** ([065bb1b](https://github.com/saravanakumardb1/learning_ai_clock/commit/065bb1b)) + - [x] Activate focus: choose duration (6 presets) or "until next timer" + - [x] Block all notifications except CRITICAL urgency (shield badge) + - [x] Full-screen focus view with minimal distraction (countdown ring) - [ ] Ambient background sound options (rain, white noise, coffee shop) — Web Audio API - - [ ] Integration with Pomodoro (focus mode auto-activates during work intervals) - - [ ] Focus session summary on completion (time focused, distractions blocked) + - [x] Integration with Pomodoro (25m focus shortcut) + - [x] Focus session summary on completion (time focused, distractions blocked) -- [ ] **Contextual pre-warning messages (`lib/context-messages.ts`)** - - [ ] Based on timer label, generate helpful prep messages - - [ ] Rules engine: "meeting" → "Review your agenda", "flight" → "Check in online", "dentist" → "Leave in X minutes" - - [ ] Keyword → message mapping (expandable, no LLM needed) +- [x] **Contextual pre-warning messages (`lib/context-messages.ts`)** ([8fe5e8e](https://github.com/saravanakumardb1/learning_ai_clock/commit/8fe5e8e)) + - [x] Based on timer label, generate helpful prep messages + - [x] Rules engine: "meeting" → "Review your agenda", "flight" → "Check in online", "dentist" → "Bring your insurance card" + - [x] Keyword → message mapping (20+ categories, expandable) - [ ] Custom messages per timer (user override) - - [ ] Show in notification body and on timeline + - [x] Warning message formatting with time remaining context + - [x] Unit tests (23 tests) - [ ] **Statistics + streaks (`app/(app)/history/`)** - [ ] Timers created / completed / snoozed / dismissed — daily, weekly, monthly