- Add SQLite Ownership & Concurrency section with WAL mode details - Add DB Path & Adapter Configuration with shared DB setup - Clarify T–lead governs prefetch attempts, not arming - Add TTL-at-fire check callout for stale notification prevention - Add DB Sharing acceptance criteria (visibility, WAL overlap, version safety) - Update GLOSSARY.md with shared DB, WAL, and user_version definitions - Remove plugin-owned DB references in favor of single shared database Files modified: - doc/notification-system.md - doc/GLOSSARY.md Compliance: Implements shared SQLite architecture with clear T–lead prefetch semantics and WAL-based concurrency for app/plugin coordination.
22 lines
1.5 KiB
Markdown
22 lines
1.5 KiB
Markdown
# Glossary
|
||
|
||
**T (slot time)** — The local wall-clock time a notification should fire (e.g., 08:00).
|
||
|
||
**T–lead** — The moment **`prefetchLeadMinutes`** before **T** when the system *attempts* a **single** background prefetch. T–lead **controls prefetch attempts, not arming**; locals are pre-armed earlier to guarantee closed-app delivery.
|
||
|
||
**Rolling window** — Always keep **today's remaining** (and tomorrow if iOS pending caps allow) locals **armed** so the OS can deliver while the app is closed.
|
||
|
||
**TTL (time-to-live)** — Maximum allowed payload age **at fire time**. If `T − fetchedAt > ttlSeconds`, we **skip** arming for that T.
|
||
|
||
**Shared DB (default)** — The app and plugin open the **same SQLite file**; the app owns schema/migrations, the plugin performs short writes with WAL.
|
||
|
||
**WAL (Write-Ahead Logging)** — SQLite journaling mode that permits concurrent reads during writes; recommended for foreground-read + background-write.
|
||
|
||
**`PRAGMA user_version`** — An integer the app increments on each migration; the plugin **checks** (does not migrate) to ensure compatibility.
|
||
|
||
**Exact alarm (Android)** — Minute-precise alarm via `AlarmManager.setExactAndAllowWhileIdle`, subject to policy and permission.
|
||
|
||
**Windowed alarm (Android)** — Batched/inexact alarm via `setWindow(start,len)`; we target **±10 minutes** when exact alarms are unavailable.
|
||
|
||
**Start-on-Login** — Electron feature that automatically launches the application when the user logs into their system, enabling background notification scheduling and delivery after system reboot.
|