Archive v1.1 Calendar & Polish milestone artifacts (roadmap, requirements, phase directories) to milestones/. Evolve PROJECT.md with validated requirements and new key decisions. Update RETROSPECTIVE.md with v1.1 section and cross-milestone trends. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
5.8 KiB
5.8 KiB
phase, plan, subsystem, tags, requires, provides, affects, tech-stack, key-files, key-decisions, patterns-established, requirements-completed, duration, completed
| phase | plan | subsystem | tags | requires | provides | affects | tech-stack | key-files | key-decisions | patterns-established | requirements-completed | duration | completed | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 07-task-sorting | 01 | ui |
|
|
|
|
|
|
|
|
|
4min | 2026-03-16 |
Phase 07 Plan 01: Task Sort Domain and Provider Summary
TaskSortOption enum + SharedPreferences-backed SortPreferenceNotifier wired into calendarDayProvider and tasksInRoomProvider with in-memory alphabetical/interval/effort sorting
Performance
- Duration: 4 min
- Started: 2026-03-16T21:29:32Z
- Completed: 2026-03-16T21:33:37Z
- Tasks: 2
- Files modified: 9
Accomplishments
- TaskSortOption enum (alphabetical, interval, effort) with SharedPreferences persistence via SortPreferenceNotifier
- calendarDayProvider now watches sortPreferenceProvider and sorts dayTasks in-memory; overdueTasks intentionally unsorted
- tasksInRoomProvider now watches sortPreferenceProvider and applies sort via stream.map
- 7 new unit tests for SortPreferenceNotifier covering default, state update, persistence, and restart recovery
- 4 German localization strings added (sortAlphabetical, sortInterval, sortEffort, sortLabel)
Task Commits
Each task was committed atomically:
- TDD RED: Failing sort preference tests -
a9f2983(test) - Task 1: TaskSortOption enum, SortPreferenceNotifier, localization -
13c7d62(feat) - Task 2: Sort integration into calendarDayProvider and tasksInRoomProvider -
3697e4e(feat)
Files Created/Modified
lib/features/tasks/domain/task_sort_option.dart- TaskSortOption enum with alphabetical/interval/effort valueslib/features/tasks/presentation/sort_preference_notifier.dart- SortPreferenceNotifier with SharedPreferences persistencelib/features/tasks/presentation/sort_preference_notifier.g.dart- Generated Riverpod provider codelib/features/home/presentation/calendar_providers.dart- Added sortPreferenceProvider watch + _sortTasks helperlib/features/tasks/presentation/task_providers.dart- Added sortPreferenceProvider watch + _sortTasksRaw helper + stream.maplib/l10n/app_de.arb- Added sortAlphabetical, sortInterval, sortEffort, sortLabel stringslib/l10n/app_localizations.dart- Regenerated with sort string getterslib/l10n/app_localizations_de.dart- Regenerated with German sort string implementationstest/features/tasks/presentation/sort_preference_notifier_test.dart- 7 unit tests for sort preference
Decisions Made
- Default sort is alphabetical for continuity with existing SQL A-Z sort in CalendarDayList
- overdueTasks section is explicitly NOT sorted — stays pinned at top in existing order
- Sort preference stored as enum.name string in SharedPreferences (not intEnum) so enum reordering is always safe
- SortPreferenceNotifier uses
keepAlive: true— global app preference must not be disposed
Deviations from Plan
None - plan executed exactly as written.
Issues Encountered
None.
User Setup Required
None - no external service configuration required.
Next Phase Readiness
- sortPreferenceProvider is live and defaults to alphabetical
- Both task list providers react to sort preference changes immediately
- Ready for 07-02: sort UI (dropdown in AppBar) to write to sortPreferenceProvider
Phase: 07-task-sorting Completed: 2026-03-16
Self-Check: PASSED
- FOUND: lib/features/tasks/domain/task_sort_option.dart
- FOUND: lib/features/tasks/presentation/sort_preference_notifier.dart
- FOUND: lib/features/tasks/presentation/sort_preference_notifier.g.dart
- FOUND: test/features/tasks/presentation/sort_preference_notifier_test.dart
- FOUND: .planning/phases/07-task-sorting/07-01-SUMMARY.md
- Commits
a9f2983,13c7d62,3697e4eall verified in git log