docs: archive task pushing plan

This commit is contained in:
Ashley Venn 2026-07-02 12:51:04 -07:00
parent 93f4b12283
commit fcafa27e58
13 changed files with 67 additions and 8 deletions

View file

@ -16,6 +16,9 @@ Included documents cover:
normal Flutter startup and close/reopen task lifecycle proof. normal Flutter startup and close/reopen task lifecycle proof.
- Date Selection 01, the completed day navigation and date picker plan for the - Date Selection 01, the completed day navigation and date picker plan for the
persistence-backed Flutter Today timeline. persistence-backed Flutter Today timeline.
- Task Pushing 01, the completed past-task push controls plan for planned
flexible tasks, including backend scheduling semantics and Backlog freshness
reset behavior.
Excluded documents include superseded originals, MongoDB-targeted persistence or Excluded documents include superseded originals, MongoDB-targeted persistence or
runtime plans, planned/blocked UI handoff plans, old archive indexes, and review runtime plans, planned/blocked UI handoff plans, old archive indexes, and review

View file

@ -4,7 +4,7 @@
# Task Pushing 01 — Past Task Push Controls # Task Pushing 01 — Past Task Push Controls
**Status:** Planned. Execute after Date Selection 01. **Status:** Complete. Executed after Date Selection 01.
**Scope level:** XHIGH implementation plan. **Scope level:** XHIGH implementation plan.
This plan adds the push affordance for scheduled tasks that are in the past and This plan adds the push affordance for scheduled tasks that are in the past and

View file

@ -4,7 +4,7 @@
# Task Pushing 01 Block 05 — Command Wiring and Persistence # Task Pushing 01 Block 05 — Command Wiring and Persistence
**Status:** Planned. **Status:** Complete.
**Goal:** Connect push menu destinations to application commands and prove their **Goal:** Connect push menu destinations to application commands and prove their
results persist. results persist.

View file

@ -4,7 +4,7 @@
# Task Pushing 01 Block 06 — Destination Scheduling Rules # Task Pushing 01 Block 06 — Destination Scheduling Rules
**Status:** Planned. **Status:** Complete.
**Goal:** Verify or adjust backend push scheduling so destination behavior exactly **Goal:** Verify or adjust backend push scheduling so destination behavior exactly
matches the requested product rules. matches the requested product rules.

View file

@ -4,7 +4,7 @@
# Task Pushing 01 Block 07 — Backlog Freshness Reset # Task Pushing 01 Block 07 — Backlog Freshness Reset
**Status:** Planned. **Status:** Complete.
**Goal:** Make Push to backlog reset the backlog freshness timer without losing **Goal:** Make Push to backlog reset the backlog freshness timer without losing
original task creation history. original task creation history.

View file

@ -4,7 +4,7 @@
# Task Pushing 01 Block 08 — Validation and Handoff # Task Pushing 01 Block 08 — Validation and Handoff
**Status:** Planned. **Status:** Complete.
**Goal:** Prove task pushing works end to end and close the plan cleanly. **Goal:** Prove task pushing works end to end and close the plan cleanly.
--- ---
@ -113,3 +113,35 @@ flutter test
- Push results persist through SQLite. - Push results persist through SQLite.
- Push to Backlog resets freshness without rewriting creation history. - Push to Backlog resets freshness without rewriting creation history.
- Validation status is documented. - Validation status is documented.
## Handoff notes
Implemented changes:
1. Added past-task push presentation state, button/menu UI, and command
callbacks.
2. Routed all three destinations through `SchedulerCommandController` and
`V1ApplicationCommandUseCases`.
3. Added scheduler/application support for `Push to next` after command time,
including overdue tasks from previous dates.
4. Added `Task.backlogEnteredAt` and `backlogEnteredAtProvenance`; Backlog age
filtering and staleness markers now use that freshness anchor with
`createdAt` fallback.
5. Added on-disk SQLite close/reopen coverage for push-next, push-tomorrow,
push-backlog, and completion after push.
Validation completed:
```sh
cd packages/scheduler_core
dart test test/document_mapping_test.dart test/scheduling_engine_test.dart test/application_commands_test.dart test/persistence_edge_cases_test.dart test/edge_case_regression_test.dart test/task_lifecycle_test.dart
cd ../../apps/focus_flow_flutter
flutter test test/models/past_task_push_presentation_test.dart test/widget_test.dart test/persistent_composition_test.dart
flutter test test/persistent_composition_test.dart
```
Unverified gates:
1. Full `scripts/test.sh`, full package `dart analyze`, and full Flutter
analyze/test were not rerun for this closeout. Earlier hook/analyzer runs in
this branch hit the known Dart analysis server `Too many open files` failure.

View file

@ -4,7 +4,7 @@
# Task Pushing 01 Execution Order # Task Pushing 01 Execution Order
**Status:** Planned. **Status:** Complete.
Run these files in order. All chunks are intended for `XHIGH` execution unless a Run these files in order. All chunks are intended for `XHIGH` execution unless a
chunk explicitly says otherwise. chunk explicitly says otherwise.

View file

@ -4,7 +4,7 @@
# Task Pushing 01 Summary — Past Task Push Controls # Task Pushing 01 Summary — Past Task Push Controls
**Status:** Planned. **Status:** Complete.
**Scope level:** XHIGH implementation plan. **Scope level:** XHIGH implementation plan.
**Primary outcome:** Past, incomplete scheduled tasks expose a persistent push **Primary outcome:** Past, incomplete scheduled tasks expose a persistent push
control that can move the task to the next available slot, tomorrow's first open control that can move the task to the next available slot, tomorrow's first open
@ -91,6 +91,30 @@ Task Pushing 01 is complete when all of the following are true:
11. UI widgets do not contain scheduling, Drift, SQL, or repository logic. 11. UI widgets do not contain scheduling, Drift, SQL, or repository logic.
12. Validation gates pass, or unavailable commands are documented. 12. Validation gates pass, or unavailable commands are documented.
## Completion notes
Implemented on branch `task-pushing-01-past-task-controls`.
Key decisions:
1. Push support remains limited to planned flexible tasks in V1.
2. `Push to next` uses the real current owner-local date/time, not the selected
review date, and never schedules before that instant.
3. `Push to tomorrow` targets the next owner-local civil day relative to command
time.
4. `Push to backlog` records `backlogEnteredAt` and provenance while preserving
original `createdAt`.
Validation completed:
```sh
cd packages/scheduler_core
dart test test/document_mapping_test.dart test/scheduling_engine_test.dart test/application_commands_test.dart test/persistence_edge_cases_test.dart test/edge_case_regression_test.dart test/task_lifecycle_test.dart
cd ../../apps/focus_flow_flutter
flutter test test/models/past_task_push_presentation_test.dart test/widget_test.dart test/persistent_composition_test.dart
flutter test test/persistent_composition_test.dart
```
--- ---
## Non-goals ## Non-goals

View file

@ -6,7 +6,7 @@
Ordered implementation queue: Ordered implementation queue:
1. `Task Pushing 01 - Past Task Push Controls/` — Next incomplete plan. No active implementation plans remain in this folder.
Execute only the first incomplete plan. Execute only the first incomplete plan.