Mainstream messaging
Правила push-сповіщень Matrix для тихих попередніх переглядів
Коли channels.matrix.streaming має значення "quiet", OpenClaw транслює відповідь, редагуючи одну подію попереднього перегляду на місці. Попередні перегляди надсилаються як події m.notice без сповіщень, а завершене редагування позначається за допомогою content["com.openclaw.finalized_preview"] = true. Клієнти Matrix сповіщають про це фінальне редагування, лише якщо користувацьке правило push-сповіщень відповідає маркеру. Ця сторінка призначена для операторів, які самостійно розміщують Matrix і хочуть установити це правило для кожного облікового запису одержувача.
streaming: "progress" завершує свої чернетки тим самим шляхом, тому це правило також спрацьовує для завершених редагувань у режимі перебігу.
Якщо вам потрібна лише стандартна поведінка сповіщень Matrix, використовуйте streaming: "partial" або вимкніть потокове передавання. Див. Налаштування каналу Matrix.
Передумови
- користувач-одержувач = особа, яка має отримувати сповіщення
- користувач-бот = обліковий запис OpenClaw у Matrix, який надсилає відповідь
- для наведених нижче викликів API використовуйте токен доступу користувача-одержувача
- зіставляйте
senderу правилі push-сповіщень із повним MXID користувача-бота - в обліковому записі одержувача вже мають працювати засоби push-доставки; правила тихого попереднього перегляду працюють, лише коли звичайна доставка push-сповіщень Matrix справна
Кроки
Налаштуйте тихі попередні перегляди
{channels: {matrix: { streaming: "quiet",},},}Отримайте токен доступу одержувача
За можливості повторно використовуйте наявний токен клієнтського сеансу. Щоб створити новий:
curl -sS -X POST \"https://matrix.example.org/_matrix/client/v3/login" \-H "Content-Type: application/json" \--data '{"type": "m.login.password","identifier": { "type": "m.id.user", "user": "@alice:example.org" },"password": "REDACTED"}'Перевірте наявність засобів push-доставки
curl -sS \-H "Authorization: Bearer $USER_ACCESS_TOKEN" \"https://matrix.example.org/_matrix/client/v3/pushers"Якщо засоби push-доставки не повертаються, перш ніж продовжити, виправте звичайну доставку push-сповіщень Matrix для цього облікового запису.
Установіть перевизначальне правило push-сповіщень
Установіть правило, яке зіставляє маркер завершеного попереднього перегляду та MXID бота як відправника:
curl -sS -X PUT \"https://matrix.example.org/_matrix/client/v3/pushrules/global/override/openclaw-finalized-preview-botname" \-H "Authorization: Bearer $USER_ACCESS_TOKEN" \-H "Content-Type: application/json" \--data '{"conditions": [ { "kind": "event_match", "key": "type", "pattern": "m.room.message" }, { "kind": "event_property_is", "key": "content.m\\.relates_to.rel_type", "value": "m.replace" }, { "kind": "event_property_is", "key": "content.com\\.openclaw\\.finalized_preview", "value": true }, { "kind": "event_match", "key": "sender", "pattern": "@bot:example.org" }],"actions": [ "notify", { "set_tweak": "sound", "value": "default" }, { "set_tweak": "highlight", "value": false }]}'Перед запуском замініть:
https://matrix.example.org: базову URL-адресу вашого домашнього сервера$USER_ACCESS_TOKEN: токен доступу користувача-одержувачаopenclaw-finalized-preview-botname: ідентифікатор правила, унікальний для кожного бота й одержувача (шаблон:openclaw-finalized-preview-<botname>)@bot:example.org: MXID вашого бота OpenClaw, а не одержувача
Перевірте
curl -sS \-H "Authorization: Bearer $USER_ACCESS_TOKEN" \"https://matrix.example.org/_matrix/client/v3/pushrules/global/override/openclaw-finalized-preview-botname"Потім перевірте потокову відповідь. У тихому режимі в кімнаті відображається тихий попередній перегляд чернетки, а сповіщення надходить після завершення блока або ходу.
Щоб згодом видалити правило, надішліть запит DELETE на ту саму URL-адресу правила з токеном одержувача.
Примітки щодо кількох ботів
Правила push-сповіщень визначаються ключем ruleId: повторний запуск PUT для того самого ідентифікатора оновлює одне правило. Якщо кілька ботів OpenClaw сповіщають того самого одержувача, створіть окреме правило для кожного бота з окремим зіставленням відправника.
Нові користувацькі правила override вставляються перед стандартними серверними правилами придушення, тому додатковий параметр упорядкування не потрібен. Правило впливає лише на редагування текстових попередніх переглядів, які можна завершити на місці; медіавідповіді, резервні варіанти для застарілих попередніх переглядів і фінальні тексти, які активували б згадки Matrix, натомість доставляються як звичайні повідомлення зі сповіщеннями.
Примітки щодо домашнього сервера
Synapse
Спеціальні зміни в homeserver.yaml не потрібні. Якщо звичайні сповіщення Matrix уже надходять цьому користувачеві, основним кроком налаштування є токен одержувача та наведений вище виклик pushrules.
Якщо Synapse працює за зворотним проксі-сервером або з воркерами, переконайтеся, що /_matrix/client/.../pushrules/ належним чином спрямовується до Synapse. Доставку push-сповіщень обробляє основний процес, synapse.app.pusher або налаштовані воркери push-доставки — переконайтеся, що вони справні.
Правило використовує умову правила push-сповіщень event_property_is (MSC3758, версія правила push-сповіщень 1.10), яку додали до Synapse у 2023 році. Старіші випуски Synapse приймають виклик PUT pushrules/..., але умова ніколи не збігається без повідомлення про помилку — оновіть Synapse, якщо після завершеного редагування попереднього перегляду сповіщення не надходить.
Tuwunel
Процес такий самий, як для Synapse; для маркера завершеного попереднього перегляду не потрібна окрема конфігурація Tuwunel.
Якщо сповіщення зникають, коли користувач активний на іншому пристрої, перевірте, чи ввімкнено suppress_push_when_active. Tuwunel додав цей параметр у версії 1.4.2 (вересень 2025 року), і він може навмисно придушувати push-сповіщення на інших пристроях, поки один пристрій активний.