feat: proactive notifications — web_push channel + daily reminder check
Routes web_push through notification.py alongside NCT/email/Google Chat, and fires daily reminder summaries via the scheduler. - notification.py: _notify_web_push() + "web_push" case in notify(); all four channels (web_push/email/nextcloud/google_chat) now routable - scheduler.py: _run_reminder_check() daily at 09:00 — reads due reminders per persona via set_context(), formats up to 3 entries, calls notify() - routers/settings.py: "web_push" added to valid notification_channel values - static/settings.html: "Browser Push Notification" option in channel selector - TODO__Agents.md: proactive notifications section marked complete Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -99,15 +99,15 @@ system prompt by `context_loader.py` at all tiers.
|
||||
- [ ] **`task_list` priority filter** — add `priority` param alongside existing `status`
|
||||
- [ ] **`http_fetch` max_chars** — optional param, default 8192, cap at 32768
|
||||
|
||||
### [Channel] Proactive notifications
|
||||
Inara reaches out on her own initiative via NC Talk or Google Chat when a reminder
|
||||
fires, a cron job completes, or something else warrants attention. The cron/reminder
|
||||
infrastructure already exists — this closes the loop so she can interrupt the user.
|
||||
- [ ] Add outbound message helper for NC Talk (`send_nextcloud_message(user, text)`)
|
||||
- [ ] Add outbound message helper for Google Chat (`send_google_chat_message(user, text)`)
|
||||
- [ ] Wire cron job completion and reminder triggers to call outbound helper
|
||||
- [ ] Store user preference: which channel to use for proactive notifications
|
||||
- [ ] `channels.json` already per-user — add `notify_channel: "nextcloud" | "google_chat" | null`
|
||||
### [Channel] Proactive notifications ✅ — 2026-05-08
|
||||
Inara reaches out on her own initiative via NC Talk, Google Chat, email, or browser push.
|
||||
- [x] `notification.py` — `notify(username, message, channel=None)` routes to NCT / email / Google Chat / web_push
|
||||
- [x] `web_push` added as a routable channel in `notification.py` (was tool-only before)
|
||||
- [x] `scheduler.py` — `_run_reminder_check()` daily at 09:00: reads due reminders per persona, fires `notify()` with a summary
|
||||
- [x] `cron_runner.py` — already calls `notify()` on job completion (was already wired)
|
||||
- [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`
|
||||
|
||||
### [UI] File attachments in chat
|
||||
Upload an image or document inline and have it flow into context. Natural workflow
|
||||
|
||||
Reference in New Issue
Block a user