1.9 KiB
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.