IRC: a deleted message stays on screen #159

Closed
opened 2026-09-10 15:45:09 -04:00 by Salastil · 1 comment
Owner

draft/message-redaction gives IRC what every other protocol here has: a way for a
message to be taken back, and for clients to remove it.

moho already deletes messages on Discord, Matrix, Kick and Sneedchat
(deleteMessage), and already removes a message from the log when a service says to.
IRC is the one where the entry does nothing.

What is needed

  • Request draft/message-redaction and handle the inbound REDACT command against
    the stored message id — message-tags and msgid dedup are already in place
    (backend/irc/incoming.rs:687).
  • Send REDACT where the network allows it, so the existing delete entry works.

Done looks like: deleting a message on IRC does what it does everywhere else.

One of the four draft IRCv3 extensions that actively-maintained clients already ship
(WeeChat, Halloy, bIRC). The other eight drafts were scored by the 2026-09-10 coverage
review and deliberately not filed: they can still change underneath an implementation.
moho currently implements 1 of the 12 drafts (chathistory).

`draft/message-redaction` gives IRC what every other protocol here has: a way for a message to be taken back, and for clients to remove it. moho already deletes messages on Discord, Matrix, Kick and Sneedchat (`deleteMessage`), and already removes a message from the log when a service says to. IRC is the one where the entry does nothing. **What is needed** - Request `draft/message-redaction` and handle the inbound `REDACT` command against the stored message id — `message-tags` and msgid dedup are already in place (`backend/irc/incoming.rs:687`). - Send `REDACT` where the network allows it, so the existing delete entry works. **Done looks like:** deleting a message on IRC does what it does everywhere else. One of the four draft IRCv3 extensions that actively-maintained clients already ship (WeeChat, Halloy, bIRC). The other eight drafts were scored by the 2026-09-10 coverage review and deliberately not filed: they can still change underneath an implementation. moho currently implements **1 of the 12 drafts** (`chathistory`).
Salastil added the featureprotocol labels 2026-09-10 15:45:09 -04:00
Salastil removed the protocol label 2026-09-10 15:53:24 -04:00
Author
Owner

Done in nobilis d271fb7.

REDACT is sent from the existing delete entry, which on IRC did nothing before.

One decision worth recording: the message is not removed when the delete is sent. The server decides whether it was allowed and says so by echoing REDACT back, and that echo is what removes it - showing a deletion that may not happen is worse than a moment's delay.

Verified against testnet.ergo.chat, which offers 40 capabilities and granted 21 of them in one line. A message was sent, deleted, and the line came off screen on the server's confirmation.

Done in nobilis [d271fb7](https://git.salastil.com/Salastil/nobilis/commit/d271fb7). `REDACT` is sent from the existing delete entry, which on IRC did nothing before. One decision worth recording: the message is **not** removed when the delete is sent. The server decides whether it was allowed and says so by echoing REDACT back, and that echo is what removes it - showing a deletion that may not happen is worse than a moment's delay. **Verified against testnet.ergo.chat**, which offers 40 capabilities and granted 21 of them in one line. A message was sent, deleted, and the line came off screen on the server's confirmation.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Salastil/moho#159