**Status**: 🚀 **ACTIVE** - Surgical PR implementation for Capacitor platforms
## Purpose
We **will deliver** 1..M daily local notifications with content fetched beforehand so they **will display offline**. We **will support** online-first (API→DB→Schedule) with offline-first fallback. New v1 ships in-app; New v2 extracts to a native Capacitor plugin with the same API.
## What we'll ship (v1 in-app)
- Multi-daily **one-shot local notifications** (rolling window)
- **Online-first** (ETag, 10–15s timeout) with **offline-first** fallback
- **SQLite** persistence + **14-day** retention
- **Templating**: `{title, body}` with `{{var}}`
- **Event queue**: delivery/error/heartbeat (drained on foreground)
- Same TS API that we can swap to native (v2) later
- **Multi-daily one-shot local notifications** (rolling window; today + tomorrow within iOS pending limits ~64)
- **Online-first** content fetch (**ETag**, 10–15s timeout) with **offline-first** fallback and **TTL** handling ("(cached)" or skip)
- **SQLite persistence** (contents, deliveries, config) with **14-day retention**
- **Templating**: `{title, body}` with `{{var}}` substitution **before** scheduling
- **Event queue** in SQLite: `delivery`, `error`, `heartbeat`; **drain on foreground**
- **Resilience hooks**: re-arm on **app resume**, and when **timezone/offset** changes