matrix-org / matrix-org/matrix-rust-sdk
Add additional tombstone information to the UI/FFI layers.
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 2.3k
- Forks
- 500
- Avg merge
- 1d 16h
- Merged PRs (30d)
- 106
Description
On Element X we've just done https://github.com/element-hq/element-x-android/pull/5155 and https://github.com/element-hq/element-x-ios/pull/4413 to fix a bug when following tombstone links to v12 room IDs – now that the server name isn't part of the room ID, when a public room is upgraded on Server A, a user on Server B cannot follow the tombstone link (without an invite) as their server doesn't know about the room and has no useful way to discover it.
It would make it easier for all client developers if the SDK could do the following
- Add a new property to
SuccessorRoome.g.potential_server_namesthat includes a selection of server names derived from the joined members as a hint to the server.- For best results this should include the server name of the tombstone event's sender to help when the room has just been upgraded but nobody from the old room has joined the new room yet.
- Add the same property to
PredecessorRoomusing the same algorithm (hopefully some existing members were in the previous room).- For (hopefully) better results this should include the server name of the room's creator as their server will have been the one to upgrade the room, so should know about the predecessor.
Clients can then pass these server names when attempting to preview/join the room as the via parameter.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing the SuccessorRoom and PredecessorRoom definitions and existing tombstone handling, then compare the linked Element X Android and iOS pull requests for the v12 room ID workaround. Done means both room types expose potential server names derived as described, including the tombstone sender or room creator where applicable, so clients can pass them as the via parameter.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- backend-api-design
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100