feat: web push notifications (VAPID)
- push_utils.py: subscription storage + send helper (auto-prunes 410 endpoints) - routers/push.py: GET /api/push/vapid-key (public), POST/DELETE /api/push/subscribe - sw.js: push event listener shows notification; notificationclick focuses/opens tab - app.js: subscribe/unsubscribe flow + "Enable notifications" toggle in settings dropdown - tools/notify.py: web_push orchestrator tool (user-level, no admin required) - VAPID keys in .env; pywebpush added to requirements.txt Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -89,9 +89,9 @@ See `ARCH__Intelligence_Layer.md` for full design.
|
||||
- [x] Tool: `ae_journal_entry_disable` — soft-delete via enable=false — 2026-04-28
|
||||
- [x] Tool: `ae_journal_entry_append` — read→append timestamped section→write (running logs) — 2026-04-28
|
||||
- [x] Tool: `ae_journal_entry_prepend` — read→prepend timestamped section→write (newest-first logs) — 2026-04-28
|
||||
- [ ] Import script: walk a markdown directory, chunk by H2 section, create entries
|
||||
- [ ] Target: markdown files from `~/DgrZone_Nextcloud/` and `~/OSIT_Nextcloud/`
|
||||
- [ ] Tag strategy: source path, date, topic tags from frontmatter or filename
|
||||
- [x] Import script: walk a markdown directory, chunk by H2 section, create entries — 2026-05-05
|
||||
- [x] Target: markdown files from `~/DgrZone_Nextcloud/` and `~/OSIT_Nextcloud/` — 2026-05-05
|
||||
- [x] Tag strategy: source path, topic tags from path components — 2026-05-05
|
||||
|
||||
---
|
||||
|
||||
@@ -116,8 +116,8 @@ Read before finalising either design.
|
||||
### [Backend] API usage / cost tracking
|
||||
Multi-user setup with real Gemini/Claude API costs. Track per-user token consumption
|
||||
so Scott can see who's spending what.
|
||||
- [ ] Count input + output tokens per `/chat` and `/orchestrate` call (all backends return usage)
|
||||
- [ ] Append to `home/{user}/usage.json` — daily buckets, per-model breakdown
|
||||
- [x] Count input + output tokens — local backend (OpenAI `usage` field) + Gemini API (`usage_metadata`) — 2026-05-05
|
||||
- [x] Append to `home/{user}/usage.json` — daily buckets, per-model breakdown — 2026-05-05
|
||||
- [ ] Expose via `/api/usage` endpoint; add a summary row to the Settings page
|
||||
- [ ] Optional: soft spending limit with a warning toast when exceeded
|
||||
|
||||
|
||||
Reference in New Issue
Block a user