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(a)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(a)muc.example.org' from='
knightsguild(a)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(a)muc.example.org' from='
knightsguild(a)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(a)muc.example.org' from='
knightsguild(a)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(a)muc.example.org/anna' id='groupchat-id1'
arrangement='0' xmlns='urn:xmpp:reply:0' />
<reply to='knightsguild(a)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(a)xmpp.org
To unsubscribe send an email to standards-leave(a)xmpp.org