Does anyone know what existing clients do when faced with multiple reply elements in a single message? Do they pick the first, last, or do anything with both? My guess is that they'll vary, giving us the XMPP equivalent of Undefined Behaviour - we saw that with MUC codes a few years back when clients often only picked one. Discovering the answer to this will indicate if this would need to be a spec bump or not.

There's nothing I noted in the existing spec that stipulates only one reply element can exist in a single message, so it's possible some clients are doing this kind of thing already.

Final comment - XML is ordered, so the arrangement attribute is redundant - and prone to other exciting UB, like if there's two at the same rank, or gaps, or...

(I have no opinion on whether we should do multi-replies, incidentally - though to be clear, no objections either)

On Sat, 28 Jun 2025 at 23:16, Greatsword <gs@greatsword.xyz> wrote:

I've seen some IM platforms (namely Revolt and Guilded) have the ability to let the user reference multiple messages in a single reply, which might be a useful feature. I think with the XEP as it currently is, it could be fairly simple to add support for this feature.

I think an addition like this would be good.

"""
Section 3.2 - Multi-Message Replies

A user may want to reply to multiple messages with a single message. This can be done by including many reply elements. Ordering is important, so the reply element MUST include an "arrangement" attribute that counts up from 0, with 0 being displayed at the top in the client UI.

EXAMPLE 5. Yuri replies to both Max's and Anna's messages in a MUC.
```
<message to='knightsguild@muc.example.org' from='knightsguild@muc.example.org/anna' id='groupchat-id1' type='groupchat'>
  <stanza-id xmlns='urn:xmpp:sid:0' id='groupchat-id1' />
  <body>A fort will keep us safe!</body>
</message>

<message to='knightsguild@muc.example.org' from='knightsguild@muc.example.org/max' id='groupchat-id2' type='groupchat'>
  <stanza-id xmlns='urn:xmpp:sid:0' id='groupchat-id2' />
  <body>Adoring blue flags for style!</body>
</message>

<message to='knightsguild@muc.example.org' from='knightsguild@muc.example.org/yuri' id='groupchat-id3' type='groupchat'>
  <stanza-id xmlns='urn:xmpp:sid:0' id='groupchat-id3' />
  <body>Excellent ideas! Let's get right to it!</body>
  <reply to='
knightsguild@muc.example.org/anna' id='groupchat-id1' arrangement='0' xmlns='urn:xmpp:reply:0' />
 
<reply to='knightsguild@muc.example.org/max' id='groupchat-id2' arrangement='1' xmlns='urn:xmpp:reply:0' />
</message>

```

A fallback for this would work in the same way as the previous section, the main difference is that the fallback would include all referenced messages.

"""

I think it also might be worth considering having some kind of limiter in how many messages can be referenced by one reply - perhaps MUCs that advertise support for replies could indicate in a data form how many references may be one message, and if clients don't self-enforce this, then the MUC could throw a policy violation error and drop the message.

_______________________________________________
Standards mailing list -- standards@xmpp.org
To unsubscribe send an email to standards-leave@xmpp.org