Why: Synapse 1.164 turns on MSC4210 by default. The legacy push rules that pinged when a user ID or display name appeared in a message body are removed, so a message only notifies the users listed in m.mentions.
Audit of what we send
Lotus Chat: already sends m.mentions, including for reply mentions. No change needed.
hookshot/tinker-tickets.js deliberately pings assignees and watchers (notify_users) with matrix.to links. These pings would stop. Fixed: the transform now returns mentions: { user_ids: notifyUsers }, a field hookshot 7.3.2's v2 transforms support.
matrixbot:
!roast names its target; it now mentions them when they're given as a full Matrix ID (send_html(..., mention_user_ids=[...]));
the Wordle, riddle and RPS winner announcements stay without a ping, since the player is already in the room;
no @room is sent anywhere.
Other hookshot transforms: they don't mention users.
Works on 1.163 as well.m.mentions is already honoured, so this can go in before the Synapse upgrade.
Deploy: merging to main triggers the LXC 151 hook. It runs hookshot/deploy.sh for the transform and copies plus restarts matrixbot.
Checks: eslint (hookshot) and ruff (matrixbot) pass locally; py_compile and node --check pass.
**Why:** Synapse 1.164 turns on MSC4210 by default. The legacy push rules that pinged when a user ID or display name appeared in a message body are removed, so a message only notifies the users listed in `m.mentions`.
**Audit of what we send**
- **Lotus Chat:** already sends `m.mentions`, including for reply mentions. No change needed.
- **`hookshot/tinker-tickets.js`** deliberately pings assignees and watchers (`notify_users`) with matrix.to links. **These pings would stop.** Fixed: the transform now returns `mentions: { user_ids: notifyUsers }`, a field hookshot 7.3.2's v2 transforms support.
- **matrixbot:**
- `!roast` names its target; it now mentions them when they're given as a full Matrix ID (`send_html(..., mention_user_ids=[...])`);
- the Wordle, riddle and RPS winner announcements stay without a ping, since the player is already in the room;
- no `@room` is sent anywhere.
- **Other hookshot transforms:** they don't mention users.
**Works on 1.163 as well.** `m.mentions` is already honoured, so this can go in before the Synapse upgrade.
**Deploy:** merging to `main` triggers the LXC 151 hook. It runs `hookshot/deploy.sh` for the transform and copies plus restarts `matrixbot`.
**Checks:** eslint (hookshot) and ruff (matrixbot) pass locally; `py_compile` and `node --check` pass.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
https://claude.ai/code/session_017PCb59uY3UKqDqt7B6hzd5
Synapse 1.164 turns on MSC4210 by default: the legacy push rules that
pinged when a user ID or display name appeared in the body are removed, so
a message only notifies the users listed in m.mentions.
- hookshot/tinker-tickets.js deliberately pings assignees/watchers
(notify_users) with matrix.to links; those pings would stop. Return
mentions: { user_ids: notifyUsers } (hookshot 7.3.2 v2 transforms
support it).
- matrixbot: send_html takes optional mention_user_ids; !roast mentions the
target when given as a full Matrix ID. Winner announcements stay without
a ping (the player is already in the room).
No @room is sent anywhere. Lotus Chat already sends m.mentions.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017PCb59uY3UKqDqt7B6hzd5
jared
scheduled this pull request to auto merge when all checks succeed 2026-10-27 20:04:47 -04:00
jared
merged commit 6b39bd931e into main2026-10-27 20:06:14 -04:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Why: Synapse 1.164 turns on MSC4210 by default. The legacy push rules that pinged when a user ID or display name appeared in a message body are removed, so a message only notifies the users listed in
m.mentions.Audit of what we send
m.mentions, including for reply mentions. No change needed.hookshot/tinker-tickets.jsdeliberately pings assignees and watchers (notify_users) with matrix.to links. These pings would stop. Fixed: the transform now returnsmentions: { user_ids: notifyUsers }, a field hookshot 7.3.2's v2 transforms support.!roastnames its target; it now mentions them when they're given as a full Matrix ID (send_html(..., mention_user_ids=[...]));@roomis sent anywhere.Works on 1.163 as well.
m.mentionsis already honoured, so this can go in before the Synapse upgrade.Deploy: merging to
maintriggers the LXC 151 hook. It runshookshot/deploy.shfor the transform and copies plus restartsmatrixbot.Checks: eslint (hookshot) and ruff (matrixbot) pass locally;
py_compileandnode --checkpass.🤖 Generated with Claude Code
https://claude.ai/code/session_017PCb59uY3UKqDqt7B6hzd5
Synapse 1.164 turns on MSC4210 by default: the legacy push rules that pinged when a user ID or display name appeared in the body are removed, so a message only notifies the users listed in m.mentions. - hookshot/tinker-tickets.js deliberately pings assignees/watchers (notify_users) with matrix.to links; those pings would stop. Return mentions: { user_ids: notifyUsers } (hookshot 7.3.2 v2 transforms support it). - matrixbot: send_html takes optional mention_user_ids; !roast mentions the target when given as a full Matrix ID. Winner announcements stay without a ping (the player is already in the room). No @room is sent anywhere. Lotus Chat already sends m.mentions. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017PCb59uY3UKqDqt7B6hzd5