97 lines
3.9 KiB
Markdown
97 lines
3.9 KiB
Markdown
---
|
|
phase: 04-notifications
|
|
plan: 03
|
|
type: execute
|
|
wave: 3
|
|
depends_on:
|
|
- 04-02
|
|
files_modified: []
|
|
autonomous: true
|
|
requirements:
|
|
- NOTF-01
|
|
- NOTF-02
|
|
|
|
must_haves:
|
|
truths:
|
|
- "dart analyze --fatal-infos passes with zero issues"
|
|
- "All tests pass (72 existing + new notification tests)"
|
|
- "NOTF-01 artifacts exist: NotificationService, DAO queries, AndroidManifest permissions, timezone init"
|
|
- "NOTF-02 artifacts exist: NotificationSettingsNotifier, Settings UI section, toggle, time picker"
|
|
- "Phase 4 requirements are fully addressed"
|
|
artifacts: []
|
|
key_links: []
|
|
---
|
|
|
|
<objective>
|
|
Verify all Phase 4 notification work is complete, tests pass, and code is clean before marking the phase done.
|
|
|
|
Purpose: Quality gate ensuring NOTF-01 and NOTF-02 are fully implemented before phase completion.
|
|
Output: Verification confirmation with test counts and analysis results.
|
|
</objective>
|
|
|
|
<execution_context>
|
|
@/home/jlmak/.claude/get-shit-done/workflows/execute-plan.md
|
|
@/home/jlmak/.claude/get-shit-done/templates/summary.md
|
|
</execution_context>
|
|
|
|
<context>
|
|
@.planning/PROJECT.md
|
|
@.planning/ROADMAP.md
|
|
@.planning/STATE.md
|
|
@.planning/phases/04-notifications/04-CONTEXT.md
|
|
@.planning/phases/04-notifications/04-01-SUMMARY.md
|
|
@.planning/phases/04-notifications/04-02-SUMMARY.md
|
|
</context>
|
|
|
|
<tasks>
|
|
|
|
<task type="auto">
|
|
<name>Task 1: Run full verification suite</name>
|
|
<files></files>
|
|
<action>
|
|
1. Run `dart analyze --fatal-infos` — must produce zero issues.
|
|
2. Run `flutter test` — must produce zero failures. Record total test count.
|
|
3. Verify NOTF-01 requirements by checking file existence and content:
|
|
- `lib/core/notifications/notification_service.dart` exists with `scheduleDailyNotification`, `requestPermission`, `cancelAll`
|
|
- `lib/features/home/data/daily_plan_dao.dart` has `getOverdueAndTodayTaskCount` and `getOverdueTaskCount`
|
|
- `android/app/src/main/AndroidManifest.xml` has `POST_NOTIFICATIONS`, `RECEIVE_BOOT_COMPLETED`, `ScheduledNotificationBootReceiver` with `exported="true"`
|
|
- `android/app/build.gradle.kts` has `isCoreLibraryDesugaringEnabled = true` and `compileSdk = 35`
|
|
- `lib/main.dart` has timezone initialization and `NotificationService().initialize()`
|
|
4. Verify NOTF-02 requirements by checking:
|
|
- `lib/core/notifications/notification_settings_notifier.dart` exists with `setEnabled`, `setTime`
|
|
- `lib/features/settings/presentation/settings_screen.dart` has `SwitchListTile` and `AnimatedSize` for notification section
|
|
- `lib/l10n/app_de.arb` has notification-related keys (`settingsSectionNotifications`, `notificationsEnabledLabel`, etc.)
|
|
5. Verify notification tap navigation:
|
|
- `lib/core/notifications/notification_service.dart` `_onTap` references `router.go('/')`
|
|
6. If any issues found, fix them. If all checks pass, record results.
|
|
</action>
|
|
<verify>
|
|
<automated>cd /home/jlmak/Projects/jlmak/HouseHoldKeaper && dart analyze --fatal-infos && flutter test</automated>
|
|
</verify>
|
|
<done>
|
|
- dart analyze: zero issues
|
|
- flutter test: all tests pass (72 existing + new notification/settings tests)
|
|
- NOTF-01: NotificationService, DAO queries, Android config, timezone init all confirmed present and functional
|
|
- NOTF-02: NotificationSettingsNotifier, Settings UI section, toggle, time picker all confirmed present and functional
|
|
- Phase 4 verification gate passed
|
|
</done>
|
|
</task>
|
|
|
|
</tasks>
|
|
|
|
<verification>
|
|
- `dart analyze --fatal-infos` — zero issues
|
|
- `flutter test` — all tests pass
|
|
- All NOTF-01 and NOTF-02 artifacts exist and are correctly wired
|
|
</verification>
|
|
|
|
<success_criteria>
|
|
- Phase 4 code is clean (no analysis warnings)
|
|
- All tests pass
|
|
- Both requirements (NOTF-01, NOTF-02) have their artifacts present and correctly implemented
|
|
</success_criteria>
|
|
|
|
<output>
|
|
After completion, create `.planning/phases/04-notifications/04-03-SUMMARY.md`
|
|
</output>
|