Skip to content

Extended Pleroma Conversations

lain requested to merge pleroma-conversations into develop

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:

  1. The addressed recipients will never change unless explicitly requested
  2. Mentioning people in the text is not necessary to address them
  3. You can get statuses by conversation id
  4. It's possible to reply to a conversation without replying to a specific post.

Merge request reports