mirror of
https://git.sr.ht/~emerson/reflectionircd
synced 2025-08-05 16:59:10 +00:00
46 lines
1.7 KiB
Markdown
46 lines
1.7 KiB
Markdown
---
|
|
title: Message Deletion
|
|
layout: spec
|
|
work-in-progress: true
|
|
copyrights:
|
|
-
|
|
name: "Emerson Veenstra"
|
|
email: "ircv3@emersonveenstra.net"
|
|
period: "2022"
|
|
---
|
|
|
|
## Notes for implementing work-in-progress version
|
|
|
|
This is a work-in-progress specification.
|
|
|
|
Software implementing this work-in-progress specification MUST NOT use the
|
|
unprefixed `delete-message` capability name. Instead, implementations SHOULD
|
|
use the `draft/delete-message` capability name to be interoperable with other
|
|
software implementing a compatible work-in-progress version.
|
|
|
|
The final version of the specification will use an unprefixed capability name.
|
|
|
|
|
|
## Introduction
|
|
|
|
This specification describes a standardized way to signal to clients that a previously
|
|
sent message should no longer be displayed.
|
|
|
|
## Implementation
|
|
|
|
Servers and clients implementing this spec MUST also implement the `message-tags` capability.
|
|
|
|
To request message deletion, clients send a `DELETEMSG` to the channel or user of the original message.
|
|
This `DELETEMSG` MUST have the tag `draft/delete-message` with a required value of the `msgid` of the
|
|
message to delete. It MAY have an optional second parameter to specify a reason for deletion.
|
|
|
|
Clients who receive a `DELETEMSG` with the `draft/delete-message` tag MUST remove all displayed content from
|
|
the specified `msgid`. If the original message is ephemeral, clients SHOULD remove it entirely;
|
|
otherwise they SHOULD replace it with the deletion reason, or a generic substitute.
|
|
|
|
Servers MUST ensure that the user requesting deletion has sufficient privileges to delete the specified
|
|
message. Servers MUST remove the content of the original message from all persistent history stores, and
|
|
MAY replace the content with a generic deletion message if needed.
|
|
|
|
## Examples
|
|
|