matrix-spec-proposals
matrix-spec-proposals copied to clipboard
MSC3189: Per-room/per-space profiles
First MSC, eager to see how this goes! :)
One thing I'm curious about is addressing how to set your profile data before joining a room. Based on the client behaviour I've seen so far, you can only change it after you've joined a room, and I believe this proposal doesn't alter that. If I understand how it interacts with Spaces correctly, it would mostly "automate" altering the m.room.member
state but the behaviour of that needing to happen after a join stays intact?
A consequence of that is that my global nickname and avatar leak into every room I join and can be observed before it gets altered. This limits the usefulness of per room/space profile data a lot when it comes to separating identities, especially as it relates to the avatar image.
@daenney
If I understand how it interacts with Spaces correctly, it would mostly "automate" altering the
m.room.member
state but the behaviour of that needing to happen after a join stays intact?
I've actually decided that I need to rework this MSC to also automate the inheritance of profile data on joins and other actions (hence the draft label), so this should no longer be an issue.
A consequence of that is that my global nickname and avatar leak into every room I join and can be observed before it gets altered. This limits the usefulness of per room/space profile data a lot when it comes to separating identities, especially as it relates to the avatar image.
Presumably your global profile is something that is known and intended to be public, since anyone can look it up if they know your MXID. Though when I rework this MSC, I will definitely make sure to carefully consider privacy issues that could stem from inheriting per-space profiles without any action from the user.
One thing I'm curious about is addressing how to set your profile data before joining a room
IIUC this is a client issue. The client is the one that sends your profile. It is just that currently all clients send your global "profile" by default.
However I'm not sure how it works for invites.
I just pushed a reworked version which hopefully resolves most concerns about room/space profiles not being first-class, so I'd be very grateful to get feedback on this again.
The new solution still scales O(n) with the number of rooms a profile change affects, though it is laid out in a way that should hopefully allow "upgrading" to O(1) updates with persona rooms in the future if desired, thereby separating concerns.
I would like to ask what is the current status of per-space profiles, and have a couple of scenarios where this would be really helpful.
- In Finnish speaking rooms I am often seeing critique towards people who have English pronouns in their display names (which to be honest would belong to bio metadata or similar that doesn't currently exist) and thus it would be nice to just be able to have a different display name in Matrix Suomi space.
- Matrix is widely used for different communities. I would like to
- be known as my real name, ~~Mikaela~~ Aminda Suomalainen in professional context, such as politics and some open source software projects
- be known as ~~Mikaela~~ Aminda in less formal contexts
- ~~be known as Aminda (that I currently have as a global name) in Esperanto spaces and gaming specific spaces as that seems to be often my gaming tag.~~
- additionally if I spoke Russian or similar language that doesn't use latin alphabet, I would like to e.g. cyrillize my name instead of using latin letters there.
Edited a bit as I legally took Aminda as my second first name in December 2021
Hi @Mikaela, those are all use cases that the general idea of per-room and per-space profiles was meant to solve, however this MSC is unfortunately blocked behind other spec work at the moment. After some discussions in the Matrix Spec room, I came to the conclusion that it would be best after all to wait until extensible profiles and sync v3 become more concrete, so that this MSC can take advantage of them. For that reason, I think I'll actually mark this MSC as a draft for the moment, because while the profile semantics proposed here will largely remain the same, the internals of this MSC will probably look quite different by the time those proposals become a reality. Sorry for the wait!
I have a question, sorry if this is weird/addressed somehow: What's the main advantage of this over documenting the existing client-event-managed system? My assumption right now is it expands the work required on the part of homeservers, which will probably lead to more breakage, and since the existing system already uses extendable attributes, it's presumably ready for whatever clients put into profiles.
that would be great. just had a couple of issues/delays, because some entities know me in one space under another nick, and then blocked my dm because they didn't know me by my 'standard' account name.
Has there been any development here or in the blockers, or is the best bet with pronouns https://github.com/matrix-org/matrix-spec-proposals/pull/3755 ?
This is unfortunately still blocked behind extensible profiles, peeking over federation, and changes to sync, so I don't think this is going to develop anytime soon.
Would it be possible to avoid the blockers on federation peeking/sync by instead proposing a change to the /profile
api to optionally accept a room (in both client server and server server spec) (and return the profile). It is cheeky and means that you have to trust the profile owner's server to present the right state, but you will do that anyway as it is their profile. There is at least one downside in that this will become painful if portable accounts become a thing and federation peaking does become part of the spec, but that might be acceptable.
Hi, looks like a year later since the last update on this... how is this coming along? Has it been folded into another MSC, perhaps? Thanks, in advance!
One related question: within a space I've set up, I can change the nick in each room, but at the space-level I seem to keep the nick-name I had when setting up the space. How do I change that? Seems related to the MSC here