XSF Discussion - 2023-01-18


  1. Daniel

    An unavailable presence from the bare jid should mark all resources as unavailable. Is this also true for error presence?

  2. Daniel

    Probably not since I can't find anything explicit in the rfc about that?

  3. jonas’

    good question

  4. Zash

    It Depends?

  5. jonas’

    from bare JID, probably, from full JID, no idea

  6. Zash

    Also consider the `<error by=>`

  7. larma

    I noticed that the current compliance suites lists some experimental XEPs. I don't think this should be possible with our current official position on what XEP status means

  8. MattJ

    Daniel, I don't know if I'm right, but my instinct says "yes" - I can't think of any cases where "error" isn't practically equivalent to "unavailable"

  9. Peter Waher

    How do you send from a BareJID? The BareJID corresponds to the account (on the broker), which sends no presence by itself, while the Full JID corresponds to the connection the client has with the broker. The clients sends unavailable as a graceful shutdown.

  10. MattJ

    it certainly doesn't mean "available"

  11. MattJ

    Peter Waher, the client can't send from the bare JID, but their server can

  12. Zash

    Peter Waher: e.g. bounced probes

  13. Peter Waher

    aha

  14. Peter Waher

    a “bounced probe”, what does that mean?

  15. Peter Waher

    Meaning the server has no information?

  16. Daniel

    yes error == unavailable probably. but I was confused because the rfc has explict wording for unavailable

  17. MattJ

    It could happen to probes if there are s2s failures or policies preventing you sending to that user, etc.

  18. Daniel

    but doesn’t seem to have it for error

  19. Daniel

    instinct wise (or logically) i would agree though

  20. Daniel

    it probably rarely happens

  21. Daniel

    i mean error presence from bare are frequent (failed probes) but you hadn’t receive available presences then before the error one

  22. Kev

    A client shouldn't receive a presence error from a bare JID most of the time, but sub request/approvals could cause it, and might not mean unavailable, it might just be a subsecond S2S glitch or whatever.

  23. Daniel

    you get them if you enter non existent stuff into your roster, no?

  24. jonas’

    larma, yes, but here we are, I gues.

  25. Kev

    > you get them if you enter non existent stuff into your roster, no? I'd hope you don't do that most of the time, but yes, probably :)

  26. Peter Waher

    3. Else, if the contact has no available resources, then the server SHOULD reply to the presence probe by sending to the user a presence stanza of type “unavailable” (although sending Saint-Andre Standards Track Pₐgₑ ₅₃ RFC 6121 XMPP IM March 2011 unavailable presence here is preferable because it results in a deterministic answer to the probe, it is not mandatory because it can greatly increase the number of presence notifications generated by the contact's server). Here the 'from' address is the bare JID because there is no available resource associated with the contact.

  27. MattJ

    Kev, while I agree it might not mean that the JID is actually offline, from the perspective of an observer receiving the error, I think they ought to be treated pretty much the same

  28. Kev

    I think you can argue either way convincingly.

  29. MattJ

    Some clients (Gajim, for example) have/had a dedicated error status, which was visible in the UI

  30. MattJ

    I found that useful, personally

  31. larma

    jonas’, well, I'd also argue those are controversial. Push notifications and Jingle Message Initiation. JMI was already on 2021 and since received major changes and still has major changes pending in PRs.

  32. MattJ

    I haven't closely been following JMI, but drastic breaking changes at this stage concern me a lot

  33. MattJ

    Hearing that Monal can only call Monal is sad

  34. Daniel

    tbf when we added JMI to the compliance suite it seemed more stable than it is now

  35. Daniel

    but that's an argument to remove it this year i guess

  36. MattJ

    Maybe it was necessary, but I'd like to hear that there was absolutely no way to maintain backwards compatibility with everyone who already implements it

  37. Kev

    For the compliance thing, I think you end up with three choices: 1) Don't reflect reality because XEPs are Experimental that maybe shouldn't be 2) Reflect reality and have Experimental XEPs in the suite 3) Require that the author of the year's compliance XEPs also pushes through everything getting out of Experimental I can see why (3) doesn't garner a lot of interest from the relevant people :)

  38. Daniel

    making a general policy to not have experimental xeps in the compliance suite is sadly not realistic imho

  39. Zash

    Separate compliance suite into a Vision and a Current State document?

  40. Kev

    Of course, XEP statuses being appropriate is a good goal, but when it's not the case and you want a compliance suite, that's where you end up with.

  41. Daniel

    but on a case by case basis we might choose not to put them there

  42. Daniel

    or remove them again

  43. MattJ

    Well, it would have prevented this situation if we'd advanced JMI before adding it to the compliance suite

  44. MattJ

    Council approval or a new XEP would have been required instead

  45. MattJ

    or, some other solution to whatever became necessary to update in the new revisions

  46. Daniel

    > Maybe it was necessary, but I'd like to hear that there was absolutely no way to maintain backwards compatibility with everyone who already implements it the current latest NS bump was not necessary at all imho

  47. Daniel

    the upcoming group stuff are probably a different issue tho

  48. Daniel

    Zash, we already have a "keep an eye on …" section

  49. MattJ

    Just practically speaking, we had to add the JMI namespace to Prosody's CSI as a prioritized payload

  50. MattJ

    There is about to be a Debian freeze with this namespace in, and it will be in many Prosody installations for years to come

  51. Zash

    Pretty sure I added the new JMI namespace ages ago

  52. Zash

    Precisely to avoid that scenario

  53. MattJ

    Is there only one new one? or is another coming?

  54. Zash

    Are there more than 2?

  55. Daniel

    there is :0 which is what most clients use

  56. Daniel

    there is :1 which is what monal uses

  57. Zash

    https://hg.prosody.im/trunk/file/0.12.2/plugins/mod_csi_simple.lua#l72

  58. Daniel

    and then there may or may not be another one that adds group logic to it

  59. Zash

    Ha, year ago! https://hg.prosody.im/trunk/rev/1c47162dd965

  60. larma

    > Council approval or a new XEP would have been required instead For the large changes still pending in PR proposed by me, I originally proposed to create a new XEP for that but Council decided it should go into existing JMI instead

  61. larma

    Combining the two policies "new stuff should be merged into old stuff if it fits the topic" and "old stuff should not have large changes" is inherently problematic. We need to decide for one. I personally don't care which one, but I see how this is blocking progress in XMPP.

  62. MattJ

    I don't see right now that it's blocking any progress - but I agree we should have some understanding of what our preferences are

  63. MattJ

    JMI was a widely implemented and deployed XEP that has been updated with breaking changes, and that's not ideal

  64. MattJ

    I don't know what the solution is, since I haven't even studied the changes that were made in this case, but I feel like "re-use existing XEPs that cover a topic" was perhaps too strongly applied here

  65. larma

    argubly, one can perfectly run JMI in dual compatibility mode

  66. larma

    just like many clients support multiple versions of MAM

  67. MattJ

    I don't know if thilo.molitor hasn't done that in Monal because it's not feasible, or just because he only wants to support the latest version (but I'm curious)

  68. MattJ

    At the end of the day I don't really care about the namespace or XEP number used, but about fragmenting stuff unnecessarily

  69. MattJ

    and a fragmenting change is being introduced here, with Monal incompatible with other calling-capable clients (of which we now have a good number)

  70. MattJ

    If people start updating to the new version only, it's only going to get worse

  71. MattJ

    If everyone agrees to support both in parallel, everything is fine

  72. MattJ

    (for a transition period, at least)

  73. Daniel

    I agree that rejecting call invites was a mistake

  74. MattJ

    I think the XEP number/namespace only comes into the issue because people might look at the latest XEP version and think that's all they need to or should be implementing

  75. Kev

    > At the end of the day I don't really care about the namespace or XEP number used, but about fragmenting stuff unnecessarily In practice, does it make a diffference if a breaking change is in an existing XEP or a new one? You fragment either way.

  76. MattJ

    If JMI had advanced to Draft, we'd rejected breaking changes and put them in a new XEP, the transition would be easier from that perspective

  77. Kev

    It's as easy to put a note into an existing XEP saying "Version X was widely deployed as of 2009, you might want to support that too" as it is into a new XEP saying "XEP-X was ..."

  78. MattJ

    The compliance suite would continue to recommend JMI (with a note that it was being replaced) and the new one in "Advanced" or something

  79. MattJ

    Kev, sure, but then the compliance suites should probably clarify the version number(s) people are expected to implement :)

  80. Zash

    Revert https://xmpp.org/extensions/xep-0353.html#revision-history-v0.4.0 and retroactively accept call invites XEP?

  81. Kev

    In most cases I don't think that's needed, but in this one I don't think it would be stupid.

  82. Kev

    The suite saying "While we expect deployment of X.Y to pick up, currently X.Y-1 is more widely deployed" seems helpful to me.

  83. Kev

    The suite saying "While we expect deployment of X.Y to pick up, currently X.Y-1 is more widely deployed, you probably want to support both" seems helpful to me.

  84. larma

    regarding transition period: Dino already uses the "next" version of JMI (the one in my PR) in production, but will only use it outgoing for multi-party calls that are unsupported by old/current JMI (but we still accept the next version incoming for 1:1-calls for future compatibility)

  85. MattJ

    I don't much care what solution we go with, as long as we don't end up with a repeat of what happened with file transfers 10-15 years ago

  86. MattJ

    The roll-out of calls to the ecosystem has been pretty successful so far

  87. larma

    Which for me comes as a surprise considering how broken everything is 😀

  88. Daniel

    using 'Call invites' for multi party calls and 'jmi:0' would have been a very sane solution imho

  89. Zash

    larma, I suspect everything is horribly broken beyond comprehension if you look closely enough

  90. Daniel

    using 'Call invites' for multi party calls and 'jmi:0' for 1:1 would have been a very sane solution imho

  91. Zash

    larma, so, you've probably looked closely enough 😀

  92. larma

    Zash, to be precise, I don't consider 0166, 0167 or 0176 terribly broken (the old things for calls), just about everything else that was added for WebRTC compatibility.

  93. Zash

    Web = Bad confirmed! 😁️

  94. Zash

    larma, are those things I approved while on Council because people well-versed in Jingle said it was good? 😕

  95. Zash

    larma, are those things I voted for while on Council because people well-versed in Jingle said it was good? 😕

  96. larma

    Not sure, sometimes they are also just badly implemented because they XEPs literally come with no business rules

  97. Zash

    Tho the things that were just "this thing from SIP / SDP" must have had some rules from their RFCs?

  98. larma

    Jingle is not SIP/SDP

  99. larma

    Jingle has features that do not fully translate to SDP

  100. larma

    Or at least there is no XEP on how they translate

  101. stpeter

    The goal of Jingle was never a bug-for-bug translation of SIP/SDP into XMPP.

  102. Zash

    I feel like I saw something that was basically "here's how to turn this SDP property into XML for Jingle", but can't find now.

  103. Zash

    Maybe it was some PR to an existing XEP then

  104. Zash

    or https://xmpp.org/extensions/xep-0293.html ?

  105. larma

    Some parts do translate.

  106. larma

    XEP-0166 literally asks XEP that build on top to specify if and how they translate to SDP

  107. larma

    XEP-0166 literally asks XEPs for application formats that build on top to specify if and how they translate to SDP

  108. stpeter

    Most of the Jingle stuff was done very early on (before webrtc) and since then a few things were added, mostly by me and Fippo. There are a number of challenges here. This stuff is hard and messy, you need to know a lot about how voice and video works in the real world (Fippo is a world-class mind on this stuff), even the experts disagree and get it wrong sometimes, SDP is incredibly ugly, even the vast majority of webrtc implementations just use what Google hands them in libwebrtc (for interop reasons), etc.

  109. larma

    XEP-0338 has the funny line "Note: the identification-tags correspond to the <content/> 'name' attributes. These in turn map to the 'mid' attribute in SDP." - however, nowhere was ever specified that the content name attribute map to SDP mid attribute

  110. larma

    stpeter, yes, I totally see that. That's why Jingle has largely degraded to "translate between XML and SDP and do whatever libwebrtc would do with such SDP"

  111. stpeter

    nod

  112. larma

    which is increasingly hard if you don't actually use libwebrtc or SDP

  113. larma

    (speaking as a Dino dev here who did exactly that)

  114. larma

    which is probably also the main reason why I'm the only one complaining 😀

  115. Daniel

    larma: and you are probably the only one in the 'new generation' of jingle a/v devs who understands the issues.

  116. stpeter

    Yes, very much so. As I said, even companies running huge voice and video service like Facebook and Zoom just use the Google library. When I was at Mozilla, I had conversations with a number of these companies and they didn’t like this state of affairs but even they weren’t motivated to put in the enormous amount of energy needed to fix it.

  117. Daniel

    Everyone else just knows how to get libwebrtc working (which is complicated enough)

  118. Daniel

    I guess what I'm saying is that I trust you when you say it's broken. I'm willing to fix it. But I don't have the indeepth knowledge required to fix it

  119. larma

    And I guess that's a problem in itself. Because I'm far away from perfectly understanding everything so I'm struggling to even propose changes to what's out there (also many of it is already stable)

  120. larma

    But I think we'd add great value to the open protocol ecosystem if we'd specify things beyond "do what libwebrtc does"

  121. larma

    We'd probably already do great if we'd just *document* that behavior

  122. emus

    Mid of month - Newsletter time! ✉️ Add your news since dec 2022: https://github.com/xsf/xmpp.org/milestone/3 https://yopad.eu/p/xmpp-newsletter-365days

  123. stpeter

    I don’t want to discourage you, but fixing this situation is a big mountain to climb.

  124. stpeter

    And I’m afraid I won’t be of too much help because I’m focused on non-tech pursuits these days.

  125. stpeter

    Speaking of which, I’m going back to work on another project now, bbl.

  126. moparisthebest

    Also "what WebRTC does" changes by release, and isn't documented

  127. moparisthebest

    The only constant seems to be "write your software in C++ so you can have a steady stream of vulns'

  128. thilo.molitor

    > I don't know if thilo.molitor hasn't done that in Monal because it's not feasible, or just because he only wants to support the latest version (but I'm curious) Its not feasible, because :0 jmi messages won't get into mam, thus incoming calls could get lost (bad ux)...:1 solves this...and while I'm all in for temporary solutions I won't implement :0 if it becones permanent solution with nobody ever implementing :1...

  129. thilo.molitor

    I don't know exactly why I bumped the namespace back then, but certainly nobody told me "I won't implement :1 because of the ns bump" back then...and given that we did this sort of "support multiple namespaces of a protocol for some time" multiple times in the past (mam for example), I was under the impression the ns bump would not be a problem...

  130. MattJ

    thilo.molitor, :0 messages do get into MAM, right? That's how current clients show things like missed calls

  131. thilo.molitor

    I see two ways forward now: revert the xep to :0 and do the minimal set of changes needed to make it reliable (mam, carbons)...maybe even add the tie breaking stuff and the finish element (better ux), if they don't require a namespace bump...OR implement :1...

  132. Daniel

    Yes they get into MAM. Conversations shows missed calls and even calls that took place on other devices (while Conversations was offline)

  133. Daniel

    The latter w/o duration because the lack of a finish element. But that element could have been added without a bump

  134. MattJ

    MAM is an example of a spec where we intentionally avoided bumping the namespace after it had received wide adoption

  135. MattJ

    It was still experimental, but we added new stuff behind a second disco feature

  136. Daniel

    Yes it's a judgment call every time

  137. flow

    we added that new stuff behind a second disco feature because it was possible to do so

  138. Daniel

    Jingle ft didn't handle that great either

  139. flow

    that is not always the case

  140. thilo.molitor

    It gets into mam? Jmi messages have no body and there is no exception to put that into mam regardles, no?

  141. Daniel

    Just add a store hint

  142. Daniel

    That's what the hint is for

  143. tmolitor

    the store hint is exactly one of the things I added in the :1 version...

  144. tmolitor

    yeah, you can add the store hint whenever you like, but if it isn't specified somewhere that becomes some sort of tribal knowledge with some clients adding it and some don't...

  145. flow

    thilo.molitor, namespace bumps are always an additional effort and come with certain disadvantages (like fragmentation), they are just from the protocol perspective not an problem

  146. Daniel

    You are allowed to add it everywhere. And adding a recommendation to jmi that a store hint is recommended does not require a bump

  147. tmolitor

    flow: yeah...maybe I was a bit naive back then...but then again I wished someone had explained to me that the namespace bump would likely prevent adoption...

  148. tmolitor

    yeah I know...this single thing does not require a bump...but I added some more useful things (tie breaking, usage of carbons instead of manually sending out stanzas to all known full jids etc)

  149. flow

    well, once stuff is implemented and works, the incentive to add support for a new namespace, let allone support multiple namespaces, goes next to nothing

  150. Daniel

    > well, once stuff is implemented and works, the incentive to add support for a new namespace, let allone support multiple namespaces, goes next to nothing It depends

  151. Daniel

    I have supported sm:2 until a month ago lol

  152. Daniel

    And I support three jingle ft

  153. MattJ

    Ok, well, afaik :1 is not implemented beyond Monal. So maybe we can work out a new XEP version with the :0 namespace that includes additional stuff (that existing clients can incrementally add) and hopefully there isn't too much work for Monal beyond switching to :0

  154. tmolitor

    to be honest I don't like the current state of affairs....and it's fine by me if we just remove all my changes (even though I find them really useful) and just add a mam store hint...

  155. Daniel

    But yes once a xep has some adoption regardless of state extra caution should be put into bumping a namespace

  156. tmolitor

    > It depends yeah, and nobody told me that jmi :1 is on the wrong side of this "it depends"

  157. Daniel

    I think some changes are good and can easily be applied w/o the bump

  158. tmolitor

    > I think some changes are good and can easily be applied w/o the bump then let's sort it out what changes can be applied without bump :)

  159. MattJ

    tmolitor, that's partly my fault, because I remember thinking it at the time, and I guess I didn't speak up

  160. Daniel

    Or in fact I might even think all changes are good but with more care to the Syntax the could have been applied w/o bump

  161. Daniel

    Or in fact I might even think all changes are good but with more care to the Syntax they could have been applied w/o bump

  162. tmolitor

    is there a rendered version of v0.4

  163. tmolitor

    never mind...

  164. tmolitor

    found it

  165. Daniel

    Like the proceed to accept renaming can not be done o/c

  166. Daniel

    But I think we can quietly phase out accept

  167. Daniel

    The old accept

  168. tmolitor

    okay...naming does not matter that much imho...

  169. Daniel

    Yes exactly

  170. tmolitor

    what about using/relying on carbons instead of manually sending the accept message to all known full jids?

  171. tmolitor

    https://xmpp.org/extensions/attic/xep-0353-0.3.1.html#accept

  172. Daniel

    That's what I meant by quietly phasing out the old accept

  173. Daniel

    Even with jmi:0 clients can parse the carbon copied proceed

  174. Daniel

    And Conversations does that

  175. tmolitor

    okay good...

  176. tmolitor

    same goes for all the other messages (reject etc.)

  177. tmolitor

    adding the finish message should not need a namespace bump either...

  178. Daniel

    Like maybe leave a note about accept previously being a thing to get around lack of carbons so new implementors aren't totally confused about a seemingly unnecessary element

  179. Daniel

    > adding the finish message should not need a namespace bump either... Yes

  180. flow

    fwiw, which change(S) exactly motiviated the jmi namespace bump?

  181. tmolitor

    flow: I'd be glad if I would recall that...I guess it was the renaming of some of the elements??

  182. flow

    fwiw, which change(s) exactly motiviated the jmi namespace bump?

  183. Daniel

    Motivated dunno. But the renaming of proceed to accept made it syntactically necessary

  184. flow

    and that renaming was motivated by?

  185. flow

    I whish there where a rendered diff somewhere…

  186. Daniel

    Accept is unnecessary (that's correct). And accept is a cooler name for proceed

  187. Daniel

    That's the entire motivation

  188. Daniel

    Lol

  189. Daniel

    Not on purpose I guess. But in the end that what it boils down to

  190. flow

    ok, so now we have a nice example of when to not bump ;)

  191. Daniel

    Yes. Absolutely not blaming anyone but that's probably a bit of lack in experience and nobody else catching it

  192. flow

    or, rather, when to not rename an element just for the name

  193. flow

    right, I did not want to put blame on anyone, just tyring to understand as I did not follow JMI closely in the last months

  194. tmolitor

    I'm not 100% sure the accept renaming was the only thing that warranted the bump...could be that it was only a side effect of the bump (e.g. allowing the renaming to happen)...

  195. flow

    right, I did not want to put blame on anyone, just trying to understand as I did not follow JMI closely in the last months

  196. tmolitor

    flow: *last years (the jmi update was done more than a year ago)...

  197. Daniel

    Sure. It might be that I'm missing something

  198. flow

    well, the good news is that if the rename was the only reason to bump, then it is easy to "revert" the bump

  199. Daniel

    Last year is days in xsf time

  200. tmolitor

    and yes...it was my first xep and thus it may well be I've lacked some sort of experience...

  201. Daniel

    We have reverse dog years here

  202. flow

    uh right, nov 2021

  203. flow

    I somehow read 2022 in the commit date

  204. tmolitor

    Daniel: :D

  205. tmolitor

    suggestion: I do a pull request undoing the renaming and namespace bump but keeping everything else and everyone checks if this is okay and nothing more required the namespace bump...

  206. Daniel

    That's probably a good start. Not sure it will work out but that's how I'd start

  207. Daniel

    (instead of starting with the old version)

  208. flow

    in any case, we should probably consider bumping to :2 if good reasons to bump come up in the, potential far far, future

  209. tmolitor

    yes

  210. tmolitor

    okay...I'll do the PR then :)

  211. tmolitor

    I think having a html diff between 0.3.1 and 0.4 would be good to double check on the ns bump issue...but I'm not sure how to create that...

  212. flow

    hmtldiff

  213. flow

    is what I use

  214. flow

    works good enough, even for sligthly larger xeps

  215. Daniel

    If you have a quasi 0.4 implementation in Monal and lower the namespace you can do interop testing with Dino and Conversations and that'll be a real world and whether or not this works out

  216. tmolitor

    Daniel: good idea :)

  217. Daniel

    Something like Conversations will (right now) obviously ignore finish but the only downside of that is that MAM is lacking the call duration

  218. tmolitor

    yes, exactly

  219. tmolitor

    but not even that: the xep requires both parties to send finish, but one finish is enough to get the timestamp...(this was to make sure we still have a timestamp in mam even if suddenly one of the devices did a reset/low battery etc.)

  220. tmolitor

    okay...I've changed monal to use the :0 namespace now...let's see what happens if I try to call Conversations :D

  221. tmolitor

    ah well...I've not yet implemented the jingle stuff (I'm just passing around sdp data using IQs for now)...but well...at least my conversations started ringing :D

  222. MattJ

    A good discussion was had here tonight :)

  223. tmolitor

    one that moves xmpp forward, yes :)

  224. edhelas

    0060 question

  225. edhelas

    https://xmpp.org/extensions/xep-0060.html#publisher-publish-success-publisher

  226. edhelas

    Is this implemented ? Is it the only way to get the publisher of an item on a node ?

  227. edhelas

    That would close a big security issue for Movim as someone can easily publish an article as someone else

  228. edhelas

    I'd like to have pubsub service to actually tell me who published the item

  229. edhelas

    Holger do you know how is it handled in ejabberd ?

  230. MattJ

    It's supported in Prosody, behind a config option

  231. edhelas

    Ah !

  232. Zash

    Privacy implications

  233. MattJ

    expose_publisher

  234. edhelas

    That would be nice to add a per node configuration in 0060 directly

  235. MattJ

    If someone wants to publish to a public node, they don't always want their JID leaked

  236. MattJ

    But yeah, it would make sense as a per-node option, like MUC

  237. edhelas

    Yeah but for social network and commenting actually it makes sense :)

  238. edhelas

    Looks like I'll have to do a PR on 0060 😬

  239. edhelas

    MattJ Zash do you know if the publisher are also returned when doing a disco#items on the node ,

  240. edhelas

    ?

  241. MattJ

    There's no any place to put it there, is there?

  242. MattJ

    It's returned in a "get items"

  243. MattJ

    the XEP-0060 one

  244. edhelas

    https://xmpp.org/extensions/xep-0060.html#publisher-publish-success-publisher

  245. edhelas

    Ah yes indeed its there

  246. edhelas

    "If configured to do so the service"

  247. Holger

    edhelas: Seems ejabberd includes the attribute if the `itemreply` config option is set to `publisher`.

  248. edhelas

    So looks like its a service based configuration, not node based, so Prosody nailed it

  249. Holger

    edhelas: I *think* that's what "configured to do so" refers to.

  250. edhelas

    Ah, let me check

  251. edhelas

    So tonight I discovered something in 0060, after 10 years of working with it

  252. edhelas

    https://media.tenor.com/j1rz6ft8tTsAAAAC/ratatouille-meme.gif

  253. MattJ

    You'll still be discovering stuff in 2033 :)

  254. edhelas

    Holger indeed with itemreply to publisher I do have the publisher in return \o/

  255. edhelas

    So lets put that as a default and ensure that they are handled and displayed :)

  256. Holger

    It's not like I was aware of that, I had to check the code of course :-)

  257. edhelas

    I'm sure 0060 is evolving based on ejabberd code

  258. edhelas

    I see no other explanation

  259. moparisthebest

    They say everytime you turn away from 0060 a new thing appears

  260. Zash

    Don't blink!

  261. root

    https://upload.nicolosus.chat:5281/file_share/sRSCEoXL804-5CnPkNbyQuDs/queen-doctor-who.gif