focus-flow/apps/focus_flow_flutter
2026-06-29 20:20:24 -07:00
..
lib feat(ui): complete compact today plan 2026-06-29 20:20:24 -07:00
linux feat: add flutter ui foundation 2026-06-27 18:41:36 -07:00
macos feat: add flutter ui foundation 2026-06-27 18:41:36 -07:00
test feat(ui): complete compact today plan 2026-06-29 20:20:24 -07:00
windows feat: add flutter ui foundation 2026-06-27 18:41:36 -07:00
.gitignore feat: add flutter ui foundation 2026-06-27 18:41:36 -07:00
.metadata feat: add flutter ui foundation 2026-06-27 18:41:36 -07:00
analysis_options.yaml feat: add flutter ui foundation 2026-06-27 18:41:36 -07:00
pubspec.lock feat: add flutter ui foundation 2026-06-27 18:41:36 -07:00
pubspec.yaml feat: add flutter ui foundation 2026-06-27 18:41:36 -07:00
README.md feat(ui): complete compact today plan 2026-06-29 20:20:24 -07:00

FocusFlow Flutter

Flutter desktop app target for the FocusFlow UI work.

Current Scope

UI Plan 1 implements a compact Today timeline mockup and selected-task modal. The app target already existed before UI Plan 1 Block 1, so this package keeps the existing Flutter desktop scaffolding and local scheduler dependency.

The app launches into the compact Today screen. All visible controls are intentionally no-op except selecting a task card and closing the modal.

Seed Data

Static demo data lives in lib/app/demo_scheduler_composition.dart. It creates domain ProjectProfile, OwnerSettings, and Task records in an in-memory application store, then reads TodayState through GetTodayStateQuery.

Widgets consume TodayScreenData from lib/models/today_screen_models.dart. Scheduler core remains the source of truth for task state and Today ordering.

Package Boundary

Allowed app imports include public scheduler APIs such as:

import 'package:scheduler_core/scheduler_core.dart';

The app must not import scheduler src/ files, SQLite/Drift adapters, desktop notification implementations, backup/export packages, or direct OS APIs for this UI slice. test/forbidden_imports_test.dart enforces that boundary.

Intentionally No-op

  • Sidebar navigation.
  • Date navigation and calendar buttons.
  • Compact/Normal toggle.
  • Settings button.
  • Show upcoming.
  • Timeline card action icons.
  • Modal Done, Push, Move to Backlog, and Break up buttons.

Commands

flutter pub get
flutter analyze
flutter test

Run these from apps/focus_flow_flutter/.

Next Plans

  • Wire functional Done, Push, Move to Backlog, and Break up actions.
  • Add Backlog and quick-capture UI.
  • Add persistent SQLite-backed runtime composition.
  • Add real navigation/settings.
  • Add Shield/Recovery only in a later scope.