-
MSavoritias (fae,ve)
> pep.: > Wasn't that one of the proposed ways to do spaces edhelas: moxxy the android client also will havn spaces in the next release. https://codeberg.org/moxxy/moxxyv2/pulls/185
-
jonas’
there is no spaces XEP, is there?
-
Menel
Isn't this just Client UI?
-
MSavoritias (fae,ve)
No. But the ecosystem seems to be moving regardless :)
-
qy
so gajim has spaces?
-
qy
cause it does that
-
qy
it's not a protocol thing, it is just ui
-
Menel
It has... If that means grouping contact and mucs
-
MSavoritias (fae,ve)
Yes. Its just not a xep so it can be shared across clients✎ -
MSavoritias (fae,ve)
Yes. Its just not a xep so it cant be shared across clients ✏
-
MSavoritias (fae,ve)
Plus some other stuff
-
qy
my problem is just that that means this > Isn't this just Client UI? is a yes
-
qy
(not a no)
-
qy
unless you were replying to jonas’
-
qy
hm, an avenue where threads would make for nice disambiguation
-
MSavoritias (fae,ve)
Yeah threads are needed
-
qy
cheogram has just implemented them, i think it's a reasonably decent use of the xep, although (maybe a problem for jdev) maybe it would make sense to have each unthreaded message start a thread, and have the ui render single message threads as not significant, i.e. gray or similar, until someone replies. in that way it's like the "in reply to" thing common in all newfangled chat systems, but less intrusive, and naturally more useful than the current implementation
-
MSavoritias (fae,ve)
The only sane threading system i have seen is in briar or element. It says right under the message there are replies in that message with a number. And you tap on the message to open a seperate screen where it renders the thread. Anything else is too chaotic imo
-
jonas’
zulip was nice, too
-
jonas’
MSavoritias (fae,ve): that's how rocket chat does it and I find it extremely annoying
-
qy
how is what i propose different, though? it's the same as the matrix implementation, but less intrusive
-
jonas’
having to tap the message to see stuff is meh when you want to follow multiple threads
-
qy
the thread icon indicates that there is a parent message, but it's not loud, and you might be able to figure it out at a glance
-
MSavoritias (fae,ve)
I like zulip the best for orgs. But that needs a whole different ui paradigm than just groups
-
pep.
"MSavoritias (fae,ve)1> Yes. Its just not a xep so it cant be shared across clients" < It can, people agreeing on things is not uncommo. Just that there's no document on XSF servers stating more or less how things should be done :P
-
MSavoritias (fae,ve)
Yeah i meant technical way 😅
-
jonas’
pep.: which kind of sucks
-
jonas’
I mean whatsapp is also just xmpp with a few things not documented on XSF servers
-
qy
i think the transport protocol being different is a bit more than just "a few things"
-
qy
but do you really want whatsapp interop?
-
jonas’
qy, some people do, hence bridges
-
pep.
jonas’: It depends, eventually maybe it sucks, but see the last list thread about the jonas’ jonas’ standardisation process
-
pep.
Also the WhatsApp exemple doesn't compare I feel
-
jonas’
the jonas’ jonas’ standardisation process?
-
pep.
The issue with them is the whole getting users in and ensuring they stay and make money off that
-
pep.
Haha, sorry
-
pep.
Mobile being slow and latency and..
-
jonas’
pep., I don't see how the list thread I'm thinking of is any relevant there
-
pep.
Experimentation, getting things out there with no constraints, seeing how they work (looks like gajim is happy with it?) Maybe yeah they could start thinking about standardizing it, even though this one is "just"(?) UI work, so not for the XSF.
-
jonas’
modernxmpp then possibly
-
pep.
Maybe. Even though.. spaces aren't the most consensual topic :/
-
Kev
I don't see that creating a XEP with no protocol in would be problematic, if the intention is interop.
-
jonas’
modernxmpp can deal with controversy (#kanal)
-
jonas’
'392 also has no protocol, still is valuable as a XEP
-
pep.
It's not like there could be 5 different documents like there could be under the XSF. In my mind modernxmpp was settling on some of the "controversies" by making choices
-
pep.
Kev, that's in 0001 iirc
-
jonas’
Informational exists for a reason.
-
Kev
> , that's in 0001 iirc Yes, allowing this is encoded in 1, you're right.
-
pep.
:)
-
edhelas
> > pep.: > > Wasn't that one of the proposed ways to do spaces > edhelas: moxxy the android client also will havn spaces in the next release. > > https://codeberg.org/moxxy/moxxyv2/pulls/185 Chat grouping is NOT Spaces ↺
-
edhelas
Those are pure UI things, just like in Gajim
-
MattJ
See, nobody even agrees what spaces are, let alone how to implement them :)
-
pep.
"That's your opinion, man" :P hence the 56 different suggestions for spaces
-
edhelas
There is no XMPP involved at all there
-
pep.
So?
-
MSavoritias (fae,ve)
> pep.: > Experimentation, getting things out there with no constraints, seeing how they work (looks like gajim is happy with it?) Maybe yeah they could start thinking about standardizing it, even though this one is "just"(?) UI work, so not for the XSF. Not really. If spaces are to be dones right there needs to be a way to share them across clients with just a link or have people join them. And also a permissions work. So that a person can join all the chats under a space. Or moderators can be managed per space.
-
MSavoritias (fae,ve)
Plus if you destroy a space all chats should stop existing underneath
-
MSavoritias (fae,ve)
All this logic needs xmpp standardization behind it
-
edhelas
Ok then, call it the way you like, but i'm there to talk about XMPP stuff accross clients and synchronization between them. Drag & drop MUC in folders can be nice but it has not impact whatsoever in XMPP, unless theres a XEP or some kind of job done on the network 🤷♂️
-
pep.
Yeah somebody(tm) really neds to get onto it if they want that to be a thing, I guess.✎ -
MattJ
MSavoritias (fae,ve), do all groups part of a space need to exist on the same server?
-
edhelas
To me yes
-
MSavoritias (fae,ve)
edhelas: I agree. I was just pointing out how clients implement the ui part because they see it useful.
👍 1 -
MSavoritias (fae,ve)
> MattJ: > MSavoritias (fae,ve), do all groups part of a space need to exist on the same server? Personally no. But it makes things more complicated
-
pep.
Yeah somebody(tm) really needs to get onto it if they want that to be a thing, I guess. ✏
- wurstsalat digs out this: https://md.roflcopter.fr/xmpp-spaces
-
MattJ
I envisioned spaces as a lot more loosely-coupled to the rooms. More a discovery feature than anything else. That doesn't really require them to be on the same server. But you're right, with the features you're talking about it sounds like they would almost need to be (not necessarily, but you need a lot of cooperation and trust between servers otherwise)
👍 1 -
MSavoritias (fae,ve)
Yeah
-
pep.
Personally I'd rather not put a limit on the location of rooms. And I want to allow rooms to be in more than one space
-
MSavoritias (fae,ve)
Also i would "attach"a couple of xeps there for good experience
-
MSavoritias (fae,ve)
pep.: they should be allowed to be imo
-
MattJ
If a room can be in multiple spaces, you can't delete either space without deleting the room?
-
MattJ
Or the room should only be deleted when the last remaining space is deleted?
-
pep.
MSavoritias (fae,ve): Not in some people's definition of spaces, I know this was one of the disagreements
-
MattJ
I think at some point we need to think about how practical some of these "requirements" are
-
MattJ
Otherwise nothing will get implemented
-
MSavoritias (fae,ve)
> MattJ: > If a room can be in multiple spaces, you can't delete either space without deleting the room? > Or the room should only be deleted when the last remaining space is deleted? Second one
-
MSavoritias (fae,ve)
Yeah true. We need an actual definition and document.
-
pep.
MattJ: yeah I wouldn't delete rooms anyway if a space is deleted :p
-
pep.
See what wurstsalat linked again
-
Kev
I have thoughts about this, but can't type it right now.
-
MattJ
We all have that feeling sometimes
-
Kev
I mean I'm in a meeting :)
-
MattJ
:P
-
Daniel
In matrix the discovery feature called spaces (where an organization can couple all their channels together; for example the dev channel and the user channel) and the personal organization feature called spaces seem to be pretty tightly coupled which is horrible. Because the organizations way of organizing things might not be my way of organizing things)
-
qy
heh
-
qy
i think wurstsalat had it right in the doc then, differentiating between server spaces and client workspaces
-
Daniel
Or in other words if a join the project Foo dev channel through project Foo space and the projact bar dev channel through space bar I now have two work space plus the default one in element
-
Daniel
Even though I'm just trying to be in two channels
-
Daniel
I wouldn't call it server space because I'm happy for my server to manage personal spaces across multiple clients
-
Daniel
But I don't want it to be hard linked to a discovery feature
-
larma
Well, I guess it depends on what you want to use spaces for in general
-
MattJ
I think there are three aspects: organization features in the UI (client), discovery (server), administration (server)
-
wurstsalat
qy: please note that is't not my document (I just dug it out)
-
larma
if it's just something like grouping your channels/contacts for you personally, that's basically something that roster/bookmarks can handle
-
Daniel
> Well, I guess it depends on what you want to use spaces for in general Yes. I guess that's what I'm trying to say. But we shouldn't mix those things
💯️ 1 -
MattJ
Some of the features discussed conflict with features I would prefer
-
larma
For long time, many XMPP clients displayed conversations/contacts in a tree-like structure. Now, many clients don't do that anymore and suddenly people want that back...
-
edhelas
> i think wurstsalat had it right in the doc then, differentiating between server spaces and client workspaces That sounds a nice way of differencing the two things vocabulary wise :) ↺
-
qy
larma; what determined the outline?
-
MattJ
qy, nested roster groups
-
larma
I guess the reason why we stopped doing it is that it's to complex for just private chat. Complex conversation organizing only makes sense when XMPP is used for larger communities or organizations, e.g. when there are multiple channels within the same community that are used for different topics inside that community (like xsf@, council@, editor@, ... in XMPP dev community)
-
larma
You don't have "Friends" and "Friends offtopic" channels, so no need to group them
-
Daniel
Or I guess even more importantly if you are in multiple organizations
-
larma
Daniel, yes
-
Daniel
But yes that's where the two uses cases 'slack' and 'whatsapp' collide. I don't want to explain the slack mobile UI to my mum
-
MattJ
+1, personal and organization/team messaging demand different UIs for various things
-
MattJ
You can do both with one UI, but it's a worse experience for both use cases when you do
-
larma
Discord has that thing with the "personal" space that looks more like whatsapp and then you have "servers" which are about multiple channels used by the same group of people. I can imagine the same to work for XMPP clients, where you normally only have that personal space which looks exactly like Conversations/Dino/many others look like right now, and only optionally you can add a "organization space" that works like Discord/Slack and has different UI to some degree (e.g. channel list is grouped and not ordered by last message)✎ -
edhelas
I like the Discord approach as well
-
larma
Discord has that thing with the "personal" space that looks more like whatsapp and then you have "servers" which are about multiple channels used by the same group of people. I can imagine the same to work for XMPP clients, where you normally only have that personal space which looks exactly like Conversations/Dino/many others look like right now, and only optionally you can add a "organization space" that works like Discord/Slack and has different UI to some degree (e.g. channel list is grouped, not ordered by last message and designed around having way more channels) ✏
-
larma
The advantage of this approach is that we can properly upgrade existing users/infrastructure to it, because the personal space is exactly the status quo and we're just adding something on top
-
wurstsalat
larma: I really like that idea
-
MattJ
+1
-
Kev
I would like , as a user, to be able to group my chats in some way, such as an XSF/Isode split on rooms. That could be done with client-only logic with data stored in PIP. I would also like to be able to manage a set of rooms as a coherent whole - being able to assign hats (or whatever - roles) across a set of rooms, and having both ACLs and room autojoin based on those.
-
Kev
I think that, protocol-wise, it's not a lot of work to add some glue on top so that rooms remain rooms as they are, and we define a space on top. The server would need to tie them together behind the scenes ACL-wise, of course.
-
edhelas
Kev + having an easy discoverability for clients, for example a simple capability feature in a MUC that says "hey, there's a space above me"
-
qy
edhelas: then we're already limiting a muc to one space
-
Kev
I'm not sure you need to go up out of a MUC to find the space it's in, but rather the opposite, no?
-
Kev
You need to know what's in a space that you're in.
-
edhelas
mhh 🤔
-
MattJ
No, I always envisioned it similar to what edhelas is saying
-
MattJ
You join a MUC, it advertises one or more spaces, which you can look up and discover other related MUCs
-
Kev
In the model I envisage, which is basically the Discord/Slack model, you join (UX) a space, rather than joining a room, and then that space acts essentially like its own little garden.
-
MattJ
These two are not incompatible
-
MattJ
But note that (unless you're saying otherwise) you will always be able to join a MUC directly, and there should be a way to discover a space from a MUC
-
MattJ
It will also be the easiest way to go about it on the network
-
MattJ
Share the "main" MUC of your space, and spaces-aware clients will be able to do the right thing, and legacy clients will work just as today
-
Kev
Think of the MMO Guild use case, for example. You tell people "Join our Space [here]", the user tells their client to join that space, and then they're in that space, which is distinct in the UI somehow. They're probably in a '#welcome' channel at that point. A space admin notices them and gives them the 'guildie' role/hat/whatever, which opens up a handful of other channels, to which they're automatically joined by having the room. Then they can also see some other optional channels they can select, etc. Then they get promoted to a raid group, get the 'raid' hat, and they're autojoined to all the raid channels, which they can now see. That sort of stuff.
-
Kev
> Share the "main" MUC of your space, and spaces-aware clients will be able to do the right thing, and legacy clients will work just as today Oh, so you pin a main-space-channel MUC as your entry point, rather than a distinct 'space' entry point? I think that likely works fine.
-
MattJ
Yes, same thing, edhelas and I are just saying that what you actually share/join is the #welcome channel
-
MattJ
and the rest comes from there
-
MSavoritias (fae,ve)
I think that could be done as different ux yeah
-
qy
so from non-main mucs, you can't presume a space?
-
MSavoritias (fae,ve)
And both of tdem can coexist
-
Kev
The hardest question to answer, for XMPP, is how to ensure the autojoin, I think.
-
larma
MattJ, but that somehow conflicts the idea of a room being in multiple spaces
-
qy
or are we introducing a strict parent-child space relation
-
MattJ
qy, I think any MUC part of the space is going to advertise it's part of that space
-
qy
larma: yeah
-
Kev
> MattJ, but that somehow conflicts the idea of a room being in multiple spaces It doesn't, I think. Only for the 'main space channel' being in multiple spaces.
-
MattJ
larma, why can't a MUC advertise multiple spaces?
-
larma
MattJ, it can, but how can a MUC be the entry point to multiple spaces without the UX becoming terrible?
-
larma
Join our community here, then from the list of linked spaces, use X
-
Kev
I don't think a MUC being in multiple spaces is compatible with full-management spaces.
-
MattJ
I don't think the UX needs to be terrible. In fact, per what Daniel said earlier, it can be better than what happens in other systems
-
Kev
But you could easily have full-managed and linked MUCs.
-
MattJ
Kev, that I might not disagree with, indeed
-
Kev
So a MUC can only be full-managed by one space, but can be linked from several spaces.
-
MSavoritias (fae,ve)
Agreed
-
MattJ
In my mind spaces are less about management and more about easy discovery/grouping of related channels
-
MSavoritias (fae,ve)
They are both for me
-
larma
I think there can be channels fully managed by multiple spaces
-
larma
slack can do this
-
MattJ
Once you add management it becomes a *lot* more complex
-
Kev
I'm sure there are use cases where that's true, but there are definitely (widely used in other systems) cases where full management is needed.
-
MattJ
Unless they are situated on the same server
-
Kev
> Unless they are situated on the same server They have to be, I think.
-
MSavoritias (fae,ve)
Probably seperate xeps though due to complexity yeah
-
MattJ
That's a shame
-
Kev
> That's a shame I don't think so. There's nothing stopping you linking across servers. But the data for 'your' managed space are on one server.
-
MSavoritias (fae,ve)
Would mix make management easier?
-
Kev
> Would mix make management easier? Yes, but not groundbreakingly so.
-
larma
I just added Spaces to possible Summit topics
-
MattJ
Oh no :)
-
Kev
So if you want a space that's something like "Cool rooms talking about cat gifs", you can make one, and it can 'link' MUCs from across the xmppiverse.
-
MattJ
I mean, thanks :)
-
Kev
If you want a space that's "My Warcraft Guild" where you manage roles of your members, etc., you host it on a particular server (but can still link out to popular cat GIF channels elsewhere).
-
MSavoritias (fae,ve)
> Kev: > Yes, but not groundbreakingly so. Thought so
-
qy
Kev: how do linked mucs know they are linked to? muc components maintaining such info seems like it could go wrong
-
MattJ
Random semi-related thought: I wish the designers of disco#items had included a "rel" attribute
👍️ 1 -
Kev
I'm not pretending that other people's use cases aren't valid, or important, or whatever. Just that the case I'm describing is very widely deployed on other systems, and it would be good to be able to address that in XMPP.
-
Kev
> : how do linked mucs know they are linked to? muc components maintaining such info seems like it could go wrong They don't need to.
-
qy
> qy, I think any MUC part of the space is going to advertise it's part of that space ?
-
qy
do we then mean that only the "full-managed" space is advertised? worth noting...
-
qy
that also then kinda removes the multiple space issue
-
qy
if mucs only advertise one, no problem
-
Kev
This is one of those annoying instances where I think it's worth actually gathering different scenarios to work out what we can/can't/want to/don't/etc. address.
-
Kev
I've got a pretty clear picture of what addressing the Company, Guild, Twitch community requirements can look like, but other people have other things in mind and it'd be good to capture them.
-
nicoco
Wouldn't it be reasonable to do XEP-spaces incrementally? What gajim does right now seems rather straighforward (?) to implement with some JID/workspace name mapping server-side (if a workspace is just defined by a simple string, it also works if you use multiple accounts, which is nice IMHO). Obviously that does not cover all the use cases and expectations, but better start somewhere than nowhere, maybe? Where is this someone™? Isn't he writing that already?✎ -
nicoco
Wouldn't it be reasonable to do XEP-spaces incrementally? What gajim does right now seems rather straighforward (?) to implement with some JID/workspace name mapping server-side (if a workspace is just defined by a simple string, it also works if you use multiple accounts, which is nice IMHO). Obviously that does not cover all the use cases and expectations, but better start somewhere than nowhere, maybe? Where is this someone™? Aren't they writing that already? ✏
-
qy
nicoco: per user in PEP?
-
qy
PEP requires no server involvement, a serverside mapping sounds more like the "server spaces" option, which is not what gajim has implemented
-
nicoco
I was thinking per user in PEP, yes (so, not "server spaces"). I'm talking from a (egocentric) user perspective: I think gajim's workspaces are great and would love to not need to reorganize my chats in workspaces when I switch to a new computer.
-
Kev
Have put my name on the summit page, BTW.
-
singpolyma
On the "client grouping shared in server" side of things, cheogram Android we have implemented using bookmarks2 <extensions> feature to put roster <group/> elements inside the bookmarks. That's how we do it right now
-
Kev
Does not sound stupid to me.
-
pep.
w 23✎ -
pep.
. ✏
-
qy
.✎ -
Zash
. (edited)
-
qy
. ✏
-
qy
. ✏
-
Daniel
what would be a good way to get hold of an outbound stanza-id? put it into the stream managment ack? or would that be too weird syntactically? from a client side development perspective this would be the ideal place. but i don’t know if ack and assigning stanza-id are very different layers on the server side
-
Zash
Didn't we plan to squeeze that into Carbons?
-
MattJ
Yeah are, a bit (in Prosody). But not impossible. Acks would always need to be delayed until archiving succeeds... which might not be terrible in any case.
-
Daniel
plan maybe. but the overhead of carbons compared to the overhead of ack...
-
MattJ
I think the two options are acks or carbons, indeed
-
MattJ
and the magical one based on a counter and stream id
-
MattJ
Maybe we should make a final decision at the summit
-
Andrzej
for me putting that into ack would be weird, and would not make sense if another message would already be sent..
-
Zash
but the magical one would mess with my storage-engine decided ids :(
-
MattJ
Indeed
-
Zash
acks aren't always one to one with messages either
-
Kev
Putting it into the 198 acks is a terrible layering violation - and while I'm in favour of pragmatic breaking of layers, in this case it would pose serious issues to (at least some) servers that layer transports differently from stanza logic.
-
Kev
(I obviously mean it would be an inconvenience in M-Link ;) )
-
MattJ
Yep, I can totally see that. That design isn't traditionally uncommon, nor do I think it should be discouraged.
-
MattJ
I've been leaning towards carbons most recently
-
MattJ
Carbons and MAM are already closely related (Carbons is the MAM subscription that never was)
-
MattJ
We "just" have to include the sender in the notifications
-
MattJ
We can also invent something entirely new
-
Andrzej
carbons may be overkill and may cause issues with MUC PMs (I think)
-
Zash
Carbons are already pretty large due to all the wrappers
-
Daniel
carbons are very verbose. and I'm not sure how existing clients react if they suddently receive copys of their outbound messages
-
Daniel
that would probably require a namespace bump if we start doing that
-
Zash
We'd probably have to do it as opt-in
-
Kev
We should probably get around to dropping carbons and just routing the core stanzas. But using carbons/reflection is at least consistent with how you get your IDs from a MUC MAM.
-
Zash
No namespace bump, just some element or something when enabling carbons?
-
Kev
> No namespace bump, just some element or something when enabling carbons? ^this
-
Daniel
that would work too
-
Kev
Or a namespace bump of the enable, which is roughly equivalent.
-
Zash
Kev, OG carbons with <messages> and to/from in the opposite direction?
-
Kev
But explicit/implicit/etc.
-
MattJ
or just <im-ng/> in your bind2 request :)
-
Daniel
mhhh brb reading that xep again
-
Kev
> or just <im-ng/> in your bind2 request :) Yes, that's what I mean by "We should probably get around to dropping carbons and just routing the core stanzas"
-
Andrzej
I think that we should do just that
-
Daniel
now that bind 2 is a thing we could actually start looking into im-ng again
-
Kev
If we could sort out IM-NG without boiling the ocean (which is kinda hard to do), the world would be a better place.
-
Daniel
is this a blockchain joke?
-
Kev
https://en.wiktionary.org/wiki/boil_the_ocean
-
Kev
I mean that I (at least) keep wanting to fix all the problems related to routing in one go, and that's an impossible task.
-
Kev
In principle, we could make some very sensible and achievable changes to routing to start with.
-
Kev
Like making carbons go away, for example.
-
Andrzej
I would just send out to other resource (im-ng enagled) every message that goes to MAM
-
qy
> Like making carbons go away, for example. where to o_O
-
MattJ
Status Final
-
MattJ
The great spec graveyard
-
jonas’
https://xmpp.org/extensions/xep-0409.html
-
Kev
I think I wrote that on the Eurostar after the 2018 summit or somesuch.
-
Daniel
everyone go read up on the earlier discussions about this xep on the list and then we have a solid base for a disussion at the summit
-
Daniel
but in general it seems like we might have enough to start some implementations
-
jonas’
especially now that the SASL2 stack has landed