mirror of
https://github.com/MBombeck/HealthLog.git
synced 2026-11-08 12:32:43 +00:00
Add a once-daily briefing notification that reads the cached daily digest and never makes a fresh model call. It rides the existing dispatch cascade (APNs, Telegram, ntfy, webhook, email, web push), so it inherits the hard-reject classification and the push-attempts ledger unchanged. - New DAILY_BRIEFING event type, default off: the briefing stays silent until the user opts a channel in from the notifications matrix, so the channel choice is explicit and a fresh account never gets an unasked-for push. - One decision seam both triggers share: the sleep-arrival morning refresh fires it the moment the day finalises, and a fixed local-morning fallback slot covers the case where last night's sleep never synced. Whichever wins the morning writes the ledger row; the once-per-local-day cap suppresses the other. - The body is the digest line — the cached briefing lead when present, else the deterministic floor — so a keyless self-hoster still gets a first-class push. Provisional days carry an honest "sleep not in yet" note. - Non-clinical and non-urgent by construction, fired only inside a local morning window: it is a nudge, never the anomaly channel, and never bypasses Focus. Empty accounts are left alone rather than nudged with a hollow all-clear. - Localised across all six locales.