feat: replace Web Push with ntfy for medication reminders

Single notification path via ntfy HTTP publish for reliable Android delivery;
remove VAPID, push subscriptions, and SW push handlers. PWA settings show
topic subscribe link; humor texts and deep-link actions unchanged.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Frank Schwenk
2026-07-06 10:42:58 +02:00
parent 24ac7f2f48
commit 1cada42370
17 changed files with 251 additions and 323 deletions
-19
View File
@@ -1,19 +0,0 @@
#!/usr/bin/env python3
"""Generate VAPID key pair for Web Push. Run: python tools/gen_vapid.py"""
from __future__ import annotations
from py_vapid import Vapid
def main() -> None:
vapid = Vapid()
vapid.generate_keys()
private = vapid.private_pem.decode().strip()
public = vapid.public_key.decode().strip() if hasattr(vapid.public_key, "decode") else str(vapid.public_key)
print("Add these to your .env:\n")
print(f"VAPID_PRIVATE_KEY={private}")
print(f"VAPID_PUBLIC_KEY={public}")
if __name__ == "__main__":
main()
-8
View File
@@ -10,14 +10,6 @@ CREATE TABLE IF NOT EXISTS intake_log (
CREATE INDEX IF NOT EXISTS idx_intake_day ON intake_log(day);
CREATE INDEX IF NOT EXISTS idx_intake_slot_day ON intake_log(slot_id, day);
CREATE TABLE IF NOT EXISTS push_subscription (
id INTEGER PRIMARY KEY AUTOINCREMENT,
endpoint TEXT UNIQUE NOT NULL,
p256dh TEXT NOT NULL,
auth TEXT NOT NULL,
created_at TEXT NOT NULL
);
CREATE TABLE IF NOT EXISTS ai_cache (
key TEXT PRIMARY KEY,
content TEXT NOT NULL,