Allow users to edit their messages

:zap: Thanks for sharing your idea! Please use this template to keep things organized

Idea name: Edit messages
Description: Users should be able to edit their messages. Any message that was altered will have a flag indicating that the content was edited as well as the date this edition happened. If any user clicks / taps over an edited message, they will be able to see the previous versions of the messages in a popup.
Use case: As a user, I want to edit my messages so that i can replace their content while still being able to look at the edit history
Target user: Any user
Why this is important: This is useful to correct spelling errors, grammar, incorrect information, etc, while still being able to look at how the message has changed over time
Any other comments:
This should be technically viable by adding an optional attribute to the message payload indicating which messageId is being replaced (this is similar to the responseTo attribute used for replies)

If you think this is a great idea and know how to implement it, consider posting a project proposal on Assemble.

I guess I already mentioned this before,

once the message is sent, you cannot edit it - it’s how the messaging tech work.

If there were a small amount of time, like 10 second, where you could edit it, it would require the message not to be sent for 10 seconds.

Which would be a bad user experience in my opinion

part of what makes the messages secure makes them permanent - AndyB

You can’t edit your message on FB messenger. You can delete it but you can’t edit it.

The message would not be “edited” per se, but replaced on the UI. They would be sent as soon as the user taps the send button. At the protocol level it would be N messages for each edition. i.e.:

  1. Suppose you send a message with the following payload:
{
   messageId: "0x000001",
   from: "0xsome_public_key",
   text: "Hello WOr"
}
  1. I want to correct the message the first time, I’d send a message with the following payload:
{
   messageId: "0x000002",
   from: "0xsome_public_key"
   replaces: "0x000001",
   text: "Hello World"
}
  1. If i wanted to correct the message again, I’d send a third message:
{
   messageId: "0x000003",
   from: "0xsome_public_key"
   replaces: "0x000001",
   text: "Hola mundo!"
}

As you can see in this example, three messages are being sent (the original message, and the editions), but the UI would handle these as if they were a single message but with a new flag like this
Screenshot from 2020-07-27 13-40-03 (copy)

Different client implementations could decide whether they want to display the messages as separate or not, and could decide whether to accept altered messages that happened >10s of the original message being sent, or discard them (not show those messages on the UI)

6 Likes