jdev - 2025-04-18


  1. lovetox

    i wonder if servers remove also all corrections of a message from MAM when processing moderate/retract requests

  2. lovetox

    would be amazed if they do, but i very much doubt it

    πŸ‘€οΈ 1
  3. lovetox

    its probably hard to search in stanzas for correction elements if they dont parse this out into its own column beforehand

  4. singpolyma

    Would make getting the message history hard then

  5. lovetox

    i dont mean remove, i meant replacing with a tombstone

  6. moparisthebest

    They are supposed to with retract

  7. lovetox

    for the original message yeah, i very much doubt someone thought about corrections

  8. lovetox

    and i assume its hard for a server to find corrections, lots of logic is necessary, you cant just filter for some id

  9. singpolyma

    > i dont mean remove, i meant replacing with a tombstone That seems bad so do on an ordinary retract

  10. badrihippo

    If a retraction is just "add tombstone on top" won't it take care of message corrections too?

  11. badrihippo

    Latest correction would override previous corrections, and in turn be overridden by the tombstone

  12. badrihippo

    Oh the server would need to know to remove it all though (from history) if that's thow it's doing it

  13. singpolyma

    Visually in a client yes. The question is if the server should be erasing history from mam

    πŸ‘πŸΎοΈ 1
  14. singpolyma

    Generally I consider mam immutable

  15. singpolyma

    Or append only I should say

  16. badrihippo

    Don't messages get removed from MAM when moderation takes place?

  17. singpolyma

    that's MUC MA.

  18. singpolyma

    that's MUC MAM

  19. badrihippo

    Ah so you're only talking about direct MAM here

  20. singpolyma

    Moderation you need to remove even though it's kinda gross because of the potential for illegal content etc

  21. badrihippo

    If you don't remove retracted content from direct MAM, won't it lead to more situations where a "retracted" message is still displayed when a client doesn't support it?

  22. badrihippo

    Whereas if we remove it server-side it'd only affect clients that were online at the time of receiving the message (and before the retraction happened)

  23. singpolyma

    That's true if the client already got it anyway. And a client may want to provide a menu to show the original content also

  24. badrihippo

    So are we aiming for a Fediverse like thing where edit history is always available?

  25. badrihippo

    I suppose it helps, to set expectations given we can't guarantee someone's client respects retractions

  26. singpolyma

    I think different projects have different interests πŸ™‚

  27. badrihippo

    I suppose it helps to set expectations, given we can't guarantee someone's client respects retractions

  28. badrihippo

    Fair

  29. singpolyma

    Indeed. Someone can always modify their client to not respect on purpose anyway and it helps set expectations exactly is my preference personally. Of course other apps will do different things and that's fine

    πŸ‘πŸΎοΈ 1
  30. badrihippo

    Out of curiousity, if we *did* decide to remove them server side, would it mess up OMEMO to have some messages suddenly missing?

  31. badrihippo

    i.e. is OMEMO dependent on order or does it work even if we skip a bunch of messages along the way

  32. qy

    order-independent

  33. badrihippo

    I see

  34. Cynthia

    qy: i disagree

  35. Cynthia

    OMEMO uses double-ratchet so i would think the order of messages does matter in that case

  36. Cynthia

    because if some messages went missing, the key derivations would be out-of-sync

  37. badrihippo

    What if the messages have a serial number so you know how many times to rotate the key in advance even if the other messages haven't come in yet?

  38. badrihippo

    (Disclaimer: I have only a very vague understanding of how the algorithm actually works)

  39. lovetox

    Cynthia, omemo can skip messages that is no problem

  40. lovetox

    and also its not "if we decide to remove them", moderated messages *are* replaced by a tombstone, all content of the message is removed by the server

  41. lovetox

    this is as intended by the xep, same goes for retraction, a moderation is just a retraction from the MUC it self with some more metadata, it all is based on the same spec

  42. lovetox

    the only argument i see why servers dont remove corrections is, because its probably technically hard to do.

  43. singpolyma

    Moderation and retraction aren't really the same. There is a single retraction tag used as a child in moderation and honestly you could just remove it and nothing would change

  44. singpolyma

    I think it's there in case we never invent a second kind of moderation

  45. moparisthebest

    >> i dont mean remove, i meant replacing with a tombstone > That seems bad so do on an ordinary retract singpolyma: i mean thats what the xep says to do anyway

  46. lovetox

    how are they not the same?

  47. lovetox

    they are technically, exactly the same

  48. lovetox

    the server does the same thing, the client does the same thing

  49. lovetox

    its just the person that issues the retract is not the same person that wrote the message

  50. lovetox

    also, you are kind of wrong about the child thing. Yes for whatever reason the message sent by the user, its moderate -> retract on all messages issued by the server its the other way around

  51. lovetox

    moderation is just a special case of the retract XEP, that adds stuff like occupant-id, nickname who moderated

  52. singpolyma

    > the server does the same thing, the client does the same thing One is a message one is an IQ the client definitely doesn't do the same thing

  53. lovetox

    how is this relevant

  54. singpolyma

    It's relevant because the syntax is different, the user intent is different, and the result in an app certainly can be different.

  55. lovetox

    please elaborate

  56. singpolyma

    Retraction is a message from a user that says to another user "hey pretend I didn't send this" Moderation is a command from a moderator to a MUC that says "remove this thing someone else said we don't want it here"

  57. lovetox

    and? both lead to removing the message from MAM, as the XEP defines

  58. moparisthebest

    Or you can look at it like: either a mod or the sender saying: "hey pretend that wasn't sent"

  59. singpolyma

    moparisthebest: it's different though because the mod doesn't tell participants to pretend it wasn't sent. They tell the MUC

  60. singpolyma

    It's a command to the server so of course the server removes it

  61. lovetox

    as it is with retract

  62. singpolyma

    vs just a message the server is relaying that rn experimental xep claims ought to cause a side effect maybe

  63. singpolyma

    vs just a message the server is relaying that an experimental xep claims ought to cause a side effect maybe

  64. moparisthebest

    No, in both cases they tell the muc who tells everyone else

  65. singpolyma

    There's no MUC

  66. singpolyma

    With retraction

  67. lovetox

    of course?

  68. lovetox

    what do you think, a MUC rejects a retract message?

  69. moparisthebest

    Sometimes there is a muc sometimes not

  70. singpolyma

    Well it could use that's not the case we're we're talking about

  71. moparisthebest

    Whats this discussion even about? Lol

  72. lovetox

    i asked if the server removes corrections, after it removes the original of the retracted message

  73. singpolyma

    If servers should remove messages from your local MAM history based on routing a message to you with a retraction tag

  74. lovetox

    thats not a question

  75. lovetox

    thats what the XEP defines and happens already

  76. lovetox

    the Question was, if it should tombstone corrections for that already removed message

  77. singpolyma

    You say some server has an implementation of that behaviour?

  78. singpolyma

    I've not seen one

  79. moparisthebest

    The server can remove retractions per the xep

  80. lovetox

    ok then no server supports the XEP yet, this is still not relevant to the discussion, think of it in theory if a server supports the XEP

  81. singpolyma

    Hopefully we can remove that part from the xep πŸ™‚

  82. lovetox

    or to get the discussion again on track, ignore retractions, and lets talk about moderation

  83. lovetox

    as you accepted that messages are removed there

  84. moparisthebest

    Same

  85. moparisthebest

    > Hopefully we can remove that part from the xep πŸ™‚ Seems silly, the XEP has a very good explanation of why the server should

  86. singpolyma

    > or to get the discussion again on track, ignore retractions, and lets talk about moderation Yes probably needs to go in security considerations for the moderation xep

  87. moparisthebest

    https://modules.prosody.im/mod_muc_moderation.html says it does tombstones sometimes

  88. lovetox

    singpolyma, his argument was, that no server does it for retractions

  89. lovetox

    IQ in single chat would be not effecient, because you need to tell the other user anyway, and the IQ would not be routed to the user

  90. lovetox

    so message makes more sense

  91. lovetox

    also there is enough precedent that messages execute actions on the server

  92. lovetox

    e.g. message hints, no-carbon, no-store etc

  93. moparisthebest

    > singpolyma, his argument was, that no server does it for retractions Ok? So no server should ever do anything that no server yet does? Seems silly lol

  94. lovetox

    i think the argument was, everybody agrees that this part of the XEP is bad, thats why no server implements it

  95. moparisthebest

    Citation needed

  96. lovetox

    im not saying it is that way, i say, i think that was the implied argument

  97. lovetox

    but yeah, thats actually the first time i hear that someone questions that part of the XEP

  98. moparisthebest

    Yea I'm responding to that argument not you

  99. lovetox

    its totally my intent to remove the message from the server if i retract it

  100. lovetox

    if that will not happen, then we need an additional xep that does exactly that

  101. moparisthebest

    Seems right

  102. moparisthebest

    With muc, the server, with 1:1, both servers *

  103. lovetox

    puh can of worms :D

  104. lovetox

    that will not happen

  105. moparisthebest

    Always :)

  106. lovetox

    actually thats kind of a flaw if the remote server does not remove it ..

  107. Zash

    moparisthebest, would you consider it a vulnerability if an abuser can send an abusive message and then retract it after it has been seen?

  108. lovetox

    he removes his own abuse, thats ... nice

  109. moparisthebest

    I mean thats up to the victims client i guess ?

  110. lovetox

    i think the question was meant from a perspective of the remote server

  111. moparisthebest

    Always been possible though, i can send a link then remove etc

  112. Zash

    stuff will always be possible, therefore it's okay?

  113. singpolyma

    > I mean thats up to the victims client i guess ? And server if the server is doing this thing

  114. Zash

    anyway, at least Prosody doesn't implement server-side retraction becasue we just haven't gotten around to it yet

  115. lovetox

    i think someday somekind of archiving preference setting would be nice "respect remote retractions"

  116. moparisthebest

    sure, all you can do is ask for remote parties to delete it, they may or may not

  117. Zash

    is it asking if all compatible software complies?

  118. Zash

    is it useful if compatible sofware does not comply?

  119. Zash

    or, maybe s/useful/expected (by users)/

  120. moparisthebest

    I think it's asking unless DRM is involved

  121. moparisthebest

    XMPP over HDCP

  122. lovetox

    for client side my plan was, to have a time-based setting, and after that time retracted messages get really removed from the database

  123. lovetox

    and until then you can click the message and show it and have the option to keep it forever

  124. lovetox

    what do you think about that?

  125. Zash

    so if I send you my secret password I can't rely on retracting it? UNACCEPTABLE CRITICAL SECURITY VULNERABILITY!!!! probably

  126. lovetox

    hm the option to delete a message locally is always there, user would not need to wait for the cleanup

  127. lovetox

    singpolyma, does cheogram do retraction?

  128. lovetox

    i ponder if i should include the fallback text ..

  129. singpolyma

    We accept inbound retraction but our retraction menu item sends LMC instead

  130. lovetox

    why that? because of better backwards compat?

  131. singpolyma

    Partly yes. And partly because I prefer the protocol

  132. lovetox

    why? both sends a message and references the other message

  133. lovetox

    Also there is no notion of deleting the original message in LMC

  134. lovetox

    in Gajim you can always look at the original message, it would also not accept LMC for older messages (altough i may change that at some point)

  135. lovetox

    all in all, problems over problems, if you try to build on LMC, its also only backwards compatible if a client allows to correct older messages, if not its equivalent to what the retraction spec does now

  136. lovetox

    also you throw all server assisting out of the window because a server cannot even detect that its a retract

  137. singpolyma

    Gajim was accepting LMC for older messages. Did that get changed again?

  138. lovetox

    hmmm

  139. lovetox

    you are right, we accept all corrections

  140. lovetox

    so i did this change already :)

  141. singpolyma whew

    πŸ˜‚ 1
  142. lovetox

    outgoing we only allow the last one, right now

  143. lovetox

    but i intend to change that aswell at some point

  144. singpolyma

    We changed it recently (for outbound) based on user demand and gajim support

  145. qy

    > singpolyma whew πŸ˜‚

  146. lovetox

    ok, we really should more talk, i had no idea, if i dont know what other clients do, i maybe get a smart idea and remove something again :D

  147. lovetox

    so message retraction MR is 90% complete, with the next version retracts will start to flow :)