Notifications

Operator notifications (SM136) tell a human about events awaiting a response. Every notice rides one shared write path: it is appended to the manager bell store (lazysite/logs/notices.jsonl) and - when the XMPP notifications plugin is enabled and configured - also delivered over XMPP, so an operator hears about it without being logged in.

What notifies

  • A new form submission
  • A password-reset request when no SMTP is configured, so no email could be sent - previously a silent dead-end; the notice names the account and links the Users page
  • An agent feedback submission over MCP

The manager bell

The manager-header bell is gated by the notifications capability (seeded on the user-managers group): the notices actions refuse without it and the bell hides itself. It renders greyscale when nothing is unread, and coloured with an unread badge otherwise.

XMPP delivery (the notify-xmpp plugin)

One client account per site, like SMTP delivery. Enable the plugin on Plugin Manager, then configure it on Plugin Config; the settings live in the operator-only lazysite/notify-xmpp.conf.

Key Meaning
jid The account lazysite sends from, as user@domain
password The client password (stored operator-only, never shown again)
to The recipient: a person's JID, or a room's full JID (room@conference.domain)
muc The recipient is a group-chat (MUC) room (default false)
host Server host (defaults to the JID's domain)
port Server port (default 5222)
tls TLS on the connection (default true)
nick Sender nickname/resource; defaults to the site name, sanitised

For a group-chat recipient, the client joins the room and sends as groupchat; otherwise it sends a direct chat message. The transport is Net::XMPP (Debian libnet-xmpp-perl), based on the xmpp-lite connector.

Notes

  • Delivery is strictly best-effort and time-boxed (a 15-second alarm), so an unreachable chat server can never block or fail the triggering action; a failed send is logged as a warning and the bell store remains the record
  • The plugin counts as configured once jid, password and to are all set
  • notify-xmpp.conf is excluded from Content history, so the credentials never enter the versioned set
  • Per-user recipient addressing is a future feature - delivery goes to the one configured recipient