Files
HouseHoldKeaper/.planning/STATE.md
Jean-Luc Makiola 772034cba1 docs(07-02): complete sort dropdown UI plan
- 07-02-SUMMARY.md: SortDropdown widget wired into HomeScreen and TaskListScreen AppBars
- STATE.md: updated metrics, decisions, session record
- ROADMAP.md: Phase 7 complete (2/2 plans done)
2026-03-16 22:40:39 +01:00

4.1 KiB

gsd_state_version, milestone, milestone_name, status, stopped_at, last_updated, last_activity, progress
gsd_state_version milestone milestone_name status stopped_at last_updated last_activity progress
1.0 v1.0 milestone completed Completed 07-task-sorting/07-02-PLAN.md 2026-03-16T21:40:24.558Z 2026-03-16 — Completed Phase 6 Plan 01 (task completion history)
total_phases completed_phases total_plans completed_plans percent
3 3 5 5 100

Project State

Project Reference

See: .planning/PROJECT.md (updated 2026-03-16)

Core value: Users can see what needs doing today, mark it done, and trust the app to schedule the next occurrence — without thinking about it. Current focus: v1.1 Calendar & Polish — Phase 6: Task History

Current Position

Phase: 6 — Task History Plan: 1/1 complete (Phase 6 done) Status: Phase Complete Last activity: 2026-03-16 — Completed Phase 6 Plan 01 (task completion history)

Progress: [██████████] 100% (1/1 plans in Phase 6)

Performance Metrics

Metric v1.0 v1.1
Phases 4 3 planned
Plans 13 TBD
LOC (lib) 7,773 TBD
Tests 89 TBD
Phase 05-calendar-strip P01 5 2 tasks
Phase 05-calendar-strip P02 8 3 tasks
Phase 06-task-history P01 5 2 tasks
Phase 07-task-sorting P01 4 2 tasks
Phase 07-task-sorting P02 4 2 tasks

Accumulated Context

Decisions

Decision Rationale
Calendar strip replaces daily plan home screen v1.1 goal per PROJECT.md — not additive, the stacked overdue/today/upcoming sections are removed
Phase 5 before Phase 6 and 7 Calendar strip is the primary UI surface; history and sorting operate within or alongside it
Phase 6 and 7 both depend on Phase 5 only History and sorting are independent of each other — could execute in either order
HIST-01 and HIST-02 in same phase Data layer (HIST-01) is only 1-2 DAO additions; grouping with the UI (HIST-02) keeps the phase coherent
Used NotifierProvider instead of deprecated StateProvider Riverpod 3.x removed StateProvider; NotifierProvider is the correct replacement
calendarDayProvider fetches overdue tasks with .first in asyncMap when isToday Consistent with dailyPlanProvider pattern; avoids combining two streams
watchTasksForDate sorts alphabetically by task name Same-day tasks have no meaningful time-based order; alpha sort is deterministic and user-friendly
CalendarStripController as VoidCallback holder Avoids GlobalKey for single imperative scroll-to-today action — simpler
Tests use pump()+pump(Duration) instead of pumpAndSettle() CalendarStrip animation controllers cause pumpAndSettle timeout — fixed-duration pump steps are reliable
No separate Riverpod provider for history sheet ref.read(appDatabaseProvider) directly in ConsumerWidget — one-shot modals do not need a dedicated provider
CalendarTaskRow onTap navigates to task edit form Makes history accessible in one tap from home screen, consistent with GoRouter route patterns
  • [Phase 07-task-sorting]: Default sort is alphabetical — continuity with existing A-Z SQL sort in CalendarDayList
  • [Phase 07-task-sorting]: overdueTasks are NOT sorted — pinned at top in existing order per design decision
  • [Phase 07-task-sorting]: Sort preference stored as enum.name string in SharedPreferences (not intEnum) — enum reordering safe
  • [Phase 07-task-sorting]: Used PopupMenuButton for SortDropdown in AppBar — menu overlay vs inline expansion, Material 3 pattern
  • [Phase 07-task-sorting]: HomeScreen uses nested Scaffold for AppBar — standard StatefulShellRoute.indexedStack per-tab AppBar pattern

Pending Todos

None.

Blockers/Concerns

  • Phase 5 complete. daily_plan_providers.dart, daily_plan_task_row.dart, and progress_card.dart are now dead code (safe to clean up in a future phase). DailyPlanDao must NOT be deleted — still used by the notification service.

Session Continuity

Last session: 2026-03-16T21:40:24.556Z Stopped at: Completed 07-task-sorting/07-02-PLAN.md Resume file: None Next action: Phase 7 (task sorting) or release