Skip to content

Prepare for Matrix v1.1 #16876

@turt2live

Description

@turt2live

See matrix-org/synapse#11079 for what the server-side changes look like, and for a definition of how the versioning works.

For Element, and other clients, the important detail is that servers will start advertising v1.1 in the /versions response. Clients should check for this and use any per-endpoint versioned endpoints when talking to the homeserver. For Matrix 1.1, all endpoints for the client-server API will be available under /v3 instead of /r0. r0 should still be available for backwards compatibility reasons.

For future versions of Matrix, the endpoint versions might change. The implementation suggestion here is to hardcode use of /v3 in all endpoint calls for now, and when an endpoint changes shape (ie: gets a version bump) then add the if statement to switch between /v3 and /v4 as needed/supported by the server.

To clarify: All endpoints will be /v3 for Matrix 1.1, but Matrix 1.2 may very well introduce a breaking change to an endpoint. When that happens, /v4 will become the new current version for that endpoint with /v3 on its way out through deprecation. If the server advertises support for v1.2, then the client should use the /v4 endpoint. Otherwise, the /v3 endpoint.

In addition to the versioning changes, the following features become stable and should be expected as such on Matrix 1.1 compatible servers.

Identity Servers

Homeservers

  • Knocking support (room version 7)
    • Non-essential support
  • Added v1.1 to /versions endpoint
  • Event bodies are formally declared as untrusted - please validate your inputs
  • Identity server validation errors for .well-known has been downgraded to FAIL_PROMPT
  • A device_id is now present on /account/whoami
  • Secret Storage has been added
  • Key backup has been added
  • Cross-signing has been added
  • Social Login (multiple SSO providers) has been added
  • Key verification can now happen with in-room messages instead of to-device
  • <details> and <summary> are suggested to be legal HTML in events
  • QR code verification has been added
  • Spoilers have been added, as has a color attribute
  • Guests can now view the members of a room
  • reason and score are now optional on /report
  • Push rule endpoints can now return 404 M_NOT_FOUND
  • A reason is now possible on all membership events
  • A device_id is now present/possible on login fallback
  • Withholding decryption keys can now (optionally) be an explicit message to other devices. Ie: "I am not sending you this key"
  • [BREAKING] m.key.verification.ready and m.key.verification.done are now required in the key verification framework.
  • [BREAKING] curve25519-hkdf-sha256 is the new key agreement method for SAS verification, with other methods being deprecated.

Of note is Spaces: it will not be present in Matrix 1.1 at the moment. Clients can still use the m.space room type as stable, however other aspects such as the summary/hierarchy APIs are not currently eligible for stable usage as of writing. Room versions 8 and 9 will be added if time permits, though this shouldn't affect clients too much beyond knowing that "restricted" rooms exist.

Metadata

Metadata

Labels

T-TaskTasks for the team like planningZ-TravisR

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions