jdev - 2026-03-13


  1. snit

    > i dont think you can put multiple <mention> elements in one message without putting them in an encapsulating <mentions> element chat is this true? is something like this allowed: https://xmpp.org/extensions/inbox/explicit-mentions.html#example-7

  2. singpolyma

    of course you can put multiple elements in a message. That is a normal and expected thing

  3. singpolyma

    Lots of other XEPs already do this and it's just fundamental to XML anyway

  4. snit

    that's what i thought i just wanted to make sure lol

  5. singpolyma

    Please don't put in a wrapper element that's just more bytes and more code

    🫡 1
  6. singpolyma

    Maybe whoever said this was thinking of iq. And iq may only have one child (or two if one is an error iirc)

  7. snit

    my interpretation was that he was just thinking of whether a message can contain multiple of the same element directly, or whether they need a container, so i don't think it was confusion with iq

  8. lovetox

    I mean if start and end attributes should reflect the nickname

  9. lovetox

    It really does not make sense that multiple elements have the same range

  10. lovetox

    I really think the initial draft wanted to mark text passages and notify specific users for these passages

  11. singpolyma

    Yes for sure it makes no sense to have the same begin/end for more than one

  12. lovetox

    The whole yep should be scanned for this previous idea of what start/end should mark. And also I'm asking myself is there a use for this other functionality? How did pep get the idea of that feature

  13. snit

    the linked example seems to be an informal, client-defined grouping of users. rather than going "Hi rosa, clara, karl", it just groups them into one

  14. snit

    > I really think the initial draft wanted to mark text passages and notify specific users for these passages pep's original draft can be found here: https://bouah.net/specs/mentions.html the very first example makes it clear that the intention really was to mark the name, not the message addressed to them

  15. moparisthebest

    > the linked example seems to be an informal, client-defined grouping of users. rather than going "Hi rosa, clara, karl", it just groups them into one This immediately popped into my head reading this https://youtu.be/qyS9ZV3aUqs?t=19

    🤣 1
  16. lovetox

    But check example 6

  17. lovetox

    This can only be realized if I let a user mark text then assign me ruins to this text passage

  18. lovetox

    This can only be realized if I let a user mark text then assign mentione to this text passage

  19. lovetox

    This can only be realized if I let a user mark text then assign mentions to this text passage

  20. snit

    i mean sure that's one way you could do it, but the range still applies to the name of the mentioned group, not the message to that group (which'd probably be the "hi" part)

  21. snit

    another way you could do this is have a client interface to assign users to groups to make it easier to mention a group in one go (in which case the range would be automatically set to the name of the group in the mention), which might especially be useful in the absence of hats or if you can't control hats

  22. lovetox

    But that opens a door, and needs consideration in the gui

  23. singpolyma

    Overlapping ranges are always gross

  24. lovetox

    A client could offer the possibility to create custom mention groups, which could then be easily accessed by the user

  25. lovetox

    Just not sure if this is really something somebody needs ..

  26. singpolyma

    Indeed. But that needn't affect the markup

  27. singpolyma

    i already sort of have this in my app without any markup at all

  28. lovetox

    Hm how without markup?

  29. singpolyma

    i expand the group mention to the names of everyone in the group with commas. Works with existing clients

  30. lovetox

    Yes... Ok

  31. lovetox

    But yeah MUC hats basically serv the same purpose

  32. lovetox

    This are also custom groups

  33. snit

    > Just not sure if this is really something somebody needs .. needs? probably not, just like i don't _need_ mentions, but i'd certainly _want_ it, because i do frequently mention groups of users and can't always use hats to do it, so a shorthand to do so would be nice, especially if it doesn't fill half the message with usernames

  34. singpolyma

    for a user defined group you can't really do better. But yes if we add hat mentions that's similar but server side

  35. singpolyma

    Well the usernames still need to show up I thenk

  36. singpolyma

    you can't just show your locally defined group name and have it mean to mention all these people that's very confusing

  37. lovetox

    Depends on the group name if it's clear to the user that the name needs to mean something to other people it's fine

  38. snit

    > Well the usernames still need to show up I thenk i mention in a later section that the user interface should be able to show all the mentions in a message, kind of like read receipts and such. this is important even without group mentions, since i can exclude the 'begin' and 'end' attributes altogether

  39. singpolyma

    definitely don't mention anything abuser interface "should" do that's not up to a xep

  40. lovetox

    You can, but thats very weird

  41. lovetox

    mentions in the xml are there for me so that clients and servers can interpret the body and do something

  42. lovetox

    its not there to leave out text from the body

  43. lovetox

    it should be additional to the normal body, not instead of the body

  44. lovetox

    i think we should consider making start/end mandatorx

  45. lovetox

    i think we should consider making start/end mandatory

  46. singpolyma

    For non groups certainly it has to be. I may rewrite the body to use whatever name my app sees for that user but knowing where do put that is important

  47. lovetox

    i also can hardly imagine a UI that makes mentioning not part of typing the message in the text entry, at which part a client cannot leave out the text simply

  48. singpolyma

    groups are a whole other can of worms and that's why I suggested splitting the xep

  49. lovetox

    "non group", why would i use a mention there?

  50. singpolyma

    I mean when mentioning abuser not eg "every mod" etc

  51. singpolyma

    I mean when mentioning a participant not eg "every mod" etc

  52. singpolyma

    for example I already support "notify every participant" and this does not have associated body text

  53. snit

    > it should be additional to the normal body, not instead of the body i don't think there's ever a case where its "instead" and not "in addition", though? even without begin/end, you'll still display the body as always and _in addition_ notify the relevant users

  54. lovetox

    but thats not a mention in my eyes

  55. lovetox

    that should be handled with the Attention XEP

  56. singpolyma

    Yes I agree and that is what I use

  57. lovetox

    yeah ok, but now that "ALL" is out of the way, i would expect even for groups i have UI where someone types in the text entry, and the user can autocomplete groups like "Admin" and "Moderators"

  58. lovetox

    and i would not remove this from the text i send on the wire

  59. lovetox

    i see no case where i would need to attach a mention without start/end

  60. lovetox

    also its problematic for backwards compat

  61. singpolyma

    I think I agree. If someone really wants to not show it when it is a prefix and use another UX it's pretty easy to detect that and snip it

  62. singpolyma

    However I also think hat etc mentions should move to their own xep and we can focus on the common case first

  63. lovetox

    and also another design question, is it fine that we introduce another markup now here, would this not be better suited within 0394 ? or some new XHTML spec?

  64. lovetox

    or is this bad, because servers would then need to understand the markup spec

  65. singpolyma

    Yeah I think it's that. You know I love some XHTML but there are arguments for the non styling part of this to be accessible

  66. singpolyma

    more easy

  67. snit

    > that should be handled with the Attention XEP i'm not a fan of attention. that xep makes it pretty clear it only expects to be used with contacts in 1:1 chats, has no possibility of associating with the body, doesn't have any established permissions in mucs, is only be used to replicate @here and not @everyone, and overall seems like its meant to be an aggressive message that just got reapplied to room mentions because nothing better existed

  68. singpolyma

    Obviously as the person who did it I disagree 🙂

  69. snit

    > and also another design question, is it fine that we introduce another markup now here, would this not be better suited within 0394 ? or some new XHTML spec? once i learnt that references are considered dead, i considered using 0394, but i don't see a pressing need one way or the other

  70. singpolyma

    Also I have no plan to ever implement 0394 so this sidesteps that heh

  71. snit

    > i see no case where i would need to attach a mention without start/end if no one else sees a use-case for excluding begin/end, i'm fine with making it mandatory. i wouldn't personally need to exclude them

  72. snit

    > Also I have no plan to ever implement 0394 so this sidesteps that heh same but for XHTML-IM, so sounds like i'll be leaving it independent lol

  73. singpolyma

    its easier to make them optional later than to make them mandatory later I think

  74. snit

    true true

  75. Kev

    I’ve only been skimming the conversation, but I don’t see a reason for them not to be mandatory. “There’s a mention in here, somewhere, good luck!” doesn’t seem helpful :)

  76. lol

    snit: You've been mentioning me a lot.

  77. snit

    _something my XEP would fix..._

  78. singpolyma

    lol: kind of your choice

  79. singpolyma

    snit: maybe eventually. I don't expect any time soon

  80. snit

    > I’ve only been skimming the conversation, but I don’t see a reason for them not to be mandatory. “There’s a mention in here, somewhere, good luck!” doesn’t seem helpful :) i'll change this bit then 👍

  81. lol

    snit: exactly lol

  82. snit

    neat i already edited all my examples to include begin/end pairs

  83. snit

    so looks like i've already implicitly told myself excluding it is useless 🧌

  84. lovetox

    also snit, https://xmpp.org/extensions/inbox/explicit-mentions.html#permissions

  85. lovetox

    i dont think this is good, there is already a muc configuration form, and you can define in your XEP additional fields

  86. snit

    i've already fixed that yeah

  87. lovetox

    i would publish your changes asap

  88. lovetox

    otherwise people read this and we talk about the same things again and again with different people

  89. singpolyma

    Will help at the council discussion also if feedback has been incorporated

  90. lovetox

    we should treat this phase like a working group

  91. lovetox

    it should be iterated fast on the XEP, and only if most agree that it is in a good state, then it should be brought before council

  92. snit

    > i would publish your changes asap i asked the other day and was told i should wait until discussion dies down before submitting all the changes at once. however, i do have an unrendered copy of my working draft at https://git.isekai.rocks/snit/protoxeps/tree/explicit-mentions.xml i think its a lot better now that i'm not working under certain assumptions(i.e. future use of refs) and i've tried to incorporate most of the feedback so far. i can see about submitting what i have in a little bit if you guys would prefer that

  93. Kev

    Other than that I’ve been slow in reviewing a PR for References, what _is_ the argument for not using References for … doing references?

  94. Kev

    One of the points of References in the first place was allowing one to do mentions (without further protocol).

  95. lovetox

    but it kind of needs further protocol

  96. lovetox

    we need various defined strings that identify groups which are mentioned, we need a attribute that has the occupant-id, there should somewhere a namespace with a version

  97. lovetox

    i mean we could reuse the the "reference" element with start/end and type = mention, but then define additional attributes in the mentions XEP

  98. lovetox

    should the type attribute in reference not point to a namespace?

  99. lovetox

    so the reference element can be extended by other xeps?

  100. lovetox

    or did you plan that the reference XEP is an ever growing all encompasing XEP that defines all types

  101. lovetox

    snit, what i also find a bit weird is, that the MUC config form not really configures the MUC. Do i understand that correctly that the muc config form just is a place for an admin to tell clients what they *should* do?

  102. singpolyma

    References was somehow both too generic and also not fit for purpose. We could change it to be just about mentions but then the other uses go away and yeah I dunno. In the wild I've only seen it used for sims and only in a degenerate way

  103. snit

    the proposal i originally picked up depended on a PR that never got merged. i submitted without the dependency so we could get the feature at all, but i'd planned on adding it back in the future. the council discussion the other day suggested most people don't care about refs at all, so my current draft stopped working under the assumption of using it at all. if i recall, some issues included not being clear how to extend refs, the uri attribute being required, and a single mention type being baked in already

  104. singpolyma

    > snit, what i also find a bit weird is, that the MUC config form not really configures the MUC. Do i understand that correctly that the muc config form just is a place for an admin to tell clients what they *should* do? I assumed the MUC config changed what mentions the MUC would strip or return errors for

  105. snit

    > snit, what i also find a bit weird is, that the MUC config form not really configures the MUC. Do i understand that correctly that the muc config form just is a place for an admin to tell clients what they *should* do? the muc config form at a minimum tells clients what they should do, but MAY also be used by the muc service itself to filter out invalid mentions. up to the muc whether it does anything itself though

  106. singpolyma

    I think clients will do what they want and should not be affected but the MUC config

  107. lovetox

    yes, its weird that an admin tells a client what to do

  108. singpolyma

    I think clients will do what they want and should not be affected by the MUC config

  109. lovetox

    if the MUC permissions are supported, the MUC must strip stuff, otherwise its not a "configuration"

  110. singpolyma

    Yes

  111. snit

    hm fair enough

  112. singpolyma

    strip or return error. Dealer's choice

  113. snit

    to be fair it wasn't originally muc configuration until i was told to put it there 🧌

  114. singpolyma

    it was a configuration form in a MUC even if it originally was a different iq 🙂

  115. SouL

    > References was somehow both too generic and also not fit for purpose. We could change it to be just about mentions but then the other uses go away and yeah I dunno. In the wild I've only seen it used for sims and only in a degenerate way I worked on https://modules.prosody.im/mod_muc_inject_mentions.html and have been using quite successfully Haven't read about this new XEP but References worked great so far. You can't mention a group of people though, so that seems like an improvement. So many XEPs :)

  116. singpolyma

    what configs are there we imagine for participant mention? Mostly a max count one? (Of course rate limits etc are possible but this is up to the implementation of it wants all kinds of things)

  117. snit

    > I worked on https://modules.prosody.im/mod_muc_inject_mentions.html and have been using quite successfully > Haven't read about this new XEP but References worked great so far. You can't mention a group of people though, so that seems like an improvement. > > So many XEPs :) saw that the other day, thought it was really cool :D

    ❤️ 1
  118. lovetox

    The configform options need also work, Participants/Moderations/None, is a weird list

  119. lovetox

    The configform options need also work, Participants/Moderators/None, is a weird list

  120. singpolyma

    >> References was somehow both too generic and also not fit for purpose. We could change it to be just about mentions but then the other uses go away and yeah I dunno. In the wild I've only seen it used for sims and only in a degenerate way > > I worked on https://modules.prosody.im/mod_muc_inject_mentions.html and have been using quite successfully > Haven't read about this new XEP but References worked great so far. You can't mention a group of people though, so that seems like an improvement. > > So many XEPs :) How does it even work? What uri does it use for a participant?

  121. snit

    that reminds me another problem with refs is that it only specifies jid

  122. snit

    > what configs are there we imagine for participant mention? Mostly a max count one? (Of course rate limits etc are possible but this is up to the implementation of it wants all kinds of things) not sure i understand the question

  123. singpolyma

    > that reminds me another problem with refs is that it only specifies jid That was, for mentions, basically the only problem. But it's a big one

  124. singpolyma

    unless we wait for GC3 and use fulljid haha

  125. lovetox

    Disallowing mentioning users is also a bit questionable, what use case would that be?

  126. lovetox

    if a user does not want to be notified, then every user can configure their client to do that per chat

  127. singpolyma

    For unaffiliated participant in public MUC maybe

  128. lovetox

    why would a admin make that decision for all the users

  129. singpolyma

    though I'd probably just make it a count and optionally set it to zero for unaffiliated

  130. lovetox

    but why, this can be easily configured client side or not?

  131. singpolyma

    like most config stuff the implementation can do what it wants and add any new config it wants. Some people like to have examples included

  132. lovetox

    why would an admin care and make that decision for all users

  133. snit

    i mostly assumed if you want to limit one type of mention, there's probably a use-case for limiting the rest

  134. snit

    should i even bother to specify permissions, or just let implementations do their own thing?

  135. singpolyma

    you mean a client option to ignore mentions from unaffiliated in all MUCs? I guess so

  136. singpolyma

    > should i even bother to specify permissions, or just let implementations do their own thing? I always lean towards the latter but I think it's important to at least mention it's possible to do because sometimes people forget

  137. lovetox

    but this should have a discovery mechanism

  138. Kev

    > should the type attribute in reference not point to a namespace? That’s a reasonable point. The intention was not that References be exhaustive, so namespacing (Clark?) makes sense.

  139. singpolyma

    or will say the xep doesn't mention it so "didn't intend" it or other such arguments. So mentioning and providing at least one example is sane

  140. lovetox

    if a MUC strips stuff, i want to know before sending the message

  141. snit

    true it'd be nice if the client can see beforehand whether to even offer the option

  142. snit

    am i the only one getting insane lag when sending messages here

  143. Kev

    > that reminds me another problem with refs is that it only specifies jid In what sense? It allows URIs, no?

  144. snit

    is an occupant id a uri?

  145. lovetox

    you can make it into a uri

  146. Kev

    It easily could be, yeah.

  147. snit

    oh i didn't know that

  148. lovetox

    xmpp:chat@conf.server.com?occupan-id=123123

  149. Kev

    That’s a one line addition to occupant-id definitions in their XEP, yeah.

  150. Kev

    (I think it’s not there yet, unless I misremember, but it easily could be)

  151. snit

    > Mentions are a reference to a user's bare JID, and have a type of 'mention'. refs still specifically states that its a jid though so in my eyes using anything else is nonstandard or should at least be expected to be treated as such

  152. snit

    at least as-is

  153. snit

    but if its gonna be updated either way i think it makes more sense not to include mentions at all in refs, personally

  154. snit

    but if it needs to be updated either way i think it makes more sense not to include mentions at all in refs, personally

  155. singpolyma

    > is an occupant id a uri? It will be

  156. singpolyma

    Yes it would constitute enough of a change to refs that some people suggest a namespace bump. Once you're bumping namespace the benefits of reusing the same xep basically dissapear

  157. Kev

    > > Mentions are a reference to a user's bare JID, and have a type of 'mention'. > refs still specifically states that its a jid though so in my eyes using anything else is nonstandard or should at least be expected to be treated as such Fair. It allows URIs, but not for the mention case.

  158. lovetox

    Kev, see now this is a situation where one could craft a plan that has a more holistic view on how to use multiple XEPs in combination. But we would need a authority who has this view and wants to make such decisions.

    👀 1
  159. lovetox

    And the common mistake is to publish the XEP in experimental and then give recommendations. But the problem is, once the XEP is in experimental there is no real incentive for anyone to even work further on it, as its accepted on the xmpp homepage and every client can start to implement it.

  160. Kev

    I thought we had that holistic view when we did References in the first place, which I think was summit of 2016 - people were happy enough with the direction at the time, at least. Nothing much could change in a decade, right?

  161. lovetox

    because you cannot expect from authors of single XEPs, to feel responsible for some holistic plan someone recommended

  162. lovetox

    Im sure someone has a view and a plan, but this person needs to have the authority to reject XEPs as long as they dont fit the plan

  163. lovetox

    this is the point that is not happening :)

  164. Kev

    I’ve finally re-reviewed the References PR that I think you were waiting for merge, and I don’t see why it’s necessary. It does a namespace bump, and the only change is changing ‘data’ to a URI, and what we’ve done in XEPs in the past is that things defined within the XEP tended not to be namespaced like this, while things defined outside the XEP tended to be namespaced to avoid collisions.

  165. Kev

    Or am I missing something?

  166. Kev

    (Well, plus the hreflang, which seems like it should be encoded in the anchor)

  167. singpolyma

    Or use xml:lang like normal

  168. Kev

    How would that work?

  169. Kev

    Or do you mean putting an xml:lang on the reference element? xml:lang usually refers to the language of text within an element, AFAIK, rather than that sort of indirection.

  170. snit

    > I’ve finally re-reviewed the References PR that I think you were waiting for merge, and I don’t see why it’s necessary. It does a namespace bump, and the only change is changing ‘data’ to a URI, and what we’ve done in XEPs in the past is that things defined within the XEP tended not to be namespaced like this, while things defined outside the XEP tended to be namespaced to avoid collisions. its been a few weeks so i don't recall all the details, but i think the main things i saw were: * the uri is currently required, even though not all mention types need a uri or could necessarily be specified as one * the obvious redundancy of a baked-in and external mentions implementation (imo odd to bake it in when refs is otherwise so generic) * overall the update is more clear on how to extend refs in new ways

  171. Kev

    > * the uri is currently required, even though not all mention types need a uri or could necessarily be specified as one Anything should be representable as a URI, though.

  172. Kev

    > * overall the update is more clear on how to extend refs in new ways I don’t think we need a namespace bump to document how to extend.

  173. snit

    > > * the uri is currently required, even though not all mention types need a uri or could necessarily be specified as one > > Anything should be representable as a URI, though. i'm sure you can, but also like... why should i have to? it feels very arbitrary to me, personally

  174. Kev

    If we need a uniform resource identifier, it would seem odd to invent something that wasn’t a URI, wouldn’t it? :)

  175. Kev

    I’m afraid I’m vanishing AFK now.

    👍 1
  176. snit

    but we don't always need one... :(

  177. singpolyma

    >> > * the uri is currently required, even though not all mention types need a uri or could necessarily be specified as one >> >> Anything should be representable as a URI, though. > i'm sure you can, but also like... why should i have to? it feels very arbitrary to me, personally I mean... Your new xep defines URIs for the groups to mention. I was against it in this context, but obviously it's possible if there was a reason to

  178. singpolyma

    And if we were reusing a generic thing it would best sensible and could use exactly the URIs you already made up

  179. singpolyma

    so... Maybe all we need to do is remove the line from references that says a mention has to be a bare jid.

  180. singpolyma

    And define the xmpp:muc@component/occupantid syntax from gc3 formally