diff --git a/Codex Documentation/Completed Plans/README.md b/Codex Documentation/Completed Plans/README.md index 961ae00..1682da3 100644 --- a/Codex Documentation/Completed Plans/README.md +++ b/Codex Documentation/Completed Plans/README.md @@ -16,6 +16,9 @@ Included documents cover: normal Flutter startup and close/reopen task lifecycle proof. - Date Selection 01, the completed day navigation and date picker plan for the 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 runtime plans, planned/blocked UI handoff plans, old archive indexes, and review diff --git a/Codex Documentation/Current Software Plan/Task Pushing 01 - Past Task Push Controls/README.md b/Codex Documentation/Completed Plans/Task Pushing 01 - Past Task Push Controls/README.md similarity index 96% rename from Codex Documentation/Current Software Plan/Task Pushing 01 - Past Task Push Controls/README.md rename to Codex Documentation/Completed Plans/Task Pushing 01 - Past Task Push Controls/README.md index 556d5b4..b931ad8 100644 --- a/Codex Documentation/Current Software Plan/Task Pushing 01 - Past Task Push Controls/README.md +++ b/Codex Documentation/Completed Plans/Task Pushing 01 - Past Task Push Controls/README.md @@ -4,7 +4,7 @@ # 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. This plan adds the push affordance for scheduled tasks that are in the past and diff --git a/Codex Documentation/Current Software Plan/Task Pushing 01 - Past Task Push Controls/TASK_PUSHING_01_BLOCK_01_SCOPE_AND_DOMAIN_SEMANTICS.md b/Codex Documentation/Completed Plans/Task Pushing 01 - Past Task Push Controls/TASK_PUSHING_01_BLOCK_01_SCOPE_AND_DOMAIN_SEMANTICS.md similarity index 100% rename from Codex Documentation/Current Software Plan/Task Pushing 01 - Past Task Push Controls/TASK_PUSHING_01_BLOCK_01_SCOPE_AND_DOMAIN_SEMANTICS.md rename to Codex Documentation/Completed Plans/Task Pushing 01 - Past Task Push Controls/TASK_PUSHING_01_BLOCK_01_SCOPE_AND_DOMAIN_SEMANTICS.md diff --git a/Codex Documentation/Current Software Plan/Task Pushing 01 - Past Task Push Controls/TASK_PUSHING_01_BLOCK_02_PAST_TASK_READ_MODEL.md b/Codex Documentation/Completed Plans/Task Pushing 01 - Past Task Push Controls/TASK_PUSHING_01_BLOCK_02_PAST_TASK_READ_MODEL.md similarity index 100% rename from Codex Documentation/Current Software Plan/Task Pushing 01 - Past Task Push Controls/TASK_PUSHING_01_BLOCK_02_PAST_TASK_READ_MODEL.md rename to Codex Documentation/Completed Plans/Task Pushing 01 - Past Task Push Controls/TASK_PUSHING_01_BLOCK_02_PAST_TASK_READ_MODEL.md diff --git a/Codex Documentation/Current Software Plan/Task Pushing 01 - Past Task Push Controls/TASK_PUSHING_01_BLOCK_03_PUSH_BUTTON_CARD_UI.md b/Codex Documentation/Completed Plans/Task Pushing 01 - Past Task Push Controls/TASK_PUSHING_01_BLOCK_03_PUSH_BUTTON_CARD_UI.md similarity index 100% rename from Codex Documentation/Current Software Plan/Task Pushing 01 - Past Task Push Controls/TASK_PUSHING_01_BLOCK_03_PUSH_BUTTON_CARD_UI.md rename to Codex Documentation/Completed Plans/Task Pushing 01 - Past Task Push Controls/TASK_PUSHING_01_BLOCK_03_PUSH_BUTTON_CARD_UI.md diff --git a/Codex Documentation/Current Software Plan/Task Pushing 01 - Past Task Push Controls/TASK_PUSHING_01_BLOCK_04_PUSH_MENU_DESTINATIONS.md b/Codex Documentation/Completed Plans/Task Pushing 01 - Past Task Push Controls/TASK_PUSHING_01_BLOCK_04_PUSH_MENU_DESTINATIONS.md similarity index 100% rename from Codex Documentation/Current Software Plan/Task Pushing 01 - Past Task Push Controls/TASK_PUSHING_01_BLOCK_04_PUSH_MENU_DESTINATIONS.md rename to Codex Documentation/Completed Plans/Task Pushing 01 - Past Task Push Controls/TASK_PUSHING_01_BLOCK_04_PUSH_MENU_DESTINATIONS.md diff --git a/Codex Documentation/Current Software Plan/Task Pushing 01 - Past Task Push Controls/TASK_PUSHING_01_BLOCK_05_COMMAND_WIRING_AND_PERSISTENCE.md b/Codex Documentation/Completed Plans/Task Pushing 01 - Past Task Push Controls/TASK_PUSHING_01_BLOCK_05_COMMAND_WIRING_AND_PERSISTENCE.md similarity index 99% rename from Codex Documentation/Current Software Plan/Task Pushing 01 - Past Task Push Controls/TASK_PUSHING_01_BLOCK_05_COMMAND_WIRING_AND_PERSISTENCE.md rename to Codex Documentation/Completed Plans/Task Pushing 01 - Past Task Push Controls/TASK_PUSHING_01_BLOCK_05_COMMAND_WIRING_AND_PERSISTENCE.md index ec73f5b..2a509f4 100644 --- a/Codex Documentation/Current Software Plan/Task Pushing 01 - Past Task Push Controls/TASK_PUSHING_01_BLOCK_05_COMMAND_WIRING_AND_PERSISTENCE.md +++ b/Codex Documentation/Completed Plans/Task Pushing 01 - Past Task Push Controls/TASK_PUSHING_01_BLOCK_05_COMMAND_WIRING_AND_PERSISTENCE.md @@ -4,7 +4,7 @@ # Task Pushing 01 Block 05 — Command Wiring and Persistence -**Status:** Planned. +**Status:** Complete. **Goal:** Connect push menu destinations to application commands and prove their results persist. diff --git a/Codex Documentation/Current Software Plan/Task Pushing 01 - Past Task Push Controls/TASK_PUSHING_01_BLOCK_06_DESTINATION_SCHEDULING_RULES.md b/Codex Documentation/Completed Plans/Task Pushing 01 - Past Task Push Controls/TASK_PUSHING_01_BLOCK_06_DESTINATION_SCHEDULING_RULES.md similarity index 99% rename from Codex Documentation/Current Software Plan/Task Pushing 01 - Past Task Push Controls/TASK_PUSHING_01_BLOCK_06_DESTINATION_SCHEDULING_RULES.md rename to Codex Documentation/Completed Plans/Task Pushing 01 - Past Task Push Controls/TASK_PUSHING_01_BLOCK_06_DESTINATION_SCHEDULING_RULES.md index df5b412..7951178 100644 --- a/Codex Documentation/Current Software Plan/Task Pushing 01 - Past Task Push Controls/TASK_PUSHING_01_BLOCK_06_DESTINATION_SCHEDULING_RULES.md +++ b/Codex Documentation/Completed Plans/Task Pushing 01 - Past Task Push Controls/TASK_PUSHING_01_BLOCK_06_DESTINATION_SCHEDULING_RULES.md @@ -4,7 +4,7 @@ # Task Pushing 01 Block 06 — Destination Scheduling Rules -**Status:** Planned. +**Status:** Complete. **Goal:** Verify or adjust backend push scheduling so destination behavior exactly matches the requested product rules. diff --git a/Codex Documentation/Current Software Plan/Task Pushing 01 - Past Task Push Controls/TASK_PUSHING_01_BLOCK_07_BACKLOG_FRESHNESS_RESET.md b/Codex Documentation/Completed Plans/Task Pushing 01 - Past Task Push Controls/TASK_PUSHING_01_BLOCK_07_BACKLOG_FRESHNESS_RESET.md similarity index 99% rename from Codex Documentation/Current Software Plan/Task Pushing 01 - Past Task Push Controls/TASK_PUSHING_01_BLOCK_07_BACKLOG_FRESHNESS_RESET.md rename to Codex Documentation/Completed Plans/Task Pushing 01 - Past Task Push Controls/TASK_PUSHING_01_BLOCK_07_BACKLOG_FRESHNESS_RESET.md index 80cdfba..86c8285 100644 --- a/Codex Documentation/Current Software Plan/Task Pushing 01 - Past Task Push Controls/TASK_PUSHING_01_BLOCK_07_BACKLOG_FRESHNESS_RESET.md +++ b/Codex Documentation/Completed Plans/Task Pushing 01 - Past Task Push Controls/TASK_PUSHING_01_BLOCK_07_BACKLOG_FRESHNESS_RESET.md @@ -4,7 +4,7 @@ # Task Pushing 01 Block 07 — Backlog Freshness Reset -**Status:** Planned. +**Status:** Complete. **Goal:** Make Push to backlog reset the backlog freshness timer without losing original task creation history. diff --git a/Codex Documentation/Current Software Plan/Task Pushing 01 - Past Task Push Controls/TASK_PUSHING_01_BLOCK_08_VALIDATION_HANDOFF.md b/Codex Documentation/Completed Plans/Task Pushing 01 - Past Task Push Controls/TASK_PUSHING_01_BLOCK_08_VALIDATION_HANDOFF.md similarity index 70% rename from Codex Documentation/Current Software Plan/Task Pushing 01 - Past Task Push Controls/TASK_PUSHING_01_BLOCK_08_VALIDATION_HANDOFF.md rename to Codex Documentation/Completed Plans/Task Pushing 01 - Past Task Push Controls/TASK_PUSHING_01_BLOCK_08_VALIDATION_HANDOFF.md index 54a23ab..98cc9cb 100644 --- a/Codex Documentation/Current Software Plan/Task Pushing 01 - Past Task Push Controls/TASK_PUSHING_01_BLOCK_08_VALIDATION_HANDOFF.md +++ b/Codex Documentation/Completed Plans/Task Pushing 01 - Past Task Push Controls/TASK_PUSHING_01_BLOCK_08_VALIDATION_HANDOFF.md @@ -4,7 +4,7 @@ # 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. --- @@ -113,3 +113,35 @@ flutter test - Push results persist through SQLite. - Push to Backlog resets freshness without rewriting creation history. - 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. diff --git a/Codex Documentation/Current Software Plan/Task Pushing 01 - Past Task Push Controls/TASK_PUSHING_01_EXECUTION_ORDER.md b/Codex Documentation/Completed Plans/Task Pushing 01 - Past Task Push Controls/TASK_PUSHING_01_EXECUTION_ORDER.md similarity index 98% rename from Codex Documentation/Current Software Plan/Task Pushing 01 - Past Task Push Controls/TASK_PUSHING_01_EXECUTION_ORDER.md rename to Codex Documentation/Completed Plans/Task Pushing 01 - Past Task Push Controls/TASK_PUSHING_01_EXECUTION_ORDER.md index 8bb33d8..e75af0e 100644 --- a/Codex Documentation/Current Software Plan/Task Pushing 01 - Past Task Push Controls/TASK_PUSHING_01_EXECUTION_ORDER.md +++ b/Codex Documentation/Completed Plans/Task Pushing 01 - Past Task Push Controls/TASK_PUSHING_01_EXECUTION_ORDER.md @@ -4,7 +4,7 @@ # Task Pushing 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. diff --git a/Codex Documentation/Current Software Plan/Task Pushing 01 - Past Task Push Controls/TASK_PUSHING_01_SUMMARY.md b/Codex Documentation/Completed Plans/Task Pushing 01 - Past Task Push Controls/TASK_PUSHING_01_SUMMARY.md similarity index 82% rename from Codex Documentation/Current Software Plan/Task Pushing 01 - Past Task Push Controls/TASK_PUSHING_01_SUMMARY.md rename to Codex Documentation/Completed Plans/Task Pushing 01 - Past Task Push Controls/TASK_PUSHING_01_SUMMARY.md index 7c743d0..419fe2b 100644 --- a/Codex Documentation/Current Software Plan/Task Pushing 01 - Past Task Push Controls/TASK_PUSHING_01_SUMMARY.md +++ b/Codex Documentation/Completed Plans/Task Pushing 01 - Past Task Push Controls/TASK_PUSHING_01_SUMMARY.md @@ -4,7 +4,7 @@ # Task Pushing 01 Summary — Past Task Push Controls -**Status:** Planned. +**Status:** Complete. **Scope level:** XHIGH implementation plan. **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 @@ -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. 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 diff --git a/Codex Documentation/Current Software Plan/README.md b/Codex Documentation/Current Software Plan/README.md index 21bdf89..a60844f 100644 --- a/Codex Documentation/Current Software Plan/README.md +++ b/Codex Documentation/Current Software Plan/README.md @@ -6,7 +6,7 @@ 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.