Commit graph

142 commits

Author SHA1 Message Date
92e5358c02 chore: remove dead BacklogPane widget superseded by BacklogBoardScreen
Closes: Circuit-Forge/focus-flow#9
2026-07-10 22:48:15 -07:00
383130ebdb chore: merge upstream Backlog Board feature from Ashley's instance
Merges 20 commits from Ashley's smolblocks.com instance (main branch),
bringing in the full Backlog Board screen (BacklogBoardController, board
columns/cards, task detail drawer, summary panel, search/filter/sort/group,
Break Up and Someday actions) plus the unified FocusFlowSection navigation
model.

Reconciled with our own in-flight work:
- Replaced our placeholder BacklogPane/createBacklogController wiring with
  Ashley's real BacklogBoardScreen/BacklogBoardController (same problem,
  more complete implementation - avoids two competing Backlog UIs).
- Adopted the FocusFlowSection-based Sidebar API in place of our bespoke
  SidebarScreen enum; the Settings nav item now intercepts
  FocusFlowSection.settings in _selectSection to open our Settings dialog
  instead of falling through to a placeholder screen.
- Gave every sidebar nav item a stable key (not just the active one) so the
  Settings dialog tests can still target it reliably.
- Kept our additive owner-settings read controller, Settings dialog, and
  timeline Break-up wiring; renamed the Today controller field to
  todayController throughout to match upstream's now-multi-controller
  naming.
- Fixed a test-only regression: backlog_board_screen_test.dart's standalone
  SchedulerCommandController construction needed the new `management` param.
- Added .gitleaks.toml allowlisting the local, gitignored
  .claude/settings.local.json path (recorded bash command patterns, not
  repo secrets) that was blocking commits.

Verified via focusflow-flutter-ci:3.44.4 (Flutter 3.44.4/Dart 3.12.2):
flutter analyze clean, dart format clean, 106/106 Flutter tests passing,
348/348 scheduler_core + scheduler_persistence_sqlite tests passing.

Closes: Circuit-Forge/focus-flow#9
2026-07-10 22:46:09 -07:00
9b99c7810e feat(backlog): schedule suggested slots 2026-07-07 15:53:17 -07:00
ce997dcf2e chore(flutter): refresh dependency lock 2026-07-07 15:09:45 -07:00
bfba203d1e test(backlog): complete board validation handoff 2026-07-07 15:00:26 -07:00
3b950358c2 feat(backlog): wire drawer action commands 2026-07-07 14:44:34 -07:00
6f0da3c8aa feat(ui): wire Settings dialog to persisted OwnerSettings
Adds a getOwnerSettings read query to scheduler_core (previously only
an internal helper existed) and an updateOwnerSettings command on the
Flutter command controller, then builds a shared Settings dialog
surfacing timezone, day window, compact mode, and backlog staleness
thresholds. Both existing no-op entry points (sidebar nav item, top
bar button) now open the same dialog and persist edits through the
existing OwnerSettings/BacklogStalenessSettings backend.

