reflectionircd/docs/specs/delete-message.md
2022-01-24 10:23:06 -05:00

1.7 KiB

title layout work-in-progress copyrights
Message Deletion spec true
name email period
Emerson Veenstra ircv3@emersonveenstra.net 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