Skip to content

[UX feedback] Matrix - XMPP bridge: replies and reactions representations are inconsistent, ambiguous and verbose #2247

@belkka

Description

@belkka

I participated in a Matrix and XMPP room connected, perhaps, by matterbridge (according to another participant who pointed me to this repo). Here is what I noticed:

replies in xmpp cause the bridge to post ">" + multiline-quote + "\n" + user-text in matrix, with no explicit marker of where multiline quote ends and user-text starts (> is not prepended to every line of quote)

reactions in xmpp = ">" + multiline-quote + "\n" + emoji in matrix (very verbose & also no clear disctinction between end-of-quote and user-reply)

on the other side, reply in matrix = regular message in xmpp (no quote) and reactions in matrix are not bridged to xmpp

== Issues ==

  • inconsistency: while both XMPP and Matrix have "replies" and "reactions", the bridge represents them differently when messages go in different directions.
  • ambiguity: multiline "> quotes" (used for representation of XMPP messages in Matrix) only include a single "quotation marker" > at the beginning of the first line (instead of every line)
  • verbosity: when XMPP reaction is represented in Matrix, it floods the Matrix room history with a full quotation of a possibly long message (receiving reaction). This contrasts with how reactions are traditionally represented in their "native" apps. Also, because of inconsistency (Matrix reactions are not represented in XMPP), XMPP participants might stay unaware of this verbosity (leading to them using reactions when they would possibly refrain otherwise).
    • also, to lesser extent applies to replies, when full quotation is included

== Possible improvements ==
ideally, I'd expect native replies in XMPP be represented as native replies in Matrix and vice versa (instead of imitating with quotes). This would solve inconsistency, ambiguity, and partially reduce verbosity if applied to reactions: some clients represent replies in a more compact way, compared to including full quote of targeted messages.

if have to resort to quotes, every line of multi-line quote should be prepended with >. In fact, this would also make some Matrix and XMPP clients properly visualize the quoted text

various trade-offs are possible to reduce verbosity of reactions:

  • consistently ignoring reactions in both directions (after all, maybe reactions are just not suitable for bridged rooms)
    • pros: users can freely add and retract reactions on their native platforms, without flooding the chat room on the other side of the bridge; they can still send a message with emoji if they really want it to be visible on all platforms as a standalone message.
    • cons: some information is lost
  • consistently including full quote on reactions, in both directions
    • pros: awareness; users on every side of the bridge feel the pain of each other, and, perhaps, refrain from using reactions too extensively.
    • cons: flood; less awareness if one side of the bridge is more popular, more pain for the other side;
  • using replies for reactions, instead of quotes (slightly better, same pros and cons)
  • using a single reply listing all reactions to one message (editable by bridge): "users A, B reacted 👍, user C reacted 🥇"

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions