## Goal Ima comes to the user — not the other way around. Push notifications for morning plans, nudges, and re-engagement. ## Checklist - [ ] Functional test: Alex gets nudge at 10:30am, taps it, goes to right screen - [ ] DeviceRegistration model (platform: web/ios/android, push token) - [ ] WebPushProvider (VAPID) - [ ] Notification provider abstraction (base class for FCM/APNs later) - [ ] NudgeEngine service - [ ] Celery beat tasks: morning nudge, mid-day check-in, re-engagement - [ ] DAILY_NUDGE notification content generation - [ ] Frontend: push permission request flow - [ ] Frontend: usePushNotifications hook - [ ] Service worker (sw.js) for web push handling ## Branch `feat/notifications`
Goal
Ima comes to the user — not the other way around. Push notifications for morning plans, nudges, and re-engagement.
Checklist
Branch
feat/notifications