matrix-org / matrix-org/matrix-rust-sdk

Add additional tombstone information to the UI/FFI layers.

Open
#5,536 0 comments 0 reactions 0 assignees View on GitHub

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 SuccessorRoom e.g. potential_server_names that 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 PredecessorRoom using 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.