Per the design spec (circuitforge-plans/focus-flow/superpowers/specs/
2026-07-07-settings-screen-design.md), the compact-mode toggle
persists but is disclosed in-UI as not yet affecting Today rendering,
since that wiring is separate scope (#11).

Closes: #16
2026-07-07 14:38:16 -07:00
1c945fad3f feat(backlog): wire create and schedule actions 2026-07-07 14:06:15 -07:00
8a1d2bfc9d feat(backlog): add task detail drawer 2026-07-07 13:52:36 -07:00
c730c33569 feat(ui): wire timeline card Break up quick action
Extracts the break-up dialog into a shared widgets/dialogs library so
the task modal and timeline card quick actions reuse the same flow
instead of duplicating it, then wires a Break up icon through
TimelineView/TaskTimelineCard to the existing breakUpTask command path.

Closes: #14
2026-07-07 13:45:04 -07:00
51ab9aa014 feat(backlog): add summary panel 2026-07-07 13:40:42 -07:00
dd25bdfaae feat(backlog): add board controls 2026-07-07 13:33:55 -07:00
2bcbba46b6 feat(backlog): render board task cards 2026-07-07 13:18:42 -07:00
73ef8c2543 feat(backlog): add board navigation shell 2026-07-07 13:04:40 -07:00
82f1fd43b7 test(backlog): seed demo board data 2026-07-07 12:53:16 -07:00
60039be127 feat(backlog): add board query use cases 2026-07-07 12:46:45 -07:00
d26645affb docs: add backlog board plan assets 2026-07-07 12:27:26 -07:00
f41a7ff034 docs(backlog): record notes metadata breakpoint 2026-07-07 12:23:34 -07:00
39326ef3dd feat(backlog): add board read models 2026-07-07 12:22:52 -07:00
b71d74290f feat(backlog): add board bucket policy 2026-07-07 12:21:11 -07:00
f8bd0e1dd6 docs(backlog): audit board read model scope 2026-07-07 12:20:05 -07:00
edfde0a2d0 docs(ui): record backlog board baseline 2026-07-07 12:15:48 -07:00
932a7409fc docs: refresh stale completed ADRs 2026-07-06 20:06:45 -07:00
88a66eff27 major: add high level api and developer guide documentation 2026-07-06 11:58:04 -07:00
c357b7d97d 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
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
2026-07-06 01:46:59 -07:00
a488d1a5f5 merge: task pushing controls
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
2026-07-04 22:17:30 -07:00
f18c5b58c9 docs: add deleted task statistics follow-up 2026-07-04 22:17:05 -07:00
b156ddfd5e feat(ui): refine task modal actions and timeline navigation 2026-07-04 22:16:37 -07:00
fd4fdd13d2 feat(scheduler): support timezone-aware commands and task removal 2026-07-04 22:16:02 -07:00
a24b64179a feat: add logging to entire project 2026-07-03 10:21:02 -07:00
1d0e2b01d7 docs: add logging handoff rules 2026-07-02 19:16:34 -07:00
4183cb95ee Merge branch 'app-config-file-logging' into task-pushing-01-past-task-controls 2026-07-02 19:08:01 -07:00
507bee6ad1 refactor: centralize scheduler logging 2026-07-02 19:05:17 -07:00
d5f5fc1b8f feat: add flexible task action logging 2026-07-02 18:46:58 -07:00
9a7f8933c7 feat: expand runtime logger levels 2026-07-02 18:38:41 -07:00
cf3370fecd Merge branch 'app-config-file-logging' into task-pushing-01-past-task-controls 2026-07-02 18:11:59 -07:00
d8f3368c3d feat: add optional runtime file logging config 2026-07-02 18:08:36 -07:00
fcafa27e58 docs: archive task pushing plan 2026-07-02 12:51:04 -07:00
93f4b12283 feat: enforce past task push semantics 2026-07-02 12:49:22 -07:00
4d373ce250 feat: add past task push menu 2026-07-02 12:39:05 -07:00
f3795e8be1 feat: add past task push presentation state 2026-07-02 12:33:24 -07:00
d4c85494c0 docs: record task pushing scope 2026-07-02 12:30:35 -07:00
e20863108e docs: archive date selection plan 2026-07-02 12:24:04 -07:00
9c996ae278 docs: complete date selection handoff 2026-07-02 08:35:03 -07:00
a82b58167e feat: show cross-date completion context 2026-07-02 08:31:13 -07:00
a47bdc67bb test: cover selected date persistence lifecycle 2026-07-02 08:27:11 -07:00
98fdd0792b feat: wire date navigation controls 2026-07-02 08:23:17 -07:00
16c460db0a feat: add selected date read controller 2026-07-02 08:19:16 -07:00
7a0bb72f43 docs: record date selection baseline 2026-07-02 08:11:29 -07:00
0c1731003f feat: add timeline task context menu 2026-07-01 20:22:06 -07:00