feat: implement notification manager with batching and quiet hours
Create mothership/internal/notifications/manager.go with NotificationManager
implementing:
- Event type definitions (zone_enter, zone_leave, zone_vacant,
fall_detected, fall_escalation, anomaly_alert, node_offline, sleep_summary)
- Priority levels (LOW, MEDIUM, HIGH, URGENT)
- Smart batching (30-second window for LOW/MEDIUM events, never batch URGENT,
max 5 events then summarize)
- Quiet hours filtering (queue LOW/MEDIUM during quiet hours,
deliver HIGH/URGENT immediately, morning digest at quiet_hours_end)
- SQLite persistence for notifications_config (channel, quiet_from,
quiet_to, quiet_days_bitmask)
- Unit tests for batching and quiet hours logic
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>