docs: complete date selection handoff
This commit is contained in:
parent
a82b58167e
commit
9c996ae278
9 changed files with 90 additions and 11 deletions
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
# Date Selection 01 Block 02 — Selected-Date State and Reads
|
||||
|
||||
**Status:** Planned.
|
||||
**Status:** Complete.
|
||||
**Goal:** Make Today screen loading date-aware without changing task state.
|
||||
|
||||
---
|
||||
|
|
@ -14,6 +14,15 @@
|
|||
After this block, app/controller code can load Today data for any selected
|
||||
`CivilDate`. The visual top-bar buttons may still be disabled until Block 03.
|
||||
|
||||
Implementation notes:
|
||||
|
||||
1. Added `SelectedDateController` with no-op repeated selection and explicit
|
||||
previous/next day movement.
|
||||
2. Made `TodayScreenController` read through the selected date, clear selected
|
||||
cards on date change, and protect newer loads from stale in-flight reads.
|
||||
3. Added controller coverage for direct selection, previous/next, empty reads,
|
||||
failures, and rapid navigation.
|
||||
|
||||
---
|
||||
|
||||
## Chunk 2.1 — Add selected-date state API
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
# Date Selection 01 Block 03 — Top-Bar Navigation and Date Picker
|
||||
|
||||
**Status:** Planned.
|
||||
**Status:** Complete.
|
||||
**Goal:** Wire the visible top-bar controls to selected-date state while
|
||||
preserving the compact dark UI.
|
||||
|
||||
|
|
@ -15,6 +15,14 @@ preserving the compact dark UI.
|
|||
After this block, the user can click previous/next day arrows and open a date
|
||||
picker from the displayed date.
|
||||
|
||||
Implementation notes:
|
||||
|
||||
1. Wired `TopBar` previous, next, and choose-date callbacks through the screen
|
||||
scaffold.
|
||||
2. Converted the date label to an accessible button that opens Flutter's themed
|
||||
date picker.
|
||||
3. Preserved modal safety by closing selected cards when changing dates.
|
||||
|
||||
---
|
||||
|
||||
## Chunk 3.1 — Refactor `TopBar` callback API
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
# Date Selection 01 Block 04 — Date-Aware Commands and Persistence
|
||||
|
||||
**Status:** Planned.
|
||||
**Status:** Complete.
|
||||
**Goal:** Ensure task commands run against the currently selected date and persist
|
||||
correctly across multiple days.
|
||||
|
||||
|
|
@ -16,6 +16,15 @@ After this block, a user can switch days, add/schedule/complete tasks on that
|
|||
visible day, close the app, reopen it, and see the expected state on the same
|
||||
selected day.
|
||||
|
||||
Implementation notes:
|
||||
|
||||
1. `SchedulerCommandController` now reads the selected date at command execution
|
||||
time.
|
||||
2. Persistent and demo compositions create date-aware read and command
|
||||
controllers.
|
||||
3. SQLite lifecycle coverage proves future-day schedule, complete, uncomplete,
|
||||
reopen, and unified Backlog behavior.
|
||||
|
||||
---
|
||||
|
||||
## Chunk 4.1 — Make command controller date-aware
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
# Date Selection 01 Block 05 — Completion Date Presentation
|
||||
|
||||
**Status:** Planned.
|
||||
**Status:** Complete.
|
||||
**Goal:** Show enough completion timestamp context when the completed date and
|
||||
scheduled date differ.
|
||||
|
||||
|
|
@ -16,6 +16,14 @@ After this block, completed timeline cards still look compact for normal same-da
|
|||
completion, but they show date context when completion happened on a different
|
||||
local date than the scheduled slot.
|
||||
|
||||
Implementation notes:
|
||||
|
||||
1. Timeline read models carry actual start/end completion context.
|
||||
2. Flutter presentation mapping shows date + time when completion metadata falls
|
||||
on a different local date than the scheduled slot.
|
||||
3. Model and persistence-backed tests cover same-day and cross-date completion
|
||||
labels.
|
||||
|
||||
---
|
||||
|
||||
## Chunk 5.1 — Add completion date fields to presentation models
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
# Date Selection 01 Block 06 — Validation and Handoff
|
||||
|
||||
**Status:** Planned.
|
||||
**Status:** Complete.
|
||||
**Goal:** Prove date selection is stable, persisted, and ready for Task Pushing 01.
|
||||
|
||||
---
|
||||
|
|
@ -14,6 +14,27 @@
|
|||
After this block, Date Selection 01 should be complete and Task Pushing 01 can
|
||||
begin from a date-aware, persistence-backed UI.
|
||||
|
||||
## Handoff notes
|
||||
|
||||
Date Selection 01 is complete on `date-selection-01-day-navigation`. The branch
|
||||
is intentionally unmerged so behavior can be reviewed first.
|
||||
|
||||
Validation results:
|
||||
|
||||
1. `scripts/bootstrap_dev.sh`: passed.
|
||||
2. `scripts/test.sh`: blocked before tests at `dart analyze` because the Dart
|
||||
analysis server failed with `OS Error: Too many open files, errno = 24`.
|
||||
3. `cd packages/scheduler_core && dart analyze`: blocked by the same Dart
|
||||
analysis server file-watcher error.
|
||||
4. `cd packages/scheduler_core && dart test`: passed, 300 tests.
|
||||
5. `cd packages/scheduler_persistence_sqlite && dart test`: passed, 15 tests.
|
||||
6. `cd apps/focus_flow_flutter && flutter analyze`: blocked by the same analyzer
|
||||
server failure in this environment.
|
||||
7. `cd apps/focus_flow_flutter && flutter test`: passed, 39 tests.
|
||||
|
||||
The analyzer failure is an environment/tooling failure, not a reported Dart or
|
||||
Flutter lint finding.
|
||||
|
||||
---
|
||||
|
||||
## Chunk 6.1 — Add end-to-end date navigation tests
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
# Date Selection 01 Execution Order
|
||||
|
||||
**Status:** Planned.
|
||||
**Status:** Complete.
|
||||
|
||||
Run these files in order. All chunks are intended for `XHIGH` execution unless a
|
||||
chunk explicitly says otherwise.
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
# Date Selection 01 Summary — Day Navigation and Date Picker
|
||||
|
||||
**Status:** Planned.
|
||||
**Status:** Complete.
|
||||
**Scope level:** XHIGH implementation plan.
|
||||
**Primary outcome:** The Flutter desktop app can switch the visible planning day,
|
||||
load the correct persisted timeline for that day, and keep date-specific task
|
||||
|
|
@ -103,6 +103,29 @@ widgets to compute task placement or conflict resolution.
|
|||
|
||||
---
|
||||
|
||||
## Completion notes
|
||||
|
||||
Date Selection 01 is complete on the `date-selection-01-day-navigation` branch
|
||||
and is intentionally awaiting behavior review before merge.
|
||||
|
||||
Implemented behavior:
|
||||
|
||||
1. A selected-date controller owns previous, next, and direct date selection.
|
||||
2. Today reads use the selected `CivilDate` and ignore stale in-flight results.
|
||||
3. Top-bar previous/next/date-picker controls reload the selected day and keep
|
||||
the compact dark UI accessible.
|
||||
4. Schedule, complete, and uncomplete commands read the selected date at
|
||||
execution time.
|
||||
5. Future-day schedule, completion, uncompletion, and reopen behavior are covered
|
||||
with SQLite-backed lifecycle tests.
|
||||
6. Cross-date completion shows date + time while same-day completion remains
|
||||
compact.
|
||||
|
||||
Validation status is recorded in
|
||||
`DATE_SELECTION_01_BLOCK_06_VALIDATION_HANDOFF.md`.
|
||||
|
||||
---
|
||||
|
||||
## Important implementation decision
|
||||
|
||||
Do not make `DemoSchedulerComposition.date` the durable date-navigation model.
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
# Date Selection 01 — Day Navigation and Date Picker
|
||||
|
||||
**Status:** Planned. Execute after `Persistence Plan 1 - SQLite Runtime Persistence`.
|
||||
**Status:** Complete. Execute after `Persistence Plan 1 - SQLite Runtime Persistence`.
|
||||
**Scope level:** XHIGH implementation plan.
|
||||
|
||||
This plan makes the compact Today timeline date-aware. The top-bar arrows move
|
||||
|
|
|
|||
|
|
@ -6,11 +6,12 @@
|
|||
|
||||
Ordered implementation queue:
|
||||
|
||||
1. `Date Selection 01 - Day Navigation and Date Picker/`
|
||||
2. `Task Pushing 01 - Past Task Push Controls/`
|
||||
1. `Date Selection 01 - Day Navigation and Date Picker/` — Complete; review
|
||||
pending on `date-selection-01-day-navigation`.
|
||||
2. `Task Pushing 01 - Past Task Push Controls/` — Next incomplete plan.
|
||||
|
||||
Execute only the first incomplete plan. Do not implement Task Pushing 01 until
|
||||
Date Selection 01 is complete.
|
||||
Date Selection 01 is reviewed and merged.
|
||||
|
||||
Start each plan with its `*_SUMMARY.md`, then follow its `*_EXECUTION_ORDER.md`.
|
||||
Completed implementation plans live in `../Archived plans/`. Curated copies that
|
||||
|
|
|
|||
Loading…
Reference in a new issue