ca081ce84d
When the daemon starts after being offline, multiple due reminders would fire simultaneously as separate notifications. Now a single digest reminder is dispatched instead, summarizing all pending items. - New collapseReminders() helper in gather.go: if 2+ reminders are due, marks originals as fired and returns one synthetic reminder (ID=0) with a combined JSON payload. - Dispatcher skips MarkReminder for ID=0 (synthetic digest). - All loop and delivery tests pass.