XSF Discussion - 2023-07-05


  1. cal0pteryx

    For example if you're in a public muc

  2. Link Mauve

    “12:22:03 lovetox> as people dont have thousands of bookmarks”, citation needed. :p

  3. Link Mauve

    Although I only have 245 of them true, not thousands.

  4. Zash

    And the hard limit is 256, and nobody can ever have more. QED

  5. Link Mauve

    I thought it was max. :o

  6. pep.

    Re read state sync, yeah chat markers and receipts aren't good solutions because they're meant for other accounts in the chat, not you. Using them for this is but a workaround and ignores all people who don't want to share this kind of info

  7. pep.

    Re read state sync, yeah chat markers, receipts and chatstates aren't good solutions because they're meant for other accounts in the chat, not you. Using them for this is but a workaround and ignores all people who don't want to share this kind of info

  8. MattJ

    FWIW I'm planning to work on this stuff before the end of the year

  9. lovetox

    Link Mauve: And I consider you a heavy user

  10. mathieui

    you can always call your edge cases "Link Mauve" and not be wrong

  11. Link Mauve

    ^^'

  12. Kev

    FWIW, we're working on these things for Swift/M-Link at the moment.

  13. MattJ

    Kev: based on existing XEPs, or...?

  14. Kev

    Right now we're just looking at putting last-read IDs into a PEPish node.

  15. Kev

    But for standardisation, I really want to tell the server what has been read, and for it to then do unread counts for me.

  16. Kev

    But for standardisation, I really want to tell the server what has been read, and for it to then do unread counts for the client.

  17. pep.

    But the client would still be provided with an id right of the last message right?

  18. pep.

    But the client would still be provided with an id right of the last read message right?

  19. Kev

    Yes, you need that.

  20. singpolyma

    Server can read the pep node to provide such summaries for thin clients if desired

  21. Kev

    But the client can do that on its own without server cooperation (beyond supporting MAM). Getting unread counts though either means polling MAM for every contact or server cooperation.

  22. pep.

    Yeah ok. For my TUI use-case I don't really mind not having a read count

  23. pep.

    Yeah ok. For my TUI use-case I don't really mind not having a unread count

  24. pep.

    Yeah ok. For my TUI use-case I don't really mind not having an unread count

  25. Kev

    Even not a count, but a flag that there are unread messages, is hard to do without server co-operation (or fully polling all chats through MAM)

  26. pep.

    My client is almost always live :P

  27. pep.

    (even though it has MAM support)

  28. Link Mauve

    pep., then this doesn’t apply to you, but many users of TUI clients do want to know when they have new messages and from whom.

  29. Link Mauve

    Currently if I start poezio in local, it won’t open any chat if I have another client which received the offline messages, and that’s not good.

  30. MSavoritias fae.ve

    yeah unread markers is kind of a must have feature for multi clients usage

  31. lovetox

    you mean read :)

  32. lovetox

    the problem is not that clients dont show unread messages

  33. lovetox

    they show potentially messages as unread which were already read on another client

  34. Kev

    Well, both. Currently clients show both too few and too many unread messages, within the same client :)

  35. MattJ

    lovetox: as I understand it, Gajim doesn't do a full sync so it would benefit from this, no? Otherwise how do you currently determine which conversations have unread messages?

  36. lovetox

    how can you show to few unread messages? this is not the protocols fault, its probably your decision as client to not use the tools available for whatever reason

  37. lovetox

    MattJ, yes we do a full sync with the account archive

  38. lovetox

    i dont really understand the reasoning behind not doing a full sync with an account archive

  39. lovetox

    it cointains only messages you wrote and people sent to you

  40. lovetox

    as long as you are not britney spears, a guess a full sync is a matter of seconds

  41. lovetox

    as long as you are not britney spears, i guess a full sync is a matter of seconds

  42. Kev

    Don't forget the archives for every MUC you're in.

  43. Kev

    Those have unread messages too.

  44. lovetox

    im not forgetting them i excluded them for the discussion as MUC is a special situation

  45. lovetox

    of course nobody wants to do full syncs with MUC archives, not sure if good solutions exist

  46. singpolyma

    Still want to do full sync with MUC except the first time, usually

  47. singpolyma

    Unless it's a thin client

  48. Kev

    If you're a total knowledge client.

  49. Kev

    Right.

  50. lovetox

    maybe occupant-id and replies can help the server to detect messages, but apart from that .. i see no real solution for this problem

  51. lovetox

    on a new MUC Gajim syncs the last 24 hours

  52. lovetox

    from that point on Gajim does a full sync, except the time offline goes over a user defined limit

  53. lovetox

    for private MUCs (which are small normally) Gajim defaults to full sync

  54. lovetox

    for public MUCs Gajim defaults to 1 day

  55. lovetox

    but the user can change this with a per MUC setting

  56. lovetox

    but it feels not like the same problem as read markers

  57. lovetox

    this would basically be solved if i could do a IQ to the server that says, give me stanza-ids which someone mentioned me?

  58. lovetox

    is that the definition of "unread" here?

  59. lovetox

    because normally i define as unread, all messages while i was offline, not just one where i was mentioned

  60. MattJ

    You want both really (are there unread messages? Are there mentions?) because they are both useful but will result in different UI and notification behaviour

  61. lovetox

    but with mam there i a "count" query already

  62. lovetox

    i can simply let it give me the count from now, back to the last stanza-id

  63. lovetox

    and this gives me my unread messages

  64. MattJ

    Not quite

  65. lovetox

    if i can get a read marker from another client, i simply do a count to that one

  66. lovetox

    why not? this should work

  67. lovetox

    apart from the standard saying that no server needs to return correct results :D

  68. MattJ

    First, that will count outgoing messages from your other clients as unread, it will also count typing notifications, read markers sent by the other party, etc.

  69. lovetox

    true forget about that :/

  70. lovetox

    and with omemo full stanza encryption the server could not even determine anymore what is a text messages or not

  71. MattJ

    I planned to put some logic in the server to determine if a message should count as unread, but OMEMO also causes problems for that approach

  72. MattJ

    Yep

  73. MattJ

    Honestly I'm leaning towards just putting that info outside any encrypted layer. It leaks one bit of information that most people won't care about anyway (compared to being told they have unread messages when they don't - a situation that already happens on Siskin and Snikket iOS)

  74. MattJ

    If we had a time machine it would have been wise to use the type attribute for this I think

  75. MattJ

    Anyway, with that solved things like Inbox and Prosody's mod_map (https://modules.prosody.im/mod_map) become much more useful

  76. lovetox

    but how would a read marker play into that with MUC archives

  77. lovetox

    my read marker will problaby not be in the MUC archive

  78. lovetox

    or the MUC Archive will not know about it

  79. MattJ

    MUCs are of course special, but XEP-0437 already does something for this

  80. MSavoritias fae.ve

    possibly stupid question but: why cant we send a message id to the server of the last message that was read by the user? regardless of client and muc/mix/pms whatever

  81. MattJ

    With the configuration I used in a production deployment of that, the MUC would receive read markers but not broadcast them, then use that info to determine which messages were unread

  82. MSavoritias fae.ve

    and that is stored until next time the person checks messages

  83. lovetox

    of course the muc could store that info

  84. MattJ

    MSavoritias fae.ve: that sounds like the earlier "store it in PEP" discussion

  85. MSavoritias fae.ve

    right.

  86. lovetox

    its basically a JID -> stanza id key / value store

  87. MSavoritias fae.ve

    sorry still learning xmpp here ^^

  88. MattJ

    The official tagline of the XSF

  89. MSavoritias fae.ve

    heh. so putting outside the encrypted layer you mean that marking if its a message or not?

  90. MattJ

    Yeah, basically if it's a message that should be counted as 'unread'

  91. MSavoritias fae.ve

    yeah. thats a solution to the encryption problem not the unread though is it?

  92. MSavoritias fae.ve

    although it makes the logic easier

  93. MSavoritias fae.ve

    for the client

  94. MattJ

    I think you're assuming the client has already done a full sync of archive. In that case, yes, throwing some IDs in PEP and syncing those would be enough

  95. MattJ

    But there is also a desire to solve the problem for clients that don't do a full sync

  96. MattJ

    Those clients ideally have a way to ask the server what unread messages there are

  97. MSavoritias fae.ve

    and get only the unread. yeah makes sense that way

  98. MattJ

    Exactly

  99. MattJ

    This is already a problem, for we send out push notifications to iOS clients for encrypted messages that may not contain any body (such messages are used in OMEMO for syncing session state), so having that information would solve that too

  100. MSavoritias fae.ve

    yep

  101. MSavoritias fae.ve

    but why cant we use the type attribute for it?

  102. singpolyma

    We can't. But we don't

  103. singpolyma

    We can. But we don't

  104. singpolyma

    Almost everything is type=chat now

  105. MattJ

    I dare you 😉

  106. MSavoritias fae.ve

    xmpp: extensible but not really 😮‍💨

  107. MSavoritias fae.ve

    more like unchanging though here 🤔

  108. MattJ

    Even if we standardized a new type that means "this is not a user message" it would be more than a decade before running clients stopped using it

  109. MattJ

    (Stopped using type chat, I mean)

  110. MattJ

    We still have clients on the network that don't send unique stanza ids

  111. MattJ

    Still, it could be something worth considering for XMPP 2.0

  112. MSavoritias fae.ve

    agreed

  113. MSavoritias fae.ve

    im not saying we should do it tomorrow. but i would still like some long term proper solution to this.