mirror of
https://git.sr.ht/~emerson/reflectionircd
synced 2025-08-05 16:59:10 +00:00
47 lines
1.7 KiB
Markdown
47 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
|
||
|
|