feat(ui): wire sidebar Backlog nav and modal Move-to-Backlog/Break-up actions #18

Closed
pyr0ball wants to merge 1 commit from feat/9-12-13-wire-backlog-nav-and-modal-actions into main
Collaborator

Summary

  • Wires the sidebar Backlog navigation, and the task modal's "Move to Backlog" and "Break up" quick actions, to backend commands that were already implemented and tested.
  • Adds createBacklogController() to SchedulerAppComposition (only the demo composition had one; the persistent/production composition had no way to read backlog state at all).
  • Adds a break-up dialog supporting per-row title/priority/reward/duration (MVP-AC-11), and SchedulerCommandController.breakUpTask().
  • Fixes a latent bug where the active sidebar nav item's test key was hardcoded to nav-today-active regardless of which item was active.
  • Updates the app README to drop stale "intentionally no-op" claims and reflect current wiring.

Context

Filed against the native V1-completeness gap analysis tracked in #6, #7 (epics). Closes #9, #12, #13.

Test plan

  • flutter analyze — clean
  • flutter test — all 77 tests pass (one existing modal test updated to reflect that Break up now opens a real, cancellable dialog instead of being a no-op)
  • dart format --set-exit-if-changed — clean
## Summary - Wires the sidebar Backlog navigation, and the task modal's "Move to Backlog" and "Break up" quick actions, to backend commands that were already implemented and tested. - Adds `createBacklogController()` to `SchedulerAppComposition` (only the demo composition had one; the persistent/production composition had no way to read backlog state at all). - Adds a break-up dialog supporting per-row title/priority/reward/duration (MVP-AC-11), and `SchedulerCommandController.breakUpTask()`. - Fixes a latent bug where the active sidebar nav item's test key was hardcoded to `nav-today-active` regardless of which item was active. - Updates the app README to drop stale "intentionally no-op" claims and reflect current wiring. ## Context Filed against the native V1-completeness gap analysis tracked in #6, #7 (epics). Closes #9, #12, #13. ## Test plan - [x] `flutter analyze` — clean - [x] `flutter test` — all 77 tests pass (one existing modal test updated to reflect that Break up now opens a real, cancellable dialog instead of being a no-op) - [x] `dart format --set-exit-if-changed` — clean
pyr0ball added 1 commit 2026-07-06 02:00:03 -07:00
feat(ui): wire sidebar Backlog nav and modal Move-to-Backlog/Break-up actions
Some checks failed
CI / test (macos-latest) (push) Has been cancelled
CI / test (ubuntu-latest) (push) Has been cancelled
CI / test (windows-latest) (push) Has been cancelled
CI / package (macos-latest, macos) (push) Has been cancelled
CI / package (ubuntu-latest, linux) (push) Has been cancelled
CI / package (windows-latest, windows) (push) Has been cancelled
CI / test (macos-latest) (pull_request) Has been cancelled
CI / test (ubuntu-latest) (pull_request) Has been cancelled
CI / test (windows-latest) (pull_request) Has been cancelled
CI / package (macos-latest, macos) (pull_request) Has been cancelled
CI / package (ubuntu-latest, linux) (pull_request) Has been cancelled
CI / package (windows-latest, windows) (pull_request) Has been cancelled
c357b7d97d
Backend was already V1-complete for these paths (moveFlexibleToBacklog,
breakUpTask); this closes the UI-wiring gap identified in the V1
feature-complete audit.

- Add createBacklogController() to SchedulerAppComposition and implement it
  in PersistentSchedulerComposition (only the demo composition had one).
- Sidebar now switches the main content area between Today and Backlog via
  a real SidebarScreen enum instead of hardcoded onTap: () {} stubs.
- Task modal's "Backlog" quick-action reuses the existing onPushToBacklog
  wiring (same backend command as the Push menu's "Push to backlog").
- Add a break-up dialog (row-level title/priority/reward/duration per
  MVP-AC-11) and SchedulerCommandController.breakUpTask(), wired to the
  modal's "Break up" button.
- Fix a latent bug where the active sidebar nav item's key was hardcoded
  to nav-today-active regardless of which item was active.

Closes: Circuit-Forge/focus-flow#9
Closes: Circuit-Forge/focus-flow#12
Closes: Circuit-Forge/focus-flow#13
pyr0ball added this to the FocusFlow V1 — Feature Complete milestone 2026-07-06 02:15:04 -07:00
eva approved these changes 2026-07-06 10:23:56 -07:00
pyr0ball closed this pull request 2026-07-11 18:31:34 -07:00
Some checks failed
CI / test (macos-latest) (push) Has been cancelled
CI / test (ubuntu-latest) (push) Has been cancelled
CI / test (windows-latest) (push) Has been cancelled
CI / package (macos-latest, macos) (push) Has been cancelled
CI / package (ubuntu-latest, linux) (push) Has been cancelled
CI / package (windows-latest, windows) (push) Has been cancelled
CI / test (macos-latest) (pull_request) Has been cancelled
CI / test (ubuntu-latest) (pull_request) Has been cancelled
CI / test (windows-latest) (pull_request) Has been cancelled
CI / package (macos-latest, macos) (pull_request) Has been cancelled
CI / package (ubuntu-latest, linux) (pull_request) Has been cancelled
CI / package (windows-latest, windows) (pull_request) Has been cancelled

Pull request closed

Sign in to join this conversation.
No reviewers
eva
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: eva/focus-flow#18
No description provided.