- Add isPrePopulated parameter to CalendarTaskRow (default false, backward compat)
- Wrap ListTile in Opacity(0.55) when isPrePopulated to indicate upcoming tasks
- Render 'Demnächst' section in CalendarDayList with muted section header
- Update _buildAnimatedTaskRow to accept and forward isPrePopulated flag
- Update _CompletingTaskRow to accept isPrePopulated (always false during animation)
- Update celebration check to include prePopulatedTasks.isEmpty condition
- Update _completingTaskIds cleanup to also check prePopulatedTasks
- Add watchAllActiveRecurringTasks() and watchAllActiveRecurringTasksInRoom() to CalendarDao
- Add watchCompletionsInRange() for period-completion filtering
- Extend CalendarDayState with prePopulatedTasks field (default empty, backward compat)
- Update isEmpty getter to include prePopulatedTasks.isEmpty
- Add _isInCurrentIntervalWindow() and _calculatePreviousDueDate() helpers
- Rewrite calendarDayProvider and roomCalendarDayProvider with pre-population logic
- Fix _subtractMonths() year-boundary bug using total-month arithmetic
- Add 9 new DAO tests for watchAllActiveRecurringTasks, watchAllActiveRecurringTasksInRoom, watchCompletionsInRange
- When completing on due date: use original due date as base (preserves rhythm)
- When completing on different day: use today as base (per D-02)
- Replace todayDateOnly with todayStart used for both base calculation and catch-up
- Update doc comment to reflect new behavior
- Test: completeTask on due date preserves rhythm (weekly task)
- Test: completeTask before due date recalculates from today
- Test: completeTask daily task on non-due day recalculates from today
- Test: completeTask monthly task early preserves anchor day
- Delete daily_plan_providers.dart (orphaned since Phase 5 calendar strip)
- Delete daily_plan_task_row.dart (orphaned since Phase 5 calendar strip)
- Delete progress_card.dart (orphaned since Phase 5 calendar strip)
- Remove DailyPlanState class from daily_plan_models.dart (only used by deleted files)
- Preserve TaskWithRoom class (still used by calendar system)
- Red FilledButton.icon with error color below history section (edit mode only)
- _onDelete shows AlertDialog with taskDeleteConfirmTitle/Message l10n strings
- Confirm calls smartDeleteTask and pops back to room task list
- Cancel dismisses dialog with no action
- Button disabled while _isLoading
- All 144 tests pass, dart analyze clean
- Add isActive BoolColumn (default true) to Tasks table
- Bump schema version from 2 to 3 with addColumn migration
- Filter watchTasksInRoom to isActive=true only
- Filter getOverdueTaskCount to isActive=true only
- Add softDeleteTask(taskId) - sets isActive=false without removing data
- Add getCompletionCount(taskId) - counts TaskCompletions for a task
- Tests for softDeleteTask sets isActive=false without removing from DB
- Tests for getCompletionCount with 0 and N completions
- Tests for watchTasksInRoom excludes inactive tasks
- Tests for getOverdueTaskCount excludes inactive tasks
- Test for hard deleteTask still removes task and completions
The stable Flutter SDK on the CI runner does not include
the `dart pub audit` subcommand. Trivy scan still covers
dependency security.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
subosito/flutter-action@v2 requires jq to parse action inputs.
The ci job in both workflows was missing the install step.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add 512x512 app icon to F-Droid metadata for en-US and de-DE locales.
Add CI pipeline with static analysis, tests, security audit, and debug build.
Add security gate in release workflow.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add ci.yaml triggered on branch pushes and PRs with flutter analyze,
flutter test, dart pub audit, Trivy scan, and debug APK build. Gate the
release workflow behind a CI job so release builds only proceed after
all checks pass.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Replaces Apache 2.0 with MIT License and updates copyright details
- Adds tagging instructions to `CLAUDE.md` for semantic versioning and CHANGELOG updates
- Updates release workflow to copy metadata to F-Droid repo
Replace default Flutter icon with white house on sage green (#7A9A6D) background.
Add native splash screen with themed colors (#F5F0E8 light, #2A2520 dark).
Include F-Droid metadata with screenshots for de-DE and en-US locales.
Add CHANGELOG.md tracking all releases from v1.0.0 to v1.1.3.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Archive v1.1 Calendar & Polish milestone artifacts (roadmap,
requirements, phase directories) to milestones/. Evolve PROJECT.md
with validated requirements and new key decisions. Update
RETROSPECTIVE.md with v1.1 section and cross-milestone trends.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>