-
jonas’
just get snikket listed there
-
Ge0rG
I wonder how much user meta data is stored on a matrix home server. Probably the answer will be "roughly as much as xmpp"
-
!XSF_Martin
And afaik it is stored forever.
-
Daniel
They have to please their investors somehow
-
Maranda
Erm didn't Riot.im stop using Matrix? Or am I confusing with something else?
-
!XSF_Martin
I guess you are. It is their main client.
-
Zash
The flagship Matrix client even.
-
Maranda
Zash, oh sorry confused with disroot
-
Maranda
And I can't find a client which actually uses either xep 215 or 278 to fetch sturn/turn data for A/V
-
Maranda
Jitsi which supposedly should use Jingle Relay Nodes, does SRV look ups.
-
jonas’
Jitsi Meet does '215
-
jonas’
but I haven’t gotten it to actually use the results…
-
Maranda
jonas’, Jitsi Meet is a bit too much OOB for my likings.
-
Maranda
Movim uses a hardcoded list of stun services which almost never work...
-
Neustradamus
Holger: https://github.com/processone/ejabberd/issues/3229
-
Holger
Neustradamus: Do you have a client that would use this?
-
Holger
Neustradamus: E.g. the WebRTC spec explicitly doesn't support this.
-
Holger
> Jitsi Meet does '215 Only extdisco:1 though. (Dunno whether Maranda uses Prosody's mod_turncredentials which supports that.)
-
Neustradamus
Holger: I will search...
-
Neustradamus
Holger: STUN ejabberd works with IPv6?
-
Holger
Neustradamus: No.
-
Neustradamus
A ticket is needed too :/
-
Neustradamus
https://github.com/jselbie/stunserver
-
Holger
Neustradamus: Someone having time to implement such stuff is needed 🙂
-
Maranda
Holger, Metronome has mod_extdisco which supports both 1 and 2 fully (aka has support for <credentials /> queries)
-
Neustradamus
Holger: Can you move my ticket in the good repository?
-
Maranda
at least in the latest commits, also I implemented jingle relay nodes tonite.
-
Holger
Maranda: Ok. I'm still hoping they'll just update to extdisco:2 as I'm not aware of another client needing :1 and don't want to spam the code with :1 support just for Meet …
-
Maranda
Holger, tbh I didn't even take Meet in consideration as on Android it looks to be not using xmpp even, it just wants some kind of URL, didn't understand how to add a xmpp account
-
Maranda
which tells much about the UX there
-
jonas’
Maranda, yeah, the UX is pretty amazing
-
jonas’
you only need the URL to the meeting
-
Holger
Maranda: Well it's all XMPP but without roster, yes. Different use case.
-
Holger
The XMPP account is usually an anon account.
-
Neustradamus
Holger: I have listened a lot of remaks like it, in a server case "a client supports?" and in a client case "a server supports?" ah ah
-
Holger
Neustradamus: Really? I have not seen a single client developer saying that. I've seen the WebRTC guys explicitly stating they don't want it despite other STUN/TURN servers supporting it.
-
Holger
Neustradamus: If you have a link to any STUN/TURN client dev making such a statement I'd be interested.
-
Neustradamus
Holger: coturn supports it :) - https://github.com/coturn/coturn/blob/master/README.md
-
Holger
Neustradamus: I know that. That's good, no? Client devs interested in it could just use that.
-
Holger
Neustradamus: And ejabberd admins interested in offering that could just set up coturn.
-
Guus
Holger: unsure about the exact details of what you are proposing, and don't have the time to dig into it. However, breaking backwards compatibility of extdisco because "only Meet" does not sit well with me.
-
Guus
It's an older spec that we know has at least one fairly popular user. Who knows what we don't know about.
-
Guus
Apologies if my drive-by reading of this caused a misinterpretation of what you actually mean.
-
Zash
Come to think of it, why wasn't http upload made on this?
-
MattJ
Nice thought
-
Zash
Not an exact fit tho
-
Holger
Guus: https://github.com/jitsi/jitsi-meet/issues/5786
-
Guus
Holger: my point is that there could be other implementations that we don't know about. Breaking backwards compatibility should be avoided where possible, especially for XEPs that have been published a long time ago.
-
Holger
Guus: I.e. it's just about whether I should add support for an old (5 years) version of the XEP. I'll probably just submit a PR against Meet if they don't do it themselves. Less work than adding support for that old 0215 revision to ejabberd.
-
Holger
Guus: Sure, I'm all on your side when it comes to keeping existing support. ejabberd still does mam:tmp and all following revisions. But do you really implement each and every old revision of an XEP when adding a new module?
-
Guus
Holger: oh, no. I am fine with introducing new versions. I was under the impression you were suggesting incompatible changes to the xep without a namespace bump.
-
Holger
Guus: Ah, no not at all.
-
Guus
My bad, carry on. 😁
-
Holger
I'm implementing the current revision of the XEP which is 5 years old. My problem is just that Meet doesn't support this revision yet.
-
Guus
Openfire has a dead simple plugin that supported what Meet needed a couple of years ago.
-
Guus
Nothing after that
-
Guus
Iirx
-
pep.
Guus: that's a very broad comment which I generally disagree with, the backward compatibility one. https://tools.ietf.org/html/draft-iab-protocol-maintenance-04 (I thought there were more revisions)
-
Guus
We publish standards. People using them must be able to rely on some form of stability.
-
flow
pep., could you clarify with what exactly you disagree with?
-
pep.
keeping backwards compat forever and never deprecating anything because !!!
-
pep.
"some implementations might.."
-
flow
Holger, do you have an idea what damencho means with "port the changes" in https://github.com/jitsi/jitsi-meet/issues/5786#issuecomment-610921989
-
Kev
That's not the point, is it? The point is that if you implement X.Y, X.Y should not change such that you no longer interoperate, as I understand it. Which I agree with.
-
Zash
I got the impression that they had a fork of the Prosody plugin
-
Kev
It's fine to deprecate support for X.Y, but any X.Y implementations should interop
-
flow
pep., I don't see anything wrong with keeping backwards compat for a long period of time, as long as it does not block certain breaking changes in newer protocol versions
-
pep.
Kev: well that's the point, if you always keep backwards compat then the protocol never evolves
-
Kev
A given version of the protocol doesn't evole, that's kinda the point.
-
flow
what Kev says
-
Guus
I'm fine with breaking changes, but not without a new namespace to ensure that the old version remains unchanged/compatible
-
Kev
If you want to do new backwards-incompatible things, you signal that.
-
pep.
then you get things like "we should do bind2 / im-next"
-
Kev
Guus: Actually, usually a feature flag is preferable to a ns bump, IMNSHO.
-
pep.
there's still a migration in between that's required
-
Guus
Kev: sure. Some kind of identifying thing suffices
-
Holger
flow: > Holger, do you have an idea what damencho means with "port the changes" in https://github.com/jitsi/jitsi-meet/issues/5786#issuecomment-610921989 Yes what Zash says, they have a fork of the Prosody module. The upstream module supports the current revision, their fork (and their client-side code) doesn't.
-
pep.
I'm not discussing the fact that a version doesn't change obviously. just discussing the fact that x.y doesn't have to be backwards compat with x.y+1 (note that XEPs are not following semver)
-
flow
Holger, so its about changing the code to match the xep, and not bumping the xep to match the code, right?
-
Holger
flow: Yes.
-
flow
pep., obviously a namespace bumped xep protoocl is (typically) not compatible with the previous namespace protocl version
-
flow
if that's includes what you are expressing with x.y+1
-
flow
so I somehow think we me be all on the same page of the same book but written in different languages ;)✎ -
Guus
I'm thinking we're all pretty much mean the same
-
Holger
It's Sunday so we're all procrastinating to avoid family things?
-
MattJ
I think some things changed when we introduced namespace versioning
-
flow
so I somehow think we may be all on the same page of the same book but written in different languages ;) ✏
-
flow
Holger, already did my obligatory bike ride with two kids in the trailer!
-
MattJ
In the olden days, an experimental XEP just changed
-
flow
I guess there was a reason why this is no longer the case✎ -
Holger
flow: 👍
-
jonas’
MattJ, <3
-
flow
I guess there is a reason why this is no longer the case ✏
-
MattJ
flow, "I have a cool idea - we could bump the namespace every time", which seemed like a good idea (not saying it was/wasn't), but I think this also subtly shifted expectations about an experimental XEP
-
MattJ
and possibly even contributed to the laziness about advancing them
-
flow
MattJ, part of the problem is that we have to staging area for breaking changes
-
MattJ
That used to be experimental, is basically what I'm saying
-
MattJ
which is why it's called experimental, and that status has the description text it has
-
flow
Right, and I think it shouldn't be experimental because there is a reason why this is longer the case, while I think we should introduce a staging area
-
MattJ
I think in hindsight (which nobody had back then), introducing namespace versioning should have been bundled with other changes
-
flow
there is no reason we can't have stable namespaces (urn:xmpp:foo:1) and staging namespaces (urn:xmpp:foo:2-snapshot)
-
jonas’
Namespace "versioning" is also misleading IMO. There is no such thing as versions in XML namespaces. Changing the number there (in an, to the XML parser, opaque string) forks all elements to be entirely different.
-
MattJ
"Implementation of the protocol described herein is not recommended for production systems." made sense when the protocol was liable to change on the server side with no warning (same namespace)
-
jonas’
flow, but then you can’t promote 2-snapshot to 2 without touching all pieces of software, see above
-
MattJ
jonas’, shorthand for "namespace-based versioning", i.e. versioning the protocol by bumping the namespace
-
jonas’
MattJ, that makes much more sense, thanks
-
flow
MattJ, true, but that doesn't mean that it suddenly does not make sense to have that disclaimer for experimental
-
flow
jonas’, I think a sed would be sufficient
-
MattJ
Jitsi Meet is successful software using an experimental XEP in a production setting
-
jonas’
flow, go and sed all existing debian packages of $client then.
-
flow
jonas’, that would make no sense
-
MattJ
Were they wrong? They haven't suffered at all, and we're discussing how to let them get away with their choice without being burnt - i.e. protecting production implementations of experimental XEPs
-
MattJ
and if we're going to protect implementations of experimental XEPs from breaking changes, we needn't have that disclaimer
-
jonas’
flow, but then clients which implement the logic of a :2-snapshot version which is identical to :2 are unable to talk to entities only supporting :2 for no good reason.
-
MattJ
Yes, namespace bumps hurt - another thing that wasn't clear at the time, without implementation experience
-
flow
jonas’, I wouldn't expect software using -snapshot namespaces to be shipped, or at least not to be shipped with support for this explicitly enabled
-
jonas’
flow, that’s not how it works
-
jonas’
otherwise, software wouldn’t implement and ship Experimental XEPs by default
-
flow
because a -snapshot is for experimenting in an agile way with unstable protocol extensions
-
Zash
End users don't care about Experimental or not
-
jonas’
flow, but then experimentation settles down and half a year later we figure out that this is the thing we want to use in the future
-
jonas’
and then it gets promoted to :2
-
flow
you'd never would want them to be available for end-users. otherwise you would risks XMPP reputation
-
jonas’
and we can only learn that it works by deploying it
-
jonas’
and then there’s a bunch of software running on the latest :2-snapshot from that half-a-year window which is locked out for no good reason
-
jonas’
flow, I think we’d be more risking XMPP’s reputation by not having MAM, Carbons and other things which are in fluctuation rolled ou✎ -
jonas’
flow, I think we’d be more risking XMPP’s reputation by not having MAM, Carbons and other things which are in fluctuation rolled out ✏
-
flow
jonas’, experimental xeps a bump namespace on breaking changes are very different to -snapshot namespaces✎ -
pep.
> flow> so I somehow think we may be all on the same page of the same book but written in different languages ;) yes and no, it often feels like people are afraid to break anything. Not saying "break all the things!", but if there a breakage that will.make things easier/better afterwards, just do it.
-
flow
jonas’, experimental xeps with a bump namespace on breaking changes policy are very different to -snapshot namespaces ✏
-
flow
as other said, nobody cares about if it's called experimental or not
-
flow
what matters is that the protocol identified by its namespace is interoperable.
-
flow
and that is not true for -snapshot namespaces
-
Kev
> and if we're going to protect implementations of experimental XEPs from breaking changes, we needn't have that disclaimer I think it depends on the Experimental etc.
-
Kev
It's all somewhat more nuanced than the stages suggest.
-
flow
jonas’1> flow, I think we’d be more risking XMPP’s reputation by not having MAM, Carbons and other things which are in fluctuation rolled out And i never said that I want to take that away
-
flow
but we are obviously very bad at preparing new backwards-incomptabile versions of XEPs
-
jonas’
flow, you did by saying that -snapshot should not be delivered
-
jonas’
or do you honestly think that carbons in its current state wouldn’t be -snapshot?
-
flow
jonas’, I think you are reading more into it than I actually said
-
jonas’
then I must’ve completely misread 11:48:13 flow> jonas’, I wouldn't expect software using -snapshot namespaces to be shipped […] care to clarify?
-
flow
jonas’, I think there could be an upper bind in time after which -snapshot gets into a stable namesapce
-
flow
then everyone would know how long he has to get his favorite change into the new xep version
-
flow
jonas’, proposed and "accepted" changes are staged in a -snapshot namespace for x time, after that it becomes the stable namespace
-
jonas’
what if another change happens in x time?
-
jonas’
does that delay the propagation of the first change to stable?
-
flow
details we could discuss, but this basically mimics certain software development models
-
flow
but it is obvious that it should not be possible to delay a new stable namespace forever
-
jonas’
I’m not so sure that you can simply transfer software development models to standards/protocol development models
-
flow
I think you can do, we already do namespace versioning
-
flow
(obviously you can not do everything from one domain into another)✎ -
flow
(obviously you can not transfer everything from one domain into another) ✏
-
flow
but aren't xeps managed in a source code control system?
-
pep.
I think any solution based on time is naïve. We know all too well the "volunteer effect"
-
flow
pep., I am always happer to hear different better ideas✎ -
flow
pep., I am always happy to hear better ideas ✏
-
flow
and we already have a lot of time based policiy when managing XEPs, sure it does not work that well, but I think an immiment timeout caused me to take action once in a while✎ -
pep.
Not depending on volunteers only (but paying people to work on $things) :) And that's a different topic I want to expand on quickly✎ -
flow
and we already have a lot of time based policiy when managing XEPs, sure it does not work that well, but I think an imminent timeout caused me to take action once in a while ✏
-
pep.
Not depending on volunteers only (but paying people to work on $things) :) And that's a different but related topic I'd like to see started quickly ✏
-
flow
right, we could do that too. but it is not really an argument against what I suggested
-
pep.
Sure
-
pep.
Anyway I still think people are always afraid to break anything even if that would make things better and that annoys me
-
flow
I'd also like to point out that a staging area and a -snapshot version could be considered similar to how RFCs are updated: 'bis' I-Ds as staging area, and some use a reserved value that is sometimes not the same value as the afterwards released RFCs for protocol version signalling✎ -
flow
I'd also like to point out that a staging area and a -snapshot namespace version could be considered similar to how RFCs are updated: 'bis' I-Ds as staging area, and some use a reserved value that is sometimes not the same value as the afterwards released RFCs for protocol version signalling ✏
-
lovetox
hm can someone stop MattJ from bumping the namespace of the MAM XEP?
-
lovetox
just in theory
-
Daniel
everyone has a price
-
lovetox
i thought experimental XEPs are totally in the hands of the Author
-
lovetox
if he doesnt change the nature of the XEP
-
jonas’
lovetox, council can take authorship away
-
jonas’
and then they could either roll back or instruct the editor to hold the PR
-
Zash
Wasn't it to be an additional feature?
-
lovetox
i wonder because it seems all very subjective and council members seem only to really care about XEPs they care about
-
Daniel
tbh i haven’t been following the current mam discussions. but whether justified in this case or not; the amount of different MAM namespaces conversations currently supports is ridiculous
-
lovetox
Daniel but nobody forces you to support these, really if you support :1 and :2 this is already very good
-
lovetox
i hope you dont support :0 and :tmp
-
Zash
This is the price you pay for deploying Experimental XEPs :)
-
pep.
I guess paid work incentives people to support ancient tech forever
-
Daniel
i support 0; because openfire i think
-
Zash
Mmm, deployment stats would be handy
-
Zash
Current stable Prosody does only :2 unless you go for 3rd party MAM module. Similar with Carbons.
-
lovetox
yeah next Gajim version will only support :2
-
pep.
For what poezio support it's only :2✎ -
lovetox
:2 is already years old
-
pep.
For what poezio supports it's only :2 ✏
-
Ge0rG
> If the 'with' field's value is the bare JID of the archive, the server must only return results where both the 'to' and 'from' match the bare JID (either as bare or by ignoring the resource), as otherwise every message in the archive would match What's the rationale behind that in 0313?
-
Ge0rG
Was that for PubSub still?
-
Kev
Ge0rG: I don't think so, no. Every message in your archive matches your own jid for either from or to, so searching for your own jid would be useless unless it meant something else - e.g. both to and from must match.
-
Ge0rG
On a personal archive that makes sense. What about on a semi anonymous MUC?
-
Zash
Is 'with' even used in MUCs?
-
Zash
The Prosody implementation just ignores that field on MUCs
-
Zash
(actually because the internal field is overloaded and used for something else there)
-
Kev
Ge0rG: On a MUC you wouldn't be searching for the MUC's bare JID if you want a particular user, you'd be searching on full JID.
-
Ge0rG
Kev: that makes sense
-
Ge0rG
Maybe I should reword my question into: "the rationale for this should be added to the XEP"
-
Ge0rG
Also I'm confused about that custom <flip-page/> element inside a data form. Why not a boolean field?
-
Zash
Wait, inside?
-
Ge0rG
Cc MattJ
-
Zash
Not as a sibling to?
-
Ge0rG
Oh, maybe yes. I'm reading the diff by flow
-
Ge0rG
Still, my question remains
-
Zash
Because it's related to the result page, not the query?
-
Ge0rG
Also what's the benefit of defining the gone error condition over just item-not-found?
-
Zash
Huh
-
MattJ
Ge0rG, isn't the rationale for that in the XEP?
-
MattJ
:)
-
Zash
before-/after-id selects an exclusive (excluding? words?) range?
-
MattJ
Daniel, for the record, I haven't bumped the namespace in MAM. There are some additional features which have a new disco feature, which can only be advertised on top of the current one. So if you don't use those features, you don't need to make any changes.
-
Ge0rG
MattJ: the rationale for with=account? I must have missed it
-
MattJ
The rationale of <gone/>
-
Ge0rG
MattJ: yes, there is one. But is it really useful to have?
-
Zash
Doesn't gone mean the JID (you're talking to) has gone away?
-
Ge0rG
Is there any additional information for the client in it?
-
MattJ
Yes
-
Ge0rG
Threads, where are you?
-
Zash
Seems a stretch to use 'gone' for items when there's an 'item-not-found'?
-
MattJ
<gone/> means the item used to exist, and has been purged/trimmed. If you're doing full-sync MAM, that means you lost messages, and also that you should resync the full archive to catch up.
-
Ge0rG
MattJ: I need to check for two different error conditions now, but the server developers won't store all UIDs ever used anyway, so I won't ever experience that in practice.
-
MattJ
<item-not-found/> is ambiguous, e.g. if the archive was restored from a backup
-
MattJ
so with item-not-found you can't assume that the id was ever known to the server
-
Zash
Why not a custom error condition?
-
Ge0rG
MattJ: but what does that knowledge give me?
-
MattJ
Ge0rG, that resyncing the archive would potentially be a very wrong thing to do
-
Ge0rG
MattJ: and that I should do what instead?
-
MattJ
Because you'll just refetch an entire archive of messages you already have
-
MattJ
You're the client dev, you decide :)
-
Ge0rG
So I have to re-fetch the whole archive to see where the server has new data.
-
MattJ
You can page backwards instead, or do something time-based, etc.
-
Ge0rG
MattJ: but that's also what I'd do on gone.
-
MattJ
Zash, I originally did use a custom error condition. But I'm sure there is a stronger argument for re-using existing conditions where possible.
-
Ge0rG
MattJ: because you can't guarantee that I'll actually get gone as a dedicated error at all
-
MattJ
You're right that <gone/> may be misinterpreted, so a custom condition probably does make sense
-
Ge0rG
MattJ: you could help me by returning me the timestamps and IDs around the gap
-
Ge0rG
MattJ: but you don't know whether my request is for before the start of the archive or for a missing message from in between
-
MattJ
Missing messages in-between are forbidden by the XEP
-
MattJ
So if something is missing it's missing at either the start or the end
-
Ge0rG
MattJ: you can only solve that by demanding that I request an ID and the respective timestamp
-
Ge0rG
MattJ: but you just said restored from archive
-
Ge0rG
That implies there are missing messages in the middle
-
Zash
This reminds me of what I've heard of how version control things do sync
-
Ge0rG
MattJ: because after the restore there will be new messages added
-
MattJ
At some point, yes
-
Ge0rG
MattJ: yes, so I don't see the point.
-
MattJ
Well, better suggestions welcome
-
MattJ
Otherwise I can nuke any attempt at trying to provide the client some useful information about what might be going on
-
Ge0rG
MattJ: you could use the same error with an additional custom condition, but I really don't see what I can do differently in that situation
-
Ge0rG
MattJ: if a leak in the middle is forbidden, you MUST NOT restore the archive from a backup that's not a complete replica at the time of the crash
-
MattJ
differently to...? What would you do today?
-
Ge0rG
Which makes backups useless
- Zash mumbles something about pointer to previous message something something linked list
-
Ge0rG
MattJ: a full sync for 7 days or some such
-
MattJ
So you may still download 6.9d of messages you already have
-
Ge0rG
MattJ: so you suggest that I go backwards from $NOW until I encounter a known message?
-
Zash
Ask for the last message in the archive, ???, do something with that
-
MattJ
(the last message id/timestamp could be included in the error, as Ge0rG suggested)
-
Ge0rG
Zash: the last message in the archive will be from just five minutes ago
-
MattJ
(last and first?)
-
Ge0rG
The first message in the archive will be either before or after the last message the client knows about
-
Ge0rG
And that would be somehow actionable for me
-
Zash
Have the client send id of the last message it has, then the server replies with its own last message id, then you compute something magic with set and graph theory and then you're golden
-
Ge0rG
If it's before, then there is a hole in the archive
-
MattJ
FWIW my plan for bind-ng was to include the id of the first/last message in the archive already
-
Ge0rG
I want my client to store messages in the database in roughly chronological order, because ordering a table with two years of chat history is fucking slow.
-
Ge0rG
There is no way to resync that with an archive that has unknown holes.
-
MattJ
I agree, unknown holes are the enemy and are what I'm trying to prevent (as well as useless full resyncs)
-
MattJ
So I'm trying to give the client information that it can use, because a simple "it's not here" is not enough
-
Ge0rG
And a client that doesn't need to store in chronological order will just page backwards in any case
-
Ge0rG
MattJ: why not?
-
MattJ
Because it could mean you didn't sync soon enough and you missed some messages, the archive was purged, or it was restored
-
Ge0rG
Especially given that most implementations won't actually be able to tell me "your ID is too old and got wiped" anyway
-
MattJ
Ok, so I'll remove it I guess
-
MattJ
Maybe bind-ng can fill the gap instead
-
Ge0rG
MattJ: you could make it mandatory to store all IDs forever, that would make the feature useful
-
Zash
Or blockchain!!!!
-
Ge0rG
What Zash said
-
MattJ
I'm not going to make that mandatory, but there are other ways to implement this
-
MattJ
(ordered ids, for example)
-
Ge0rG
MattJ: a bloom filter?
-
Ge0rG
Ordered and encrypted?
-
Ge0rG
Timestamp plus random salt encrypted with a private key, so that the server can reverse it?
-
MattJ
Exactly
-
Ge0rG
See, it's so easy. Make it mandatory!
-
Ge0rG
Oh, also renumber all existing archives!
-
Zash
Oh glob
-
jonas’
Ge0rG, no, renumbering would be too invasive
-
MattJ
That's exactly why I didn't make it mandatory
-
jonas’
let’s just introduce another ID :)
-
Ge0rG
Also all client copies, synchronously!
-
Zash
High precision timestamp
-
Ge0rG
MattJ: just add a way to query the size of the archive
-
MattJ
The size doesn't really help
-
MattJ
unless you mean time period
-
MattJ
But I hesitate to do anything much based on timestamps
-
Ge0rG
The size can be measured in days as well
-
Ge0rG
Yeah, I understand that
-
Ge0rG
I understand the rationale now and see how you could pull it off. But would you actually do that in prosody?
-
MattJ
Potentially, yes, if it can be done in a sane way
-
MattJ
But now it may just be better to replace this all with a query that returns some metadata about the archive
-
MattJ
The first/last ids and timestamps
-
MattJ
Even more info in the hands of clients
-
Zash
Summary thing?
-
MattJ
Summary!
-
Ge0rG
Or have a multi query where the client sends its last known ID and timestamp and the server just fills up
-
Ge0rG
Smart servers, dumb clients!
-
Zash
And thus the pendulum swings
-
Ge0rG
The MAM logic for matching reflected own messages is maddening already.
-
Guus
Daniel: > i support 0; because openfire i think Openfire has 0, 1 and 2.
-
Ge0rG
Also I must filter all my local MAM ID lookups on incoming-only
-
Ge0rG
Also encrypting information into the archive UID might end up with all sorts of bad effects, if done incorrectly
-
Zash
Weren't you the one who disliked long IDs, Ge0rG?
-
Ge0rG
Zash: I still am
-
Zash
MattJ and I discussed / looked at Twitters snowflake (?) id stuff, which is a 64bit integer
-
MattJ
Ge0rG/all: thanks for the feedback, I've retracted my "ok to merge" on the PR and will prep a new version this week
-
Ge0rG
MattJ: Re with=account, > Maybe I should reword my question into: "the rationale for this should be added to the XEP"
-
Ge0rG
> Also I'm confused about that custom <flip-page/> element inside a data form. Why not a boolean field?
-
MattJ
I think both of those were answered, and now I'm on a mobile keyboard
-
MattJ
The latter isn't a filter
-
Ge0rG
MattJ: it's a kind of a filter.
-
MattJ
It's not part of the criteria
-
Ge0rG
MattJ: well yeah, I just wondered if it wouldn't be easier to re-use existing protocol
-
MattJ
For with, the reason is given in the XEP
-
lovetox
Ge0rG, that flip page thing is a bit inbetween worlds
-
lovetox
the dataform in MAM represents the filter you request from the database
-
Ge0rG
MattJ: the sentence for with doesn't even end in a full stop. I'm sure it's missing more
-
lovetox
afterwards you specify with RSM the page settings
-
Ge0rG
also "as otherwise every message in the archive would match" is not the rationale, it's just a technical explanation which doesn't enlighten why you need the feature
-
lovetox
now flip page is not part of rsm but its also not a filter
-
MattJ
It's the rationale
-
lovetox
actually in a perfect world flip-page would be in the RSM XEP, but sadly its not
-
MattJ
It's not technical, it could have not been added, and then there would be no way to search for messages with yourself
-
Ge0rG
MattJ: the rationale would be "To allow querying for messages the user sent to themselves, the client needs to set the 'with' attribute to the account JID. In that case, the server MUST only return results where both the 'to' and 'from' match the bare JID (either as bare or by ignoring the resource), as otherwise every message in the archive would match."
-
Ge0rG
"the bare JID of the archive" is weird at least for a MUC archive
-
MattJ
Potentially, yeah
-
Ge0rG
MattJ: feel free to quote that in the new XEP
-
MattJ
"the bare JID of the archive" is weird at least for a MUC archive"
-
MattJ
Ok ;)
-
Ge0rG
:P
-
dhtgh
11:28:00 PM [mysql] Attempting to start MySQL app... 11:28:00 PM [mysql] Status change detected: running 11:28:02 PM [mysql] Status change detected: stopped 11:28:02 PM [mysql] Error: MySQL shutdown unexpectedly. 11:28:02 PM [mysql] This may be due to a blocked port, missing dependencies, 11:28:02 PM [mysql] improper privileges, a crash, or a shutdown by another method. 11:28:02 PM [mysql] Press the Logs button to view error logs and check 11:28:02 PM [mysql] the Windows Event Viewer for more clues 11:28:02 PM [mysql] If you need more help, copy and post this 11:28:02 PM [mysql] entire log window on the forums
-
dhtgh
how can i solve it?
-
Zash
Hey. I'm not sure that this is the right place for that. More context needed.
-
Syndace
Can someone refresh my memory, I remember discussion regarding "messages with UI elements", like having buttons appear in the chat and sending a predefined result when clicking one of those buttons. What was the result of that discussion? Not required? Already possible with data forms?
-
Zash
https://xmpp.org/extensions/inbox/buttons.html ?
-
Zash
Syndace, basically, the result was those exact questions, to which I haven't had the energy to XEP up an answer yet.
-
Syndace
Ah yes, exactly that
-
Syndace
Alright thanks
-
Zash
There's precedent for sending dataforms in messages, tho awkward for what I was aiming for
-
Zash
Help getting that back on track would be appreciated
-
Zash
Either by figuring out if we can just shove ad-hoc commands in messages or dataforms or continue with that
-
Syndace
continue with "that"?
-
Syndace
I'm afraid I have to read a few XEPs before I can be of use here
-
Syndace
Will do though, I'd really like to see that being specified
-
Zash
Syndace: with that protoxep*
-
MattJ
I no longer work on the implementation I wanted that spec for
-
Zash
Find an excuse to do it in Snikket?
-
Syndace
isn't there also some movement regarding a (http based) bot API?
-
Syndace
I think those two things go together well
-
MattJ
Yes
-
Zash
🤖️> The build of *thing* failed. [abort] [retry] [send angry message to author of latest change]
-
!XSF_Martin
Threaten the author to not use their software!!!!elf!!eleventy
-
Zash
What you think you said. ↑ What unpaid volonteer developer hears: I will decrease your support load!!!!
-
!XSF_Martin
Win-Win. You're not getting angry about the software anymore and happy dev can program on a flower meadow enjoying life instead of doing hated support.
-
Syndace
After reading ad-hoc commands I feel like those are one level too high for XEP-buttons. ad-hoc works "synchronously" with IQs and specifies a full bidirectional interaction between an entity that offers a command and an entity that wants to use the command. I think for XEP-buttons we neither have fixed commands that entities could offer, nor should the button requests/responses be synchronous with IQs aka requiring both parties to be online at the same time.
-
Syndace
I'd rather have a way to say "please display the data form in this message somewhere inline"
-
Zash
Syndace, study this: https://xmpp.org/extensions/xep-0045.html#requestvoice
-
lovetox
Syndace, just put a form into a message
-
lovetox
if a client supports showing forms he can display them
-
lovetox
for example Gajim has a plugin that shows forms in the chat
-
Syndace
well there must be a gotcha with that, otherwise Zash's protoxep wouldn't exist?
-
Zash
Tho the buttons protoxep was more about having a list of buttons
-
Zash
Syndace, yes, how do you represent a simple button with a form?
-
Syndace
ah right, that
-
lovetox
the question is why would you need to show more than one button?
-
flow
Zash, simple button? like only one choice?
-
Zash
form's don't have any actions or such attached
-
lovetox
if you want to choose, you can show radio buttons
-
Zash
even in ad-hoc those are separate
-
lovetox
it would also trivial to add something to a form, so a client shows buttons instead of radio buttons, for single-list type
-
Zash
I had some text about this somewhere
-
lovetox
hm but that makes no sense .. you have to send the form
-
Syndace
so one challenge is buttons with forms
-
flow
I am sorry, but I don't get the issue here with forms? Are we talking about yes/no buttons?
-
Syndace
and the other challenge is specifying how the client reacts to such a form, like how the selection is responded back to the sender?
-
flow
i'd say that is specified in the data form xep
-
flow
i.e., you send the submit form back
-
lovetox
Syndace, this is already all specified
-
lovetox
we use forms everyday
-
Syndace
then please rephrase > form's don't have any actions or such attached
-
Zash
flow, do or don't forms rather
-
flow
hmm, "do or don't forms"?
-
flow
can you give an example?
-
Zash
flow, I offer you a button. You click it, or you don't.
-
flow
Zash, wouldn't that be just to submit the form or not?
-
flow
potentially with a single boolean or text-single field?
-
Zash
a single FORM_TYPE
-
Zash
+ you can have title, description
-
flow
not sure if that would work. isn't FORM_TYPE just the "namespace" of forms?
-
flow
ahh ok, with more textual content, then yes
-
Zash
How about: A form with only hidden fields
-
Zash
And you want to support more than one per message
-
Zash
so a bot can say [abort] [retry] [cancel]
-
Zash
`<x xmlns="jabber:x:data" type="form"><title>Click me</title></x>`
-
Zash
If there are fields other than hidden you'd render it as a form and like have a Submit button on it
-
MattJ
Oh no, not this discussion again
-
MattJ
Data forms don't support buttons, and clients will never implement them, and it will be a usability nightmare
-
Syndace
okay so that's why the protoxep doesn't just use data forms
-
lovetox
MattJ, i dont know what you mean by "Buttons"
-
MattJ
I know people here probably don't use other messengers much, but many of them have this feature (Facebook Messenger and Telegram for example)
-
Zash
Syndace, there was an idea about using dataforms (or anything) as payload
-
MattJ
The idea is that it's easier to send a quick predefined response to a message by tapping a button
-
Zash
Syndace, basically you get a bunch of <button>s, any xml content in those get sent back in a <click> container when clicked
-
Zash
then you use dataforms or json or whatever
-
MattJ
The use case is bots, where the possible responses are generally limited/fixed
-
lovetox
MattJ why cant i choose my response from a radiobutton selection and press send?
-
MattJ
Because clients don't (and won't) implement that
-
MattJ
and it becomes ambiguous if a client doesn't implement forms
-
lovetox
But they would implement buttons?
-
Zash
lovetox, how do you know it's a set of distinct buttons and not a form with a select dropdown?
-
MattJ
Yes, because it's far simpler
-
Syndace
> basically you get a bunch of <button>s, any xml content in those get sent back in a <click> container when clicked wouldn't that be enough already?
-
Syndace
no need for data forms if we're at that point?
-
Zash
Syndace, for what?
-
Syndace
To make a client display buttons and get a response when one is clicked
-
MattJ
lovetox, are you really going to add inline data form rendering? and do you think other clients will? To this day none of the mobile clients support data forms
-
Zash
xep rejected by council, I've no energy to spend on that, ???, nothing
-
lovetox
The problem im having with this is, thats is very very simple XEP that people want to extend, and then you basically add to it and add to it, until you have dataforms
-
MattJ
Adding a list of buttons above the text entry is relatively easy compared to an arbitrary sized form containing any kind of possible widgets
-
Syndace
agreed, I think data forms is "too flexible" here
-
MattJ
This won't be added to, because it does just one very simple well-defined thing
-
lovetox
until one wants to add something really simple to it
-
MattJ
Then we reject *that*
-
lovetox
like a multi-text field above the buttons to send text
-
MattJ
Why reject the initial proposal?
-
MattJ
Yes, multi-text would indeed be crazy
-
lovetox
its perfect reasonable, why cant i type a comment before i press the button and send that with?
-
MattJ
Another argument against forms :)
-
Zash
MattJ, I think someone asked for a protoxep that described the form approach, as comparison, and that's not been submitted and probably won't be unless someone (not me) does it
-
Syndace
Even if a very simple use-case emerges that is later added to the buttons-only XEP, that's still much better than forms and all the confusion that comes with forms edge cases
-
Zash
`<button><{my-special-protocol}payload/></button>`
-
Zash
there you go
-
MattJ
I think the people who rejected it probably have no experience of other messengers or why this feature is useful
-
MattJ
Data forms would be pointless bloat
-
Zash
MattJ, even if you specified a restricted subset to be treated as a simple button?
-
MattJ
If I ever do need to implement this feature, I just intend to implement the protoXEP
-
MattJ
If you did do that... *why?**
-
MattJ
It's 100% pointless, and makes more work
-
Zash
Dunno, reuse of namespaces
-
SamWhited
marc: are you still maintaining XEP-0401? Can you ping me (JID/email as your prefer: sam@samwhited.com) if so? I'd like to chat about integrating it with IBR2
-
lovetox
because i already have a dataforms impl
-
MattJ
The point of the buttons is that they map to plaintext user responses
-
Syndace
(or xml)
-
MattJ
lovetox, you already have a pubsub impl too, so... let's use that!
-
Zash
And an ad-hoc iml!
-
Zash
How about we ship a disco#items ad-hoc command list in a message?
-
MattJ
SamWhited, as an active user of a "variant" of XEP-0401, I'm interested in such discussions
-
Zash
If all commands are single-step and form-less then they're equivalent to buttons
-
SamWhited
MattJ, Zash: I just submitted a revamp of 0389 which I would appreciate feedback on (it's a little messy and hard to follow right now, so I may make a few changes before it gets merged): https://github.com/xsf/xeps/pull/929
-
SamWhited
If marc and I chat I'll CC you into any discussions
-
Zash
Ge0rG might also be interested (and now mentioned)
-
SamWhited
Was just chatting with him too :)
-
Zash
👍️
-
SamWhited
I want to figure out the maintenance status of XEP-0401 first and if we can get the existing PRs merged, then maybe we can start a discussion about adding an IBR2 challenge type into it
-
lovetox
i already see the horror, people write bots that send you buttons to lead you step by step through some process
-
Zash
lovetox, like memberbot? :)
-
Zash
Imagine getting buttons for quick answers instead of typing yes / no
-
lovetox
im not question that there is a good use case for the button xep
-
lovetox
voting is definitly one
-
lovetox
i just fear, because all clients implement it, for what people abuse it then
-
Ge0rG
It will be awesome!
-
Syndace
how do forms prevent abuse?
-
Zash
How do you prevent *any* abuse?
-
Ge0rG
SamWhited: you've seen https://yaxim.org/blog/2020/01/31/yaxim-0-dot-9-9-fosdem-edition/ and the video in it?
-
lovetox
Syndace, forms are made so you can make .. Forms of any size and kind
-
lovetox
so i dont see how you can abuse such a non specific use case
-
SamWhited
Ge0rG: TL;D(Watch)?
-
Ge0rG
SamWhited: live demo of cross client 0401 with ASCII art QR code
-
Syndace
wait can you not search the mail archives
-
Zash
inpossiburu
-
Ge0rG
Syndace: download the mbox file and search locally
-
Ge0rG
Maybe we should kindly ask gmane. Is that still a thing?
-
Syndace
found it by checking the dates surrounding the protoxep last update date
-
Syndace
but meh 😀
-
Zash
Hm
-
Zash
https://logs.xmpp.org/council/ is also a good resource
-
Syndace
love how the presence spam is logged
-
Zash
Hysterical raisins.
-
Zash
You should see the stuff logged by the original MUC logger implementation.
-
pep.
> lovetox> i already see the horror, people write bots that send you buttons to lead you step by step through some process yeah imagine people doing ad-hoc (bot commands) with buttons! just like they're doing bot commands with messages atm :p not sure if it'd be an improvement.
-
Zash
Syndace, there's a checkbox somewhere that lets you hide joins and parts
-
lovetox
Also everyone can see in a MUC what you voted
-
Syndace
joins and parts? 😀 oh boy, my internet language is lacking behind
-
Syndace
like, thread joins/parts?✎ -
Syndace
like, mail thread joins/parts? ✏
-
Syndace
oooh joins as in presence spam, sorry
-
pep.
yeah it has to be pretty clear that votes are public, otherwise we're gonna get more users complaining we're not respecting their privacy!!
-
lovetox
Maybe one can send the answer as PM
-
Zash
Syndace, https://logs.xmpp.org/council/2018-12-12?p=h#2018-12-12-f53055662532f142
-
Syndace
thanks, still busy with the mails tho
-
Syndace
the feedback on the mailing list seems to mainly be "but then people want more features and we end up with data forms!!11!!"
-
Syndace
tedd had some actual feedback regarding details about the behaviour but that's really just missing because the protoxep is minimal and could be added without a lot of discussion
-
pep.
Zash: I also take advice for representing buttons in my terminal
-
pep.
Syndace: ^
-
Syndace
don't
-
Syndace
buttons are just a more convenient way to send a fixed string
-
pep.
:P
-
Syndace
not supposed to be funny 😀
-
Zash
tab completion
-
Syndace
that's what the spec is currently
-
Zash
there, done
-
Syndace
true
-
pep.
Zash: that's meh
-
Syndace
1: yes 2: no 3: maybe >
-
pep.
you'd need to indicate first that you're doing buttons somehow (which one of the 3 last buttons messages that were sent?)
-
Syndace
that's one of the behavioural details that are missing. but that's not a reason to reject the protoXEP, the rule would probably be as simple as "only do button stuff for the most recent message"
-
pep.
though i give you it's a common issue in terminal stuff. So tab won't fix it
-
Zash
[yes] [no] [abstain] [maybe] [nuke it from orbit]
-
pep.
Syndace: why?
-
Syndace
simplicity and telegram 😀
-
Syndace
you also don't have to worry then to which button-message an answer corresponds
-
pep.
ah so we're Inn the business of reproducing telegram now? :)
-
Syndace
yep!
-
pep.
I thought it was WhatsApp and Slack until today
-
Zash
Are we not in the business of absorbing everything from every communications protocol?
-
pep.
in*
-
Syndace
> do we wanrt to open the can of worms what the "last message" is again? 🙂 is "last message" an issue for XMPP?
-
pep.
is it the one I sent with this device or any device? maybe? even though that's been specified iirc?
-
Syndace
also for buttons only incoming messages are relevant
-
pep.
sure, m'y message above was just answering yours directly✎ -
pep.
sure, my message above was just answering yours directly ✏
-
Syndace
ok, that was a quote from the discussion on buttons
-
pep.
ah ok
-
Syndace
Done reading. I think most of the feedback is fine and can be fixed/clarified in the protoXEP. The question of Simple Buttons vs. data forms is obviously the biggest issue, but I think by clarifying that the buttons are just shortcuts to send quick fixed-string responses that question can also be answered.
-
MattJ
I'd dearly love to see this pushed through
-
MattJ
I'm starting to realise that a big problem is people not understanding the use case
-
Zash
As council member and author of that protoxep, I would be happy to see that move forward as well.
-
lovetox
So in a MUC i press the yes button and then i see my "yes" appear as reflection in the MUC
-
lovetox
does that work this way also in Telegram?
-
SamWhited
Maybe rename it "Quick Replies" and then the use case will be more obvious?
-
Zash
Sure. Probably wasn't smart to imply some specific UI for it.
-
SamWhited
Android has this as a feature. It's some AI driven nonsense that tries to predict what you might say based on the context of the message, but if they have an API to manually manipulate them I can see Conversations or something setting them to use ones included in the messgae instead.
-
pep.
MattJ: that's not impossible. I wouldn't be surprised though if somebody proposed something slightly more advanced such as "send reply and attached justification" (dumb exemple) and it got refused because "you can already do 90% of this via xxx"
-
Zash
FWIW I was also studiying the stuff in Slack which is somewhat more advanced than just quick replies.
-
pep.
SamWhited: yeah that's quite annoying
-
Zash
pep., arbitrary text string reactions?
-
Zash
suggested reactions?
-
pep.
Zash: suggested replies
-
SamWhited
pep. I really like the idea, it just never has any useful replies for me
-
MattJ
A rename sounds sensible
-
pep.
often I fear I'm gonna hit them instead of what I want to do
-
Syndace
the question how this works in muc is justified though
-
MattJ
What's the question?
-
Zash
Is the answer Hats?
-
MattJ
Usually
-
pep.
no
-
MattJ
Hats XEP is nearing the top of my XEP to do queue!
-
pep.
everyone can see your "votes" lovetox noted
-
Zash
(THREAD: Hats) Hats + Security labels + filtering. Get to it!
-
SamWhited
I feel like I've asked this before, but "Hats"?
-
MattJ
Yes, like they can see anything you type
-
Syndace
yeah probably no question here actually
-
MattJ
SamWhited: maybe known as "badges" in other systems?
-
pep.
MattJ: yes but "votes are private!!" something
-
Zash
SamWhited, https://xmpp.org/extensions/xep-0317.html
-
SamWhited
ahh, right
-
SamWhited
Thanks
-
MattJ
SamWhited: but we've had them way longer, just nobody really cared until now to implement and finish the XEP
-
MattJ
pep.: I really don't understand
-
Syndace
yeah no, private votes are not covered by this and that's it
-
Zash
So would you really do that kind of quick reply thing in MUCs then?
-
MattJ
Why not?
-
Zash
It Depends™
-
Zash
If you do voting, then closed voting would need to work differently.
-
pep.
is this really supposed to be quick replies? is the string actually sent as a message or what?
-
MattJ
Yes
-
pep.
uh
-
Zash
Unless you wanna replace the response with some XML blob
-
MattJ
See? Nobody understands
-
SamWhited
Please don't replace the response with some XML blob. I also didn't understand before, but now that I do I really like the idea and want to use it :)
-
MattJ
Zash, maybe it would be worth sticking some in-reply-to stanza-id just because?
-
Syndace
but clients that don't support buttons wouldn't set in-reply-to
-
pep.
MattJ: just that I don't see the use-case at all
-
Zash
(Hat: Council) Can someone please write a XEP about `<in-reply-to by="jid" id="stanza-id"/>` ?
-
SamWhited
If there were some in-reply-to stanza-id or <thread> or attach-to or something clients could special case it to just show a counter on the original message or something if they support it, which would be nice
-
pep.
votes made a bit more sense
-
MattJ
Syndace, there is the Slack-like use-case which is also interesting, where you maybe don't want/need to send a text message, but perform some action
-
Zash
Adhoc/forms might work better for that
-
MattJ
so a simple "this button was clicked" payload is enough to trigger the bot to do something
-
MattJ
Zash, too many taps
-
MattJ
You can't ad-hoc on a message
-
SamWhited
Also this has a nice fallback behavior for clients that don't support adhoc/forms (which I suspect is almost none). In Mcabber I can happily type "yes" or whatever.
-
Zash
MattJ: Offer of ad-hoc commands in a message?
-
MattJ
SamWhited, exactly
-
Zash
OR A MUD
-
Ge0rG
Just use Emoji reactions for voting
-
Zash
GO WEST
-
MattJ
Zash, and then it gets way more complicated, and what if the command is multi-step? Ugh.
-
eta
Zash, YES
-
eta
MUD in XMPP when
-
MattJ
eta, over a decade ago
-
MattJ
You had to be there
-
Zash
You were eaten by a grue.
-
Zash
(the heck is a grue?)
-
MattJ
I made a MUC^Hd component, it was great
-
eta
MattJ, is the source somewhere
-
eta
MattJ, I will run this
-
MattJ
It's around, but likely too embarrassing to point you to
-
Syndace
I kind of lost track, MattJ do you want the slack-like use-case to be covered or did you just note that it exists?
-
eta
MattJ, I have a low tolerance
-
eta
or a high one
-
Zash
Syndace, should probably be separate from the quick reply thing
-
eta
whichever it is :P
-
MattJ
I think it was hosted on some forge that no longer exists
-
eta
ah
-
MattJ
But I think I have it in backups
-
Syndace
Zash agreed
-
MattJ
Syndace, Zash: but it's the same UI...
-
MattJ
and essentially all the same business rules
-
MattJ
Just one sends a body, and one does not
-
Zash
MattJ: Not quite, not if you wanna clone it. Slack lets you do full on forms IIRc.
-
MattJ
I don't particularly want to clone it
-
Syndace
hmm, one needs client support that probably has to be discovered, the other is just plain text
-
MattJ
No, it doesn't have to be discovered if you're fine with it being optional
-
MattJ
and discovery in a MUC would be a nightmare
-
MattJ
So this is an optional shortcut thing
-
MattJ
(and that's exactly how it gets used in Slack)
-
Syndace
okay I'm not farmiliar with the slack buttons, can you give an example please?
-
MattJ
e.g. a PR notification in a MUC has a merge button. But you could also open the link and click the merge button
-
Zash
`<action>[ <body/> | <{jabber:x:data}/> | the json xep </>`
-
pep.
I guess I can just not implement it in poezio then, that simplifies UX issues.
-
Syndace
ah, so quick link-click in addition to quick response? 😀
-
pep.
unless now you add a different meaning to it
-
Syndace
or wait, merging is quite specific and probably needs slack to "understand" git?
-
MattJ
Syndace, it's just handled by bots
-
MattJ
Slack doesn't understand any of this
-
MattJ
The bot posts a message in a Slack room, when a user clicks a button, the bot gets informed about that
-
MattJ
(there is some fancier stuff too, but my goal is not to fully clone Slack)
-
Syndace
you could define the quick response button to send /merge or !merge on click, if the bot understands that?
-
MattJ
This is a really simple feature that would make such a nice UX improvement
-
MattJ
Yes, you could
-
MattJ
I would just rather keep the body optional, so I can make the decision as a bot author
-
Zash
MattJ, specify reply payload as either text or Some XML Stuff™, bot decides, click sends that.
-
Zash
Cry in i18n for a while, done.
-
MattJ
I don't even care (much) about arbitrary XML stuff, just include <button-clicked id="id-of-button"/>, and if there was a body associated with that button, include that too
-
MattJ
But I should stop talking about buttons
-
pep.
and now that you've mentioned hats, I'm also curious what UI for that would look like in a terminal..
-
Zash
pep., mouse support exists :P
-
pep.
Zash: what about it (and no!)
-
MattJ
<quick-response id="id-of-response"/>
-
Zash
whatabouti18n?
-
MattJ
What about?
-
Syndace
I'm sorry I still don't get the difference 😕 You want to notify the bot about the click directly instead of sending a plaintext message to the chat?
-
MattJ
Isn't all this in the XEP already?
-
Zash
Yes
-
MattJ
The XEP is what I want
-
MattJ
The end
-
MattJ
I don't see what's so complicated
-
MattJ
Client receives a message with a list of associated shortcuts/actions/quick-replies. Client renders them potentially as buttons. Each button has an id, and an optional body text.
-
Ge0rG
You could respond as a PM.
-
MattJ
If the client supports rendering these, and the user selects one of them, then a message is generated containing the response's body text (if any) and <quick-response id="id-of-selected-response"/>
-
MattJ
Why?
-
MattJ
Why complicate things?
-
Ge0rG
Also your MAM implementation will drop the responses with no body
-
MattJ
You're in a chat, it's a response to a message in that chat, why would you send it elsewhere?
-
Ge0rG
Because O(n²)
-
MattJ
?
-
Ge0rG
When everyone responds to everyone
-
MattJ
What?
-
Zash
Same problem as with reactions?
-
MattJ
That's an argument against group chats of any kind?
-
MattJ
I'm responding to you right now, is that O(n²)?
-
Syndace
both an id and a payload in the click response probably doesn't make sense: either you listen for the id, then the payload is pointless, or you listen for the payload, then the id is pointless
-
MattJ
By "payload" you mean a text body, right?
-
Syndace
yeah
-
Ge0rG
Syndace: it's useful if you share the room with legacy clients
-
MattJ
It serves as a fallback for legacy clients at that point, or bots implementations that don't care for id tracking (which may be many)
-
MattJ
If you had a voting bot for example in a meeting in a MUC, you would totally want +1/-1 to appear in the chat logs
-
MattJ
But there are more ephemeral actions that you wouldn't care so much about
-
Syndace
ah okay so just to have clients supporting the XEP not spam plaintext
-
Syndace
sounds good
-
MattJ
Yes
-
pep.
where is the written "+1" if your support the xep
-
MattJ
pep., ?
-
pep.
implemented and understood by the log writer?
-
MattJ
It's in <body>, it's understood by everyone (I hope)
-
pep.
not sure I understand the following then > ah okay so just to have clients supporting the XEP not spam plaintext
-
MattJ
That's for the case where there is no plaintext equivalent
-
MattJ
The +1/-1 example was a case where you do want it to go in the logs and include a <body>
-
Syndace
oh okay, then my initial question still stands: why would you want _both_ and id and plaintext?
-
pep.
so if there's a body a client must always include it?
-
MattJ
I don't see it's as entirely necessary, it just feels like a neater protocol/implementation
-
MattJ
pep., yes
-
Syndace
it's like you send "+1" and there is an XML element that says "this is a +1!"
-
MattJ
Syndace, an example would be if there were multiple messages and the id can be used to resolve ambiguity. But that's a stretch (because you'd need to handle non-button responses anyway)
-
MattJ
But it seems sensible to have some machine-readable semantics underneath if it's known, rather than throwing that context away
-
Syndace
To me it would feel weird if the same visible message has different effects under the hood
-
Syndace
as in, a message that has both the plaintext and the id is treated differently then a message that only has the plaintext
-
Syndace
anyway, I'm happy that we have consensus on where this XEP should be going and I'd like to see it revived with the results of that discussion
-
MattJ
What exactly needs to change from what was previously submitted?
-
MattJ
If we can identity that, and who is going to write it up, we're good
-
MattJ
And don't have to revisit these discussions yet again in another year :)
-
Syndace
it should be renamed and the use case should be clarified, the id added and maybe clarification regarding i18n and when exactly to show buttons
-
MattJ
Sounds good. You/Zash want to tackle it? Or I'm happy to otherwise. I'm currently in a spec-writing sprint so I can tack it onto my queue if necessary
-
Syndace
Maybe it's time for my first XEP, also as training for Master Key (tm)
-
Syndace
If Zash doesn't want it, I would do it
-
Zash
Feel free to take over or add yourself as co-author :)
-
Syndace
cool 🙂
-
MattJ
Excellent :)
-
Zash
<hat:council> I'll review it for you tho ;)
-
Zash
MattJ, hats!
-
MattJ
Coming soon
-
MattJ
After I finish MAM
-
Maranda
I'm not sure what I did change that made Movim merrily start doing 0215 queries
-
pep.
Maranda, https://github.com/movim/movim/commit/ce299e038c321c932441722885746efc3b3cedd2 ?
-
pep.
Maybe you haven't changed anything
-
Maranda
pep., huhu and edhelas put it live on NL right away :O?
-
pep.
Sure
-
edhelas
:3
-
Maranda
:D
-
edhelas
too fast 4 u
-
Maranda
still I'm not sure why the call fails from my laptop to the other one, but not viceversa
-
Maranda
(using two different account)
-
Maranda
would be interesting to know what it does trample on