Matrix: a bot's notice reads as an ordinary message #215

Closed
opened 2026-09-13 11:59:32 -04:00 by Salastil · 1 comment
Owner

protocol::message_body (protocol.rs:55-59) tests only for m.emote. Every other msgtype, m.notice included, becomes a plain message.

m.notice is what bots and bridges send - it exists precisely so a client can draw it more quietly than a person's message, which is what Element does. In a room with an active bridge the effect is that automated traffic is indistinguishable from people talking.

`protocol::message_body` (`protocol.rs:55-59`) tests only for `m.emote`. Every other msgtype, `m.notice` included, becomes a plain message. `m.notice` is what bots and bridges send - it exists precisely so a client can draw it more quietly than a person's message, which is what Element does. In a room with an active bridge the effect is that automated traffic is indistinguishable from people talking.
Salastil added the featurelow priority labels 2026-09-13 11:59:32 -04:00
Author
Owner

Finished.

message_kind names it and the three paths that store a message — live, threaded and backfilled — all ask. A notice stays a chat kind rather than becoming a system line: it has a sender, can be replied to and redacted, and belongs in the conversation. What changes is its weight — muted body, a rail down the edge that survives grouping, and the word "notice" on the byline, since a toned-down body can be mistaken for an unlucky one.

It also stops raising a mention while the account's own .m.rule.suppress_notices override says so, which is the state every homeserver ships. Read from the real rules rather than assumed: somebody who turned it off meant to.

Two places compared the kind to "chat" literally and greyed out every Matrix message in an HTML export; both now ask isChatKind.

7d2a04a, 3980f8e

Finished. `message_kind` names it and the three paths that store a message — live, threaded and backfilled — all ask. A notice stays a chat kind rather than becoming a system line: it has a sender, can be replied to and redacted, and belongs in the conversation. What changes is its weight — muted body, a rail down the edge that survives grouping, and the word "notice" on the byline, since a toned-down body can be mistaken for an unlucky one. It also stops raising a mention while the account's own `.m.rule.suppress_notices` override says so, which is the state every homeserver ships. Read from the real rules rather than assumed: somebody who turned it off meant to. Two places compared the kind to `"chat"` literally and greyed out every Matrix message in an HTML export; both now ask `isChatKind`. [7d2a04a](https://git.salastil.com/Salastil/nobilis/commit/7d2a04a), [3980f8e](https://git.salastil.com/Salastil/moho/commit/3980f8e)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Salastil/moho#215