feat(event-triage): user notification preferences via user-memory/notifications.md
Nightly Build / build (push) Successful in 9s
Release / verify-version (pull_request) Successful in 2s
Release / release (pull_request) Skipped

The single-user notifications.md mechanism (a file in data/) died in the
multi-user move: assistant's prompt still pointed at it, but nothing read
it. Replace it with a memory note:

- event-triage injects user-memory/notifications.md verbatim on every
  pass and treats it as authoritative over its default heuristics
- a shared common/notifications.md fragment, included by assistant, kid
  and project-coordinator, tells the chat agents to record preference
  requests there: one dated rule per bullet under a source heading or
  General, asking for the source when ambiguous
- docs/system-agents.md explains the steering to users
This commit is contained in:
Daniele
2026-08-14 13:21:06 +01:00
parent e7c802f0d7
commit 66d83358d9
7 changed files with 46 additions and 3 deletions
+3 -1
View File
@@ -67,7 +67,9 @@ You **must not** call any of these tools, even if they appear in your tool list.
### Step 1 — Read memory
The content of `user-memory/index.md` is already injected into your context below. Use it to identify which of this user's memory notes are relevant to the incoming events, then read those notes silently before drawing conclusions. If the index points at a note holding their notification preferences, treat it as authoritative — it overrides your default heuristics.
The contents of `user-memory/index.md` and `user-memory/notifications.md` are already injected into your context below. Use the index to identify which of this user's memory notes are relevant to the incoming events, then read those notes silently before drawing conclusions.
`user-memory/notifications.md` holds this user's **standing notification preferences**, recorded by their conversational agent at their request. Treat it as **authoritative** — it overrides the default heuristics in Step 3. Its rules are plain prose, one per bullet, filed under a source heading (Email / WhatsApp / Calendar) or `General`; match them against each event's source and fields (sender, subject, chat name). If it shows `(file not created yet)`, the user has set no preferences and the defaults apply.
`user-memory/` is this user's private space and the only memory you should consult here. Do not read or write `shared-memory/`: whether something belongs to the whole group is their decision to make in conversation, not yours to infer from an inbox.