- Merge Routes class into routes.dart, remove duplicate from app_router.dart
- Remove stale/orphaned .g.dart files (app_router.g.dart, pet_providers.g.dart,
task_providers.g.dart) — they were generated by a mismatched Riverpod version
- Remove local PetType enum from onboarding_providers.dart, import from domain
- Add domain PetType import to onboarding_screen.dart
- Fix FAB in tasks_screen.dart to call showAddTaskSheet() instead of context.push
- Fix petMood.name → petMood.emoji in PetBubble mood parameter
- Align TaskEntity and UserEntity with DB schema: String ids, add missing fields
(photoPath, snoozeUntil, syncedAt, localId on tasks; deviceId, createdAt,
updatedAt on users) to fix repository compile errors
- Fix TasksNotifier methods to accept String ids
- Fix Czech diacritics in: tasks_screen, energy_badge, task_card, app_shell,
pet_screen, profile_screen, zen_screen, pet_type, czech_date
- Regenerate all .g.dart files with build_runner
flutter analyze: No issues found
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- _EmptyState: accept PetType enum directly; use .emoji getter
(drops string conversion round-trip and duplicate emoji mapping)
- TaskCard: compute _isOverdue from task.deadline when task is provided
(previously isOverdue never fired when using the task: param)
- userNameProvider: derive from userProvider.name instead of hardcoded 'Zuf'
(name was split across two independent providers)
- _petMessage: add explicit 'neutral' branch, remove unreachable 'sleepy' branch
(PetMood enum has no .sleepy; neutral was silently falling to _)
- EnergyBar/EnergyBadge: assert both params not null simultaneously
(EnergyBar() / EnergyBadge() previously compiled silently with default low)
- todayTasksProvider: fix comment — no date filtering in MVP
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add @TableIndex on tasks.user_id and task_completions.user_id (FK scan perf)
- Wrap incrementStreak in transaction to prevent lost-update race
- Sentinel pattern in TaskEntity.copyWith and PetStateEntity.copyWith so
nullable fields (deadline, snoozeUntil, photoPath, energyToday, etc.)
can be explicitly cleared to null
- Remove unused TaskCompletionEntity import from task_repository.dart
- Harden completeTask: getSingleOrNull + ArgumentError instead of getSingle throw
- Add doc comment to getTodayTasks clarifying no date filter (pending = today)
- Regenerate app_database.g.dart (CREATE INDEX statements added)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>