pull/4168/merge
Matthias Ahouansou 2 days ago committed by GitHub
commit 3b127637b0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -0,0 +1,55 @@
# MSC4168: Update `m.space.*` state on room upgrade
When a [room upgrade](https://spec.matrix.org/v1.11/client-server-api/#room-upgrades) is performed,
many state events are copied over to the new room, to minimize the amount of work the user has to do
after the upgrade. However, the spec doesn't currently recommend that `m.space.child` or `m.space.parent`
be copied over, as well as these events being updated in other rooms.
## Proposal
In the following sentences, "relevant space state events" refer to `m.space.parent` events for all
room types, in addition to `m.space.child` events for rooms with a type of
[`m.space`](https://spec.matrix.org/v1.16/client-server-api/#types).
When a room upgrade is performed, servers SHOULD copy relevant space state events from the old room
to the new room. The sender field in the new event should be set to the user who performed the
upgrade.
In addition, servers SHOULD update relevant space state events in rooms that reference the old room
(in their `state_key` field). Note that this will only be possible in rooms where the upgrading
user (or any other user on the same homeserver, if the implementation decides to use any user it
can) has the power to do so.
The `via` field of each new state event SHOULD only contain the server name of the server,
regardless of its previous content. This is because the server's listed in the previous `via` field
may not have joined the upgraded room yet, and thus servers may not be able to join through them.
## Potential issues
This proposal does not attempt to update `m.space.*` state in rooms where the user upgrading the room
is not able to update them, as this not only likely requires something like
[MSC4049](https://github.com/matrix-org/matrix-spec-proposals/pull/4049), but also adds other additional
complications (e.g. which server should update the state?).
Users may also not want to update events in other rooms. Hopefully this proposal can be used to determine
if there is a use-case for not updating events in other rooms. If there is one, then a query parameter can
be added to toggle this feature.
## Alternatives
As above, utilizing [MSC4049](https://github.com/matrix-org/matrix-spec-proposals/pull/4049) to update
`m.space.*` events in other rooms could be an alternative, but due to additional complications in addition
to requiring this MSC to be merged, it is deemed as not the best solution (for now).
## Security considerations
None considered.
## Unstable prefix
None required, as currently no new endpoints or fields are being proposed.
## Dependencies
None.
Loading…
Cancel
Save