Skip to content
This repository was archived by the owner on Apr 26, 2024. It is now read-only.
This repository was archived by the owner on Apr 26, 2024. It is now read-only.

Performing a room upgrade on a space will not transition the type #10207

@clokep

Description

@clokep

If a room upgrade is performed on a space then the type field from the content will be lost.

We seem to pull across the m.federate content:

# Get old room's create event
old_room_create_event = await self.store.get_create_event_for_room(old_room_id)
# Check if the create event specified a non-federatable room
if not old_room_create_event.content.get("m.federate", True):
# If so, mark the new room as non-federatable as well
creation_content["m.federate"] = False

But I wonder if we should start with the old event's content and then splat room_version and predecessor on top of it?

The spec is a bit vague, but seems to imply we shouldn't even be copying m.federate:

Creates a replacement room with a m.room.create event containing a predecessor field and the applicable room_version.

We also will want to copy the m.space.child and m.space.parent events from the space. It is unclear what we would do with the m.space.parent events in rooms that point to the space.

This might need an MSC for discussion, or might just be an implementation detail.

Metadata

Metadata

Assignees

Labels

T-EnhancementNew features, changes in functionality, improvements in performance, or user-facing enhancements.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions