Matthew Raymer
3151a1cc31
feat(android): implement Phase 1 cold start recovery
Implements cold start recovery for missed notifications and future alarm
verification/rescheduling as specified in Phase 1 directive.
Changes:
- Add ReactivationManager.kt with cold start recovery logic
- Integrate recovery into DailyNotificationPlugin.load()
- Fix NotifyReceiver to always store NotificationContentEntity for recovery
- Add Phase 1 emulator testing guide and verification doc
- Add test-phase1.sh automated test harness
Recovery behavior:
- Detects missed notifications on app launch
- Marks missed notifications in database
- Verifies future alarms are scheduled in AlarmManager
- Reschedules missing future alarms
- Completes within 2-second timeout (non-blocking)
Test harness:
- Automated script with 4 test cases
- UI prompts for plugin configuration
- Log parsing for recovery results
- Verified on Pixel 8 API 34 emulator
Related:
- Implements: android-implementation-directive-phase1.md
- Requirements: docs/alarms/03-plugin-requirements.md §3.1.2
- Testing: docs/alarms/PHASE1-EMULATOR-TESTING.md
- Verification: docs/alarms/PHASE1-VERIFICATION.md
2025-11-27 10:01:34 +00:00
..
2025-11-27 10:01:34 +00:00
2025-10-23 10:29:13 +00:00
2025-10-08 06:19:14 +00:00
2025-11-25 10:09:46 +00:00
2025-10-24 11:13:48 +00:00
2025-10-27 10:14:00 +00:00
2025-11-27 10:01:34 +00:00
2025-11-25 10:09:46 +00:00
2025-11-25 10:09:46 +00:00
2025-11-25 10:09:46 +00:00
2025-10-14 06:17:03 +00:00
2025-10-14 06:17:03 +00:00
2025-10-08 08:58:32 +00:00
2025-10-24 09:42:10 +00:00
2025-10-14 08:02:16 +00:00
2025-10-31 13:02:30 +00:00
2025-11-06 06:28:00 +00:00
2025-11-06 06:28:00 +00:00
2025-10-08 06:26:38 +00:00
2025-11-21 07:30:25 +00:00
2025-11-21 07:30:25 +00:00
2025-10-08 09:02:03 +00:00
2025-10-29 12:46:41 +00:00
2025-10-08 06:32:17 +00:00
2025-10-29 12:46:41 +00:00
2025-11-21 07:30:25 +00:00
2025-10-30 07:04:40 +00:00
2025-10-29 13:04:49 +00:00
2025-10-29 13:04:49 +00:00
2025-10-08 06:19:14 +00:00
2025-10-29 12:46:41 +00:00
2025-10-08 06:19:14 +00:00
2025-10-30 10:03:47 +00:00
2025-11-06 10:08:18 +00:00
2025-10-08 06:19:14 +00:00
2025-11-25 10:09:46 +00:00
2025-11-21 07:30:25 +00:00
2025-11-21 07:30:25 +00:00
2025-10-28 09:35:33 +00:00
2025-10-27 12:40:04 +00:00
2025-10-14 06:17:03 +00:00
2025-10-14 06:17:03 +00:00
2025-10-13 03:10:26 +00:00
2025-10-14 08:02:16 +00:00
2025-10-14 06:31:07 +00:00
2025-10-24 13:01:50 +00:00