Extended Pleroma Conversations
Given the confusing nature of direct messages, Mastodon introduced the Conversation entity and related endpoints (see https://docs.joinmastodon.org/api/rest/timelines/#get-api-v1-conversations).
The problems with direct messages:
- They are just posts with a different visibility setting, hard to differentiate
- Mentioning somebody will add them to the recipients of the post. This leads to lots of accidental messages (e.g.: "@friend wow i hate @enemy so much" in a dm thread with @friend will also be sent to @enemy)
- You start them by mentioning someone, then changing the visibility setting. This is a very unusual flow and most people don't understand it.
- No easy way to group DMs in conversations.
- Adding someone to a DM thread will not make them see old posts in the thread (not a bug, but confusing).
Conversations were introduced (https://github.com/tootsuite/mastodon/pull/8832) to fix some of these problems. Sadly, most problems still exist.
Things that Conversations fix:
- It's possible to group DMs and show a list of those groups (Conversations).
That's it. The only added endpoint is one to retrieve the list of conversations of the user. Conversations themselves don't contain a list of Statuses, just the id of the last Status.
This MR introduces extensions for the Mastodon Conversations, which make it possible to use Conversations more like a chat:
- The addressed recipients will never change unless explicitly requested
- Mentioning people in the text is not necessary to address them
- You can get statuses by conversation id
- It's possible to reply to a conversation without replying to a specific post.