From ff154b1ec0348fe1ab2a414ba9a3d86ae5d6b6ce Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Fri, 8 May 2026 23:58:47 -0400 Subject: [PATCH] docs: update CLAUDE.md, HELP.md, and TODO for notifications page + push fix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - CLAUDE.md: date → 2026-05-08, add Proactive notifications row to channel table - HELP.md: update Notifications settings entry, expand Push Notifications section with channel config link, add test API endpoints to reference table - TODO__Agents.md: mark notifications dedicated page and pywebpush fix as done Co-Authored-By: Claude Sonnet 4.6 --- CLAUDE.md | 3 ++- cortex/static/HELP.md | 8 ++++++-- documentation/TODO__Agents.md | 3 +++ 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index c374b11..b26157d 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -237,7 +237,7 @@ clearly asked for a directory to be unblocked. --- -## Current State (2026-05-06) +## Current State (2026-05-08) Cortex is running and stable. All channels are live: @@ -252,6 +252,7 @@ Cortex is running and stable. All channels are live: | Tool audit log | ✅ Live | Every tool call logged to `home/{user}/tool_audit/YYYY-MM-DD.jsonl` | | Token usage tracking | ✅ Live | Per-user `home/{user}/usage.json`; summary in Settings | | Web push | ✅ Live | VAPID push notifications; `web_push` tool; subscribe via ☰ menu | +| Proactive notifications | ✅ Live | Daily reminder check (09:00); distill/cron completions; `GET /settings/notifications` dedicated page | Active users: scott (inara), holly (tina), brian (wintermute) diff --git a/cortex/static/HELP.md b/cortex/static/HELP.md index a7dc99e..95f8c28 100644 --- a/cortex/static/HELP.md +++ b/cortex/static/HELP.md @@ -6,7 +6,7 @@ and are appended automatically by help.html when present. --> -*Last updated: 2026-05-08* +*Last updated: 2026-05-09* --- @@ -176,7 +176,7 @@ Each response shows a **model tag** (bottom-right of message) with the model lab | **Account** | View your username, role badge (Admin / User), rename your username | | **Connected Accounts** | See which Google account is linked for OAuth sign-in | | **Email Allowlist** | Regex patterns controlling which addresses the `email_send` tool can reach | -| **Notifications** | Set which channel (NC Talk, Google Chat, email) Inara uses for proactive messages | +| **Notifications** | Dedicated page — set channel (Browser Push, NC Talk, Google Chat, email) for proactive messages; test buttons for instant verification | | **Tool Permissions** | Allow or block specific orchestrator tools for your account | | **Usage** | Token consumption by model — see below | | **Browser Cache** | Clear UI preferences stored locally (theme, font size, session ID, etc.) | @@ -337,6 +337,8 @@ Cortex can send browser push notifications — even when the tab is closed. - Click again to disable. Subscriptions are stored per-device. - The orchestrator's `web_push` tool lets Inara send you a push proactively (e.g. when a long task completes). +**Notification channel settings:** ☰ → **Account** → **Notification settings →** — choose Browser Push, Email, Nextcloud Talk, or Google Chat as the channel Inara uses for scheduled reminders, cron job completions, and memory digests. Use the **Send Test Notification** button to verify your setup, or **Check Reminders Now** to trigger the reminder check immediately. + --- ## Context & Memory ( ⚙ panel ) @@ -424,6 +426,8 @@ For direct access or scripting: | `GET` | `/api/push/vapid-key` | VAPID public key (for push subscription) | | `POST` | `/api/push/subscribe` | Register a push subscription | | `DELETE` | `/api/push/subscribe` | Remove a push subscription | +| `POST` | `/api/push/test` | Send a test notification via configured channel | +| `POST` | `/api/push/reminders/check` | Run reminder check immediately; returns `{"reminders_found": n}` | | `GET` | `/api/audit/files` | List available audit log dates (own data) | | `GET` | `/api/audit/day?date=` | Tool call entries for a specific date (own data) | | `GET` | `/api/audit/recent` | Recent tool calls across days (admin) | diff --git a/documentation/TODO__Agents.md b/documentation/TODO__Agents.md index 5d6b62f..d8fd6d8 100644 --- a/documentation/TODO__Agents.md +++ b/documentation/TODO__Agents.md @@ -108,6 +108,9 @@ Inara reaches out on her own initiative via NC Talk, Google Chat, email, or brow - [x] `scheduler.py` — distill_mid and distill_long already call `notify()` on completion - [x] Settings UI — "Browser Push Notification" option added to Notification Channel selector - [x] `notification_channel` accepts `"web_push"` in `routers/settings.py` +- [x] `GET /settings/notifications` — dedicated Notifications page (channel form + test buttons); Settings page now shows a link card +- [x] `POST /api/push/test` + `POST /api/push/reminders/check` — on-demand test endpoints +- [x] `push_utils.py` — fixed `pywebpush` 2.x key deserialisation (use `Vapid.from_pem()` instead of passing PEM string) ### [UI] File attachments in chat Upload an image or document inline and have it flow into context. Natural workflow