matrix-org / matrix-org/matrix-spec

Permalinks cannot be routed by room ID, and aliases are not permanent.

Open
#355 4 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

A-Client-Server feature
Dominant language
HTML
Stars
330
Forks
150
Avg merge
2h 21m
Merged PRs (30d)
3

Description

Original bug: https://github.com/vector-im/riot-web/issues/2925

Room IDs have a server component for namespacing, but there's no guarantee that the server is still a participant in the room. This makes room IDs canonical for the room, but without a routing component they are impossible to resolve unless you're already part of the room. Aliases meanwhile do have routing through the included server name (leading to further queries about resident servers), but can change which room ID they point to easily.

We patched over the routability issues for room IDs by adding `?via=` parameters to permalinks, though this still has a chance to include servers which are no longer present when the link is clicked. Ideally, the room ID itself is routable to a resident server able to join the room.

There are no currently known solutions to this - MSCs are required.

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 with the linked original bug and the current permalink behavior described in this issue, including the existing `?via=` parameters. The issue says that a durable solution requires an MSC; done means defining and agreeing on a protocol-level solution for routing room IDs to a resident server.

Written by the indexing model from the issue text.

Assessment

Domain
backend-api-design, distributed-systems, networking
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.