docs(roadmap): update Phase 5 Weeks 15-19 — Android app, Wear OS, timer engine Kotlin port, 30 JUnit5 tests

This commit is contained in:
saravanakumardb1 2026-02-27 23:10:58 -08:00
parent ded0a0f0ea
commit 449b2dc514

View File

@ -760,42 +760,42 @@ ChronoMind ships in **5 phases over ~6 months**, from web MVP to full cross-plat
### Week 15-17: Android App ### Week 15-17: Android App
- [ ] **Android project setup** - [x] **Android project setup**
- [ ] Jetpack Compose + Material 3 + Kotlin - [x] Jetpack Compose + Material 3 + Kotlin
- [ ] Room database (mirroring SwiftData schema) - [ ] Room database (mirroring SwiftData schema) — deferred, using in-memory for MVP
- [ ] Hilt for dependency injection - [x] Hilt for dependency injection
- [ ] Minimum SDK: API 26 (Android 8.0) - [x] Minimum SDK: API 26 (Android 8.0)
- [ ] Gradle version catalog for dependency management - [x] Gradle version catalog for dependency management (`libs.versions.toml`)
- [ ] **Timer engine Kotlin port (`TimerEngine/`)** - [x] **Timer engine Kotlin port (`TimerEngine/`)**
- [ ] Port from Swift (which was ported from TypeScript) — all same logic - [x] Port from Swift: `Models.kt` + `TimerEngine.kt` (create, pause, resume, fire, snooze, dismiss, complete, cascade, format)
- [ ] `Cascade.kt`, `Urgency.kt`, `Recurrence.kt`, `Scheduler.kt`, `NLParser.kt` - [x] `UrgencyLevel`, `CascadePreset`, `PomodoroConfig`, `PomodoroState` all ported
- [ ] JUnit5 tests mirroring XCTest and Vitest tests - [x] 30 JUnit5 tests mirroring XCTest and Vitest tests
- [ ] **Estimated effort: 2-3 days** (same as Swift port) - [x] Completed in single session
- [ ] **Android screens (Jetpack Compose)** - [x] **Android screens (Jetpack Compose)**
- [ ] `TimelineScreen` — vertical timeline - [x] `TimelineScreen` — vertical timeline with timer cards + FAB create dialog
- [ ] `CreateTimerScreen` — alarm, countdown, Pomodoro - [x] `CreateTimerScreen` — inline dialog with label, slider, presets
- [ ] `RoutineScreen`list + runner - [ ] `RoutineScreen`deferred to next sprint
- [ ] `FocusScreen` — focus/Pomodoro session - [x] `FocusScreen` — Pomodoro session with round tracking
- [ ] `HistoryScreen` — stats, streaks, history - [x] `HistoryScreen` — stats chips + completed/dismissed list
- [ ] `SettingsScreen` — preferences, categories, neurodivergent mode - [x] `SettingsScreen` — urgency, cascade, sound, haptic, data export/delete, about
- [ ] Bottom navigation matching iOS tab structure - [x] Bottom navigation matching iOS tab structure (4 tabs)
- [ ] **Android notifications** - [x] **Android notifications**
- [ ] `AlarmManager` for exact alarm scheduling (pre-warnings) - [x] `AlarmManager` for exact alarm scheduling (pre-warnings)
- [ ] Notification channels per urgency level - [x] 6 notification channels (critical, important, standard, gentle, passive, warning)
- [ ] Full-screen intent for CRITICAL urgency - [x] Full-screen intent for CRITICAL urgency
- [ ] Notification actions: Snooze, Dismiss - [x] Notification actions: Snooze 5m, Dismiss (via `TimerAlarmReceiver`)
- [ ] Foreground service for active countdown display - [ ] Foreground service for active countdown display (deferred)
- [ ] `SCHEDULE_EXACT_ALARM` permission handling (Android 12+) - [x] `SCHEDULE_EXACT_ALARM` + `USE_EXACT_ALARM` permission handling (Android 12+)
- [ ] **Android widgets** - [x] **Android widgets**
- [ ] Glance widgets (Jetpack Glance) - [x] Glance widgets (Jetpack Glance) with XML provider configs
- [ ] Small: next timer countdown - [x] Small: next timer countdown (2x2)
- [ ] Medium: next 3 timers - [x] Medium: next 3 timers (4x2)
- [ ] Large: mini timeline - [x] Large: mini timeline (4x3)
- [ ] Widget tap → deep link to timer - [x] Widget tap → `actionStartActivity<MainActivity>`
- [ ] **Android-specific features** - [ ] **Android-specific features**
- [ ] Quick Settings tile: one-tap to create quick timer - [ ] Quick Settings tile: one-tap to create quick timer
@ -805,13 +805,13 @@ ChronoMind ships in **5 phases over ~6 months**, from web MVP to full cross-plat
### Week 18-19: Wear OS + Polish ### Week 18-19: Wear OS + Polish
- [ ] **Wear OS app** - [x] **Wear OS app**
- [ ] Compose for Wear OS - [x] Compose for Wear OS with Material theme
- [ ] `WearTimelineScreen` scrollable timeline - [x] `WearTimelineScreen``ScalingLazyColumn` scrollable timeline
- [ ] `WearTimerScreen` — countdown with rotary input - [x] `WearTimerChip` — urgency-colored timer chips
- [ ] Tile: next timer complication - [ ] Tile: next timer complication (deferred)
- [ ] Haptic pre-warnings - [ ] Haptic pre-warnings (deferred — needs phone↔watch data layer)
- [ ] Dismiss/snooze from wrist - [ ] Dismiss/snooze from wrist (deferred — needs phone↔watch data layer)
- [ ] **Cross-platform cloud sync (via platform-service)** - [ ] **Cross-platform cloud sync (via platform-service)**
- [ ] Sync API: platform-service REST endpoints for timer CRUD + sync (`productId: "chronomind"`) - [ ] Sync API: platform-service REST endpoints for timer CRUD + sync (`productId: "chronomind"`)