mirror of
https://github.com/matrix-org/matrix-spec
synced 2026-05-01 22:54:10 +02:00
Compare commits
1 commit
f41a701615
...
b9620a1846
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b9620a1846 |
1
changelogs/appendices/newsfragments/2193.feature
Normal file
1
changelogs/appendices/newsfragments/2193.feature
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
Room IDs can now appear without a domain component in [room version 12](/rooms/v12), as per [MSC4291](https://github.com/matrix-org/matrix-spec-proposals/pull/4291).
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
Declare the Application Service Registration schema to follow JSON Schema spec 2020-12.
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
Minor fixes to JSON schemas.
|
||||||
1
changelogs/client_server/newsfragments/2071.deprecation
Normal file
1
changelogs/client_server/newsfragments/2071.deprecation
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
Deprecate `m.set_avatar_url` and `m.set_displayname` capabilities, as per [MSC4133](https://github.com/matrix-org/matrix-spec-proposals/pull/4133).
|
||||||
1
changelogs/client_server/newsfragments/2071.feature
Normal file
1
changelogs/client_server/newsfragments/2071.feature
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
Update user profile endpoints to handle custom fields, and add a new `m.profile_fields` capability, as per [MSC4133](https://github.com/matrix-org/matrix-spec-proposals/pull/4133).
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
Declare the event schemas to follow JSON Schema spec 2020-12.
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
Clarify that `format` is required if `formatted_body` is specified.
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
The `latest_event` in an aggregated set of thread events uses the same format as the event itself.
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
Fix various typos throughout the specification.
|
||||||
1
changelogs/client_server/newsfragments/2175.feature
Normal file
1
changelogs/client_server/newsfragments/2175.feature
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
Add `format` query parameter to `GET /state/{eventType}/{stateKey}` to allow fetching metadata of a specific state event.
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
Fix various typos throughout the specification.
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
Fix various typos throughout the specification.
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
Minor fixes to JSON schemas.
|
||||||
1
changelogs/client_server/newsfragments/2187.feature
Normal file
1
changelogs/client_server/newsfragments/2187.feature
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
Add the `use_state_after` query parameter and `state_after` response property to `GET /sync`, as per [MSC4222](https://github.com/matrix-org/matrix-spec-proposals/issues/4222).
|
||||||
1
changelogs/client_server/newsfragments/2193.feature.1
Normal file
1
changelogs/client_server/newsfragments/2193.feature.1
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
When upgrading rooms to [room version 12](/rooms/v12), `additional_creators` may be specified on the [`POST /_matrix/client/v3/rooms/{roomId}/upgrade`](/client-server-api/#post_matrixclientv3roomsroomidupgrade) endpoint, as per [MSC4289](https://github.com/matrix-org/matrix-spec-proposals/pull/4289).
|
||||||
1
changelogs/client_server/newsfragments/2193.feature.2
Normal file
1
changelogs/client_server/newsfragments/2193.feature.2
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
When creating rooms with [room version 12](/rooms/v12), the `trusted_private_chat` preset should merge the invitees into the supplied `content.additional_creators` in the resulting room, as per [MSC4289](https://github.com/matrix-org/matrix-spec-proposals/pull/4289).
|
||||||
1
changelogs/client_server/newsfragments/2193.feature.3
Normal file
1
changelogs/client_server/newsfragments/2193.feature.3
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
In [room version 12](/rooms/v12), the power level of room creators is now infinitely high as per [MSC4289](https://github.com/matrix-org/matrix-spec-proposals/pull/4289).
|
||||||
1
changelogs/client_server/newsfragments/2193.feature.4
Normal file
1
changelogs/client_server/newsfragments/2193.feature.4
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
In [room version 12](/rooms/v12), room IDs no longer have a domain component as per [MSC4291](https://github.com/matrix-org/matrix-spec-proposals/pull/4291).
|
||||||
1
changelogs/client_server/newsfragments/2193.feature.5
Normal file
1
changelogs/client_server/newsfragments/2193.feature.5
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
When creating rooms with [room version 12](/rooms/v12), the initial power levels will restrict the ability to upgrade rooms by default, as per [MSC4289](https://github.com/matrix-org/matrix-spec-proposals/pull/4289).
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
Fix `/sync` flow referencing incorrect parameter to use with `/messages`.
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
Clarify wording around the `world_readable` history visibility setting. Contributed by @HarHarLinks.
|
||||||
1
changelogs/client_server/newsfragments/2206.feature
Normal file
1
changelogs/client_server/newsfragments/2206.feature
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
Add a profile field for a user's time zone, per [MSC4175](https://github.com/matrix-org/matrix-spec-proposals/pull/4175).
|
||||||
1
changelogs/internal/newsfragments/2157.feature
Normal file
1
changelogs/internal/newsfragments/2157.feature
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
Add "placeholder MSC" process definition.
|
||||||
1
changelogs/internal/newsfragments/2160.clarification
Normal file
1
changelogs/internal/newsfragments/2160.clarification
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
Upgrade the docsy theme to version 0.12.0.
|
||||||
1
changelogs/internal/newsfragments/2172.clarification
Normal file
1
changelogs/internal/newsfragments/2172.clarification
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
GitHub actions are now building the OpenAPI `spec/identity-service-api/api.json` file.
|
||||||
1
changelogs/internal/newsfragments/2189.clarification
Normal file
1
changelogs/internal/newsfragments/2189.clarification
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
Specify a correct spelling for "display name".
|
||||||
1
changelogs/internal/newsfragments/2190.clarification
Normal file
1
changelogs/internal/newsfragments/2190.clarification
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
Clarify that clients should replace events with the most recent replacement by origin_server_ts.
|
||||||
1
changelogs/internal/newsfragments/2193.feature
Normal file
1
changelogs/internal/newsfragments/2193.feature
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
TODO: Placeholder
|
||||||
1
changelogs/internal/newsfragments/2205.clarification
Normal file
1
changelogs/internal/newsfragments/2205.clarification
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
Fix a grammatical typo on the Matrix Spec Process documentation page.
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
In room versions 1 through 12, an event's `auth_events` have always needed to belong to the same room as per [MSC4307](https://github.com/matrix-org/matrix-spec-proposals/pull/4307).
|
||||||
1
changelogs/room_versions/newsfragments/2193.feature.1
Normal file
1
changelogs/room_versions/newsfragments/2193.feature.1
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
Add [room version 12](/rooms/v12) as per [MSC4304](https://github.com/matrix-org/matrix-spec-proposals/pull/4304).
|
||||||
1
changelogs/room_versions/newsfragments/2193.feature.2
Normal file
1
changelogs/room_versions/newsfragments/2193.feature.2
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
Room IDs in room version 12 are now the event ID of the create event with the normal room ID sigil (`!`), as per [MSC4291](https://github.com/matrix-org/matrix-spec-proposals/pull/4291).
|
||||||
1
changelogs/room_versions/newsfragments/2193.feature.3
Normal file
1
changelogs/room_versions/newsfragments/2193.feature.3
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
Room creators are formalized in room version 12 and have infinitely high power level, as per [MSC4289](https://github.com/matrix-org/matrix-spec-proposals/pull/4289).
|
||||||
1
changelogs/room_versions/newsfragments/2193.feature.4
Normal file
1
changelogs/room_versions/newsfragments/2193.feature.4
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
State Resolution is updated in room version 12 to reduce the opportunity for "state resets", as per [MSC4297](https://github.com/matrix-org/matrix-spec-proposals/pull/4297).
|
||||||
1
changelogs/room_versions/newsfragments/2193.feature.5
Normal file
1
changelogs/room_versions/newsfragments/2193.feature.5
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
The default room version is now room version 12, though servers SHOULD keep using room version 11 for a little while, as per [MSC4304](https://github.com/matrix-org/matrix-spec-proposals/pull/4304).
|
||||||
1
changelogs/room_versions/newsfragments/2199.feature
Normal file
1
changelogs/room_versions/newsfragments/2199.feature
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
Add [room version 12](/rooms/v12) as per [MSC4304](https://github.com/matrix-org/matrix-spec-proposals/pull/4304).
|
||||||
|
|
@ -67,7 +67,7 @@ current_version_url = "https://spec.matrix.org/latest"
|
||||||
# The following is used when status = "stable", and is displayed in various UI elements on a released version
|
# The following is used when status = "stable", and is displayed in various UI elements on a released version
|
||||||
# of the spec.
|
# of the spec.
|
||||||
# major = "1"
|
# major = "1"
|
||||||
# minor = "16"
|
# minor = "15"
|
||||||
|
|
||||||
# User interface configuration
|
# User interface configuration
|
||||||
[params.ui]
|
[params.ui]
|
||||||
|
|
|
||||||
|
|
@ -1,103 +0,0 @@
|
||||||
---
|
|
||||||
title: v1.16 Changelog
|
|
||||||
linkTitle: v1.16
|
|
||||||
type: docs
|
|
||||||
layout: changelog
|
|
||||||
outputs:
|
|
||||||
- html
|
|
||||||
- checklist
|
|
||||||
date: 2025-09-17
|
|
||||||
---
|
|
||||||
|
|
||||||
## Client-Server API
|
|
||||||
|
|
||||||
**Deprecations**
|
|
||||||
|
|
||||||
- Deprecate `m.set_avatar_url` and `m.set_displayname` capabilities, as per [MSC4133](https://github.com/matrix-org/matrix-spec-proposals/pull/4133). ([#2071](https://github.com/matrix-org/matrix-spec/issues/2071))
|
|
||||||
|
|
||||||
**Removed Endpoints**
|
|
||||||
|
|
||||||
- Remove unintentional intentional mentions in replies, as per [MSC4142](https://github.com/matrix-org/matrix-spec-proposals/pull/4142). ([#2210](https://github.com/matrix-org/matrix-spec/issues/2210))
|
|
||||||
|
|
||||||
**Backwards Compatible Changes**
|
|
||||||
|
|
||||||
- Update user profile endpoints to handle custom fields, and add a new `m.profile_fields` capability, as per [MSC4133](https://github.com/matrix-org/matrix-spec-proposals/pull/4133). ([#2071](https://github.com/matrix-org/matrix-spec/issues/2071))
|
|
||||||
- Add `format` query parameter to `GET /state/{eventType}/{stateKey}` to allow fetching metadata of a specific state event. ([#2175](https://github.com/matrix-org/matrix-spec/issues/2175))
|
|
||||||
- Add the `use_state_after` query parameter and `state_after` response property to `GET /sync`, as per [MSC4222](https://github.com/matrix-org/matrix-spec-proposals/issues/4222). ([#2187](https://github.com/matrix-org/matrix-spec/issues/2187))
|
|
||||||
- When upgrading rooms to [room version 12](/rooms/v12), `additional_creators` may be specified on the [`POST /_matrix/client/v3/rooms/{roomId}/upgrade`](/client-server-api/#post_matrixclientv3roomsroomidupgrade) endpoint, as per [MSC4289](https://github.com/matrix-org/matrix-spec-proposals/pull/4289). ([#2193](https://github.com/matrix-org/matrix-spec/issues/2193))
|
|
||||||
- When creating rooms with [room version 12](/rooms/v12), the `trusted_private_chat` preset should merge the invitees into the supplied `content.additional_creators` in the resulting room, as per [MSC4289](https://github.com/matrix-org/matrix-spec-proposals/pull/4289). ([#2193](https://github.com/matrix-org/matrix-spec/issues/2193))
|
|
||||||
- In [room version 12](/rooms/v12), the power level of room creators is now infinitely high as per [MSC4289](https://github.com/matrix-org/matrix-spec-proposals/pull/4289). ([#2193](https://github.com/matrix-org/matrix-spec/issues/2193))
|
|
||||||
- In [room version 12](/rooms/v12), room IDs no longer have a domain component as per [MSC4291](https://github.com/matrix-org/matrix-spec-proposals/pull/4291). ([#2193](https://github.com/matrix-org/matrix-spec/issues/2193))
|
|
||||||
- When creating rooms with [room version 12](/rooms/v12), the initial power levels will restrict the ability to upgrade rooms by default, as per [MSC4289](https://github.com/matrix-org/matrix-spec-proposals/pull/4289). ([#2193](https://github.com/matrix-org/matrix-spec/issues/2193))
|
|
||||||
- Add a profile field for a user's time zone, as per [MSC4175](https://github.com/matrix-org/matrix-spec-proposals/pull/4175). ([#2206](https://github.com/matrix-org/matrix-spec/issues/2206))
|
|
||||||
- Invites and knocks are now expected to contain the `m.room.create` event in their stripped state entries, as per [MSC4311](https://github.com/matrix-org/matrix-spec-proposals/pull/4311). ([#2207](https://github.com/matrix-org/matrix-spec/issues/2207))
|
|
||||||
|
|
||||||
**Spec Clarifications**
|
|
||||||
|
|
||||||
- Clarify that `format` is required if `formatted_body` is specified. ([#2167](https://github.com/matrix-org/matrix-spec/issues/2167))
|
|
||||||
- The `latest_event` in an aggregated set of thread events uses the same format as the event itself. ([#2169](https://github.com/matrix-org/matrix-spec/issues/2169))
|
|
||||||
- Fix various typos throughout the specification. ([#2171](https://github.com/matrix-org/matrix-spec/issues/2171), [#2177](https://github.com/matrix-org/matrix-spec/issues/2177), [#2179](https://github.com/matrix-org/matrix-spec/issues/2179))
|
|
||||||
- Clarify that clients should replace events with the most recent replacement by `origin_server_ts`. ([#2190](https://github.com/matrix-org/matrix-spec/issues/2190))
|
|
||||||
- Fix `/sync` flow referencing incorrect parameter to use with `/messages`. ([#2195](https://github.com/matrix-org/matrix-spec/issues/2195))
|
|
||||||
- Clarify wording around the `world_readable` history visibility setting. Contributed by @HarHarLinks. ([#2204](https://github.com/matrix-org/matrix-spec/issues/2204))
|
|
||||||
|
|
||||||
|
|
||||||
## Server-Server API
|
|
||||||
|
|
||||||
**Backwards Compatible Changes**
|
|
||||||
|
|
||||||
- `invite_room_state` and `knock_room_state` now have additional requirements and validation depending on the room version, as per [MSC4311](https://github.com/matrix-org/matrix-spec-proposals/pull/4311). ([#2207](https://github.com/matrix-org/matrix-spec/issues/2207))
|
|
||||||
|
|
||||||
|
|
||||||
## Application Service API
|
|
||||||
|
|
||||||
No significant changes.
|
|
||||||
|
|
||||||
|
|
||||||
## Identity Service API
|
|
||||||
|
|
||||||
No significant changes.
|
|
||||||
|
|
||||||
|
|
||||||
## Push Gateway API
|
|
||||||
|
|
||||||
No significant changes.
|
|
||||||
|
|
||||||
|
|
||||||
## Room Versions
|
|
||||||
|
|
||||||
**Backwards Compatible Changes**
|
|
||||||
|
|
||||||
- Room IDs in room version 12 are now the event ID of the create event with the normal room ID sigil (`!`), as per [MSC4291](https://github.com/matrix-org/matrix-spec-proposals/pull/4291). ([#2193](https://github.com/matrix-org/matrix-spec/issues/2193))
|
|
||||||
- Room creators are formalized in room version 12 and have infinitely high power level, as per [MSC4289](https://github.com/matrix-org/matrix-spec-proposals/pull/4289). ([#2193](https://github.com/matrix-org/matrix-spec/issues/2193))
|
|
||||||
- State Resolution is updated in room version 12 to reduce the opportunity for "state resets", as per [MSC4297](https://github.com/matrix-org/matrix-spec-proposals/pull/4297). ([#2193](https://github.com/matrix-org/matrix-spec/issues/2193))
|
|
||||||
- The default room version is now room version 12, though servers SHOULD keep using room version 11 for a little while, as per [MSC4304](https://github.com/matrix-org/matrix-spec-proposals/pull/4304). ([#2193](https://github.com/matrix-org/matrix-spec/issues/2193))
|
|
||||||
- Add [room version 12](/rooms/v12) as per [MSC4304](https://github.com/matrix-org/matrix-spec-proposals/pull/4304). ([#2193](https://github.com/matrix-org/matrix-spec/issues/2193), [#2199](https://github.com/matrix-org/matrix-spec/issues/2199))
|
|
||||||
|
|
||||||
**Spec Clarifications**
|
|
||||||
|
|
||||||
- In room versions 1 through 12, an event's `auth_events` have always needed to belong to the same room as per [MSC4307](https://github.com/matrix-org/matrix-spec-proposals/pull/4307). ([#2193](https://github.com/matrix-org/matrix-spec/issues/2193))
|
|
||||||
|
|
||||||
|
|
||||||
## Appendices
|
|
||||||
|
|
||||||
**Backwards Compatible Changes**
|
|
||||||
|
|
||||||
- Room IDs can now appear without a domain component in [room version 12](/rooms/v12), as per [MSC4291](https://github.com/matrix-org/matrix-spec-proposals/pull/4291). ([#2193](https://github.com/matrix-org/matrix-spec/issues/2193))
|
|
||||||
|
|
||||||
|
|
||||||
## Internal Changes/Tooling
|
|
||||||
|
|
||||||
**Backwards Compatible Changes**
|
|
||||||
|
|
||||||
- Add "placeholder MSC" process definition. ([#2157](https://github.com/matrix-org/matrix-spec/issues/2157))
|
|
||||||
|
|
||||||
**Spec Clarifications**
|
|
||||||
|
|
||||||
- Declare the Application Service Registration schema to follow JSON Schema spec 2020-12. ([#2132](https://github.com/matrix-org/matrix-spec/issues/2132))
|
|
||||||
- Declare the event schemas to follow JSON Schema spec 2020-12. ([#2132](https://github.com/matrix-org/matrix-spec/issues/2132))
|
|
||||||
- Upgrade the docsy theme to version 0.12.0. ([#2160](https://github.com/matrix-org/matrix-spec/issues/2160))
|
|
||||||
- GitHub actions are now building the OpenAPI `spec/identity-service-api/api.json` file. ([#2172](https://github.com/matrix-org/matrix-spec/issues/2172))
|
|
||||||
- Minor fixes to JSON schemas. ([#2182](https://github.com/matrix-org/matrix-spec/issues/2182))
|
|
||||||
- Specify a correct spelling for "display name". ([#2189](https://github.com/matrix-org/matrix-spec/issues/2189))
|
|
||||||
- Fix a grammatical typo on the Matrix Spec Process documentation page. ([#2205](https://github.com/matrix-org/matrix-spec/issues/2205))
|
|
||||||
|
|
@ -2818,14 +2818,6 @@ should be represented as stripped state events when possible:
|
||||||
* [`m.room.canonical_alias`](#mroomcanonical_alias)
|
* [`m.room.canonical_alias`](#mroomcanonical_alias)
|
||||||
* [`m.room.encryption`](#mroomencryption)
|
* [`m.room.encryption`](#mroomencryption)
|
||||||
|
|
||||||
{{% changed-in v="1.16" %}} The `m.room.create` event is now **required** in
|
|
||||||
the following places:
|
|
||||||
* [`invite_state`](#get_matrixclientv3sync_response-200_invited-room) and
|
|
||||||
[`knock_state`](#get_matrixclientv3sync_response-200_knocked-room) on
|
|
||||||
[`/sync`](#get_matrixclientv3sync) responses.
|
|
||||||
* On [`m.room.member`](#mroommember) events, the `invite_room_state`
|
|
||||||
and `knock_room_state` under `unsigned` on the event.
|
|
||||||
|
|
||||||
{{% boxes/note %}}
|
{{% boxes/note %}}
|
||||||
Clients should inspect the list of stripped state events and not assume any
|
Clients should inspect the list of stripped state events and not assume any
|
||||||
particular event is present. The server might include events not described
|
particular event is present. The server might include events not described
|
||||||
|
|
@ -2856,12 +2848,6 @@ events are not signed and could theoretically be modified, or outdated due to
|
||||||
updates not being sent.
|
updates not being sent.
|
||||||
{{% /boxes/warning %}}
|
{{% /boxes/warning %}}
|
||||||
|
|
||||||
{{% boxes/warning %}}
|
|
||||||
{{% added-in v="1.16" %}} Servers cannot pass through what they receive over
|
|
||||||
federation to clients as stripped state. Servers are expected to prune the events
|
|
||||||
into the stripped state schema below before passing the details onto clients.
|
|
||||||
{{% /boxes/warning %}}
|
|
||||||
|
|
||||||
{{% event-fields event_type="stripped_state" %}}
|
{{% event-fields event_type="stripped_state" %}}
|
||||||
|
|
||||||
### Size limits
|
### Size limits
|
||||||
|
|
|
||||||
|
|
@ -64,16 +64,11 @@ as if it were to be under `m.relates_to` directly instead.
|
||||||
|
|
||||||
#### Mentioning the replied to user
|
#### Mentioning the replied to user
|
||||||
|
|
||||||
{{% boxes/note %}}
|
In order to notify users of the reply, it may be desirable to include the `sender`
|
||||||
{{% changed-in v="1.16" %}}
|
of the replied to event and any users mentioned in that event. See
|
||||||
Clients SHOULD no longer propagate mentioned users in the replied to event.
|
[user and room mentions](#user-and-room-mentions) for additional information.
|
||||||
{{% /boxes/note %}}
|
|
||||||
|
|
||||||
In order to notify users of the reply, it MAY be desirable to include the `sender`
|
An example including mentioning the original sender and other users:
|
||||||
of the replied to event. See [user and room mentions](#user-and-room-mentions) for
|
|
||||||
additional information.
|
|
||||||
|
|
||||||
An example including mentioning the original sender:
|
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
|
|
@ -88,6 +83,8 @@ An example including mentioning the original sender:
|
||||||
"user_ids": [
|
"user_ids": [
|
||||||
// The sender of $another_event.
|
// The sender of $another_event.
|
||||||
"@alice:example.org",
|
"@alice:example.org",
|
||||||
|
// Another Matrix ID copied from the m.mentions property of $another_event.
|
||||||
|
"@bob:example.org"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -945,18 +945,6 @@ Note that invites are used to indicate that knocks were accepted. As such,
|
||||||
receiving servers should be prepared to manually link up a previous knock
|
receiving servers should be prepared to manually link up a previous knock
|
||||||
to an invite if the invite event does not directly reference the knock.
|
to an invite if the invite event does not directly reference the knock.
|
||||||
|
|
||||||
{{% boxes/note %}}
|
|
||||||
{{% added-in v="1.16" %}} `invite_room_state` MUST now have its entries formatted
|
|
||||||
according to the room's version (see [room version specification](/rooms)). However,
|
|
||||||
servers SHOULD consider their local ecosystems before returning the described
|
|
||||||
`400 M_MISSING_PARAM` error code. While migrating, servers SHOULD warn about
|
|
||||||
invites which fail the validation rather than error in room versions 1 through 11.
|
|
||||||
All invites to other room versions which fail validation SHOULD result in an error.
|
|
||||||
|
|
||||||
The specification suggests that servers finish their migration no later than
|
|
||||||
January 2026, though servers may extend this as required to support their users.
|
|
||||||
{{% /boxes/note %}}
|
|
||||||
|
|
||||||
{{% http-api spec="server-server" api="invites-v1" %}}
|
{{% http-api spec="server-server" api="invites-v1" %}}
|
||||||
|
|
||||||
{{% http-api spec="server-server" api="invites-v2" %}}
|
{{% http-api spec="server-server" api="invites-v2" %}}
|
||||||
|
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
[
|
|
||||||
{"$ref": "./minimal_pdu.json"},
|
|
||||||
{
|
|
||||||
"type": "m.room.create",
|
|
||||||
"content": {
|
|
||||||
"see_room_version_spec": "The event format changes depending on the room version."
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
|
|
@ -71,32 +71,13 @@ paths:
|
||||||
properties:
|
properties:
|
||||||
invite_room_state:
|
invite_room_state:
|
||||||
type: array
|
type: array
|
||||||
x-changedInMatrixVersion:
|
|
||||||
"1.16": |
|
|
||||||
`m.room.create` and format requirements were added.
|
|
||||||
description: |-
|
description: |-
|
||||||
A list of state events to help the receiver of the invite identify the room.
|
An optional list of [stripped state events](/client-server-api/#stripped-state)
|
||||||
Translated as [stripped state events](/client-server-api/#stripped-state)
|
to help the receiver of the invite identify the room.
|
||||||
over the Client-Server API.
|
|
||||||
|
|
||||||
MUST contain the `m.room.create` event for the room. All events listed
|
|
||||||
MUST additionally be formatted according to the room version specification.
|
|
||||||
|
|
||||||
Servers might need to apply validation to the `invite_room_state` depending
|
|
||||||
on room version. See the `400 M_MISSING_PARAM` error definition for more
|
|
||||||
information.
|
|
||||||
|
|
||||||
Note that events have a different format depending on the room
|
|
||||||
version - check the [room version specification](/rooms) for
|
|
||||||
precise event formats.
|
|
||||||
items:
|
items:
|
||||||
type: object
|
$ref: ../../event-schemas/schema/core-event-schema/stripped_state.yaml
|
||||||
title: PDU
|
example:
|
||||||
properties: {}
|
$ref: ../../event-schemas/examples/invite_room_state.json
|
||||||
description: |-
|
|
||||||
Note that events have a different format depending on the room
|
|
||||||
version - check the [room version specification](/rooms) for
|
|
||||||
precise event formats.
|
|
||||||
type: object
|
type: object
|
||||||
required: true
|
required: true
|
||||||
responses:
|
responses:
|
||||||
|
|
@ -137,7 +118,24 @@ paths:
|
||||||
"origin_server_ts": 1549041175876,
|
"origin_server_ts": 1549041175876,
|
||||||
"sender": "@someone:example.org",
|
"sender": "@someone:example.org",
|
||||||
"unsigned": {
|
"unsigned": {
|
||||||
"invite_room_state": {"$ref": "./examples/invite_or_knock_state.json"}
|
"invite_room_state": [
|
||||||
|
{
|
||||||
|
"type": "m.room.name",
|
||||||
|
"sender": "@bob:example.org",
|
||||||
|
"state_key": "",
|
||||||
|
"content": {
|
||||||
|
"name": "Example Room"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "m.room.join_rules",
|
||||||
|
"sender": "@bob:example.org",
|
||||||
|
"state_key": "",
|
||||||
|
"content": {
|
||||||
|
"join_rule": "invite"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"content": {
|
"content": {
|
||||||
"membership": "invite"
|
"membership": "invite"
|
||||||
|
|
@ -170,35 +168,6 @@ paths:
|
||||||
"errcode": "M_FORBIDDEN",
|
"errcode": "M_FORBIDDEN",
|
||||||
"error": "User cannot invite the target user."
|
"error": "User cannot invite the target user."
|
||||||
}
|
}
|
||||||
"400":
|
|
||||||
description: |-
|
|
||||||
The `M_MISSING_PARAM` error code is used to indicate one or more of
|
|
||||||
the following:
|
|
||||||
|
|
||||||
* The `m.room.create` event is missing from `invite_room_state`.
|
|
||||||
* One or more entries in `invite_room_state` are not formatted according
|
|
||||||
to the room's version.
|
|
||||||
* One or more events fails a [signature check](/server-server-api/#validating-hashes-and-signatures-on-received-events).
|
|
||||||
* One or more events does not reside in the same room as the invite.
|
|
||||||
Note: Some room versions may require calculating the room ID for an
|
|
||||||
event rather than relying on the presence of `room_id`.
|
|
||||||
|
|
||||||
Servers MAY apply the validation above to room versions 1 through 11,
|
|
||||||
and SHOULD apply the validation above to all other room versions.
|
|
||||||
|
|
||||||
If `M_MISSING_PARAM` is returned and the request is associated with a
|
|
||||||
Client-Server API request, the Client-Server API request SHOULD fail
|
|
||||||
with a 5xx error rather than being passed through.
|
|
||||||
content:
|
|
||||||
application/json:
|
|
||||||
schema:
|
|
||||||
$ref: ../client-server/definitions/errors/error.yaml
|
|
||||||
examples:
|
|
||||||
response:
|
|
||||||
value: {
|
|
||||||
"errcode": "M_MISSING_PARAM",
|
|
||||||
"error": "Create event not among invite state entries."
|
|
||||||
}
|
|
||||||
servers:
|
servers:
|
||||||
- url: "{protocol}://{hostname}{basePath}"
|
- url: "{protocol}://{hostname}{basePath}"
|
||||||
variables:
|
variables:
|
||||||
|
|
|
||||||
|
|
@ -72,32 +72,13 @@ paths:
|
||||||
$ref: definitions/invite_event.yaml
|
$ref: definitions/invite_event.yaml
|
||||||
invite_room_state:
|
invite_room_state:
|
||||||
type: array
|
type: array
|
||||||
x-changedInMatrixVersion:
|
|
||||||
"1.16": |
|
|
||||||
`m.room.create` and format requirements were added.
|
|
||||||
description: |-
|
description: |-
|
||||||
A list of state events to help the receiver of the invite identify the room.
|
An optional list of [stripped state events](/client-server-api/#stripped-state)
|
||||||
Translated as [stripped state events](/client-server-api/#stripped-state)
|
to help the receiver of the invite identify the room.
|
||||||
over the Client-Server API.
|
|
||||||
|
|
||||||
MUST contain the `m.room.create` event for the room. All events listed
|
|
||||||
MUST additionally be formatted according to the room version specification.
|
|
||||||
|
|
||||||
Servers might need to apply validation to the `invite_room_state` depending
|
|
||||||
on room version. See the `400 M_MISSING_PARAM` error definition for more
|
|
||||||
information.
|
|
||||||
|
|
||||||
Note that events have a different format depending on the room
|
|
||||||
version - check the [room version specification](/rooms) for
|
|
||||||
precise event formats.
|
|
||||||
items:
|
items:
|
||||||
type: object
|
$ref: ../../event-schemas/schema/core-event-schema/stripped_state.yaml
|
||||||
title: PDU
|
example:
|
||||||
properties: {}
|
$ref: ../../event-schemas/examples/invite_room_state.json
|
||||||
description: |-
|
|
||||||
Note that events have a different format depending on the room
|
|
||||||
version - check the [room version specification](/rooms) for
|
|
||||||
precise event formats.
|
|
||||||
required:
|
required:
|
||||||
- room_version
|
- room_version
|
||||||
- event
|
- event
|
||||||
|
|
@ -130,7 +111,24 @@ paths:
|
||||||
"origin_server_ts": 1549041175876,
|
"origin_server_ts": 1549041175876,
|
||||||
"sender": "@someone:example.org",
|
"sender": "@someone:example.org",
|
||||||
"unsigned": {
|
"unsigned": {
|
||||||
"invite_room_state": {"$ref": "./examples/invite_or_knock_state.json"}
|
"invite_room_state": [
|
||||||
|
{
|
||||||
|
"type": "m.room.name",
|
||||||
|
"sender": "@bob:example.org",
|
||||||
|
"state_key": "",
|
||||||
|
"content": {
|
||||||
|
"name": "Example Room"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "m.room.join_rules",
|
||||||
|
"sender": "@bob:example.org",
|
||||||
|
"state_key": "",
|
||||||
|
"content": {
|
||||||
|
"join_rule": "invite"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"content": {
|
"content": {
|
||||||
"membership": "invite"
|
"membership": "invite"
|
||||||
|
|
@ -153,24 +151,6 @@ paths:
|
||||||
|
|
||||||
The error should be passed through to clients so that they
|
The error should be passed through to clients so that they
|
||||||
may give better feedback to users.
|
may give better feedback to users.
|
||||||
|
|
||||||
The `M_MISSING_PARAM` error code is used to indicate one or more of
|
|
||||||
the following:
|
|
||||||
|
|
||||||
* The `m.room.create` event is missing from `invite_room_state`.
|
|
||||||
* One or more entries in `invite_room_state` are not formatted according
|
|
||||||
to the room's version.
|
|
||||||
* One or more events fails a [signature check](/server-server-api/#validating-hashes-and-signatures-on-received-events).
|
|
||||||
* One or more events does not reside in the same room as the invite.
|
|
||||||
Note: Some room versions may require calculating the room ID for an
|
|
||||||
event rather than relying on the presence of `room_id`.
|
|
||||||
|
|
||||||
Servers MAY apply the validation above to room versions 1 through 11,
|
|
||||||
and SHOULD apply the validation above to all other room versions.
|
|
||||||
|
|
||||||
If `M_MISSING_PARAM` is returned and the request is associated with a
|
|
||||||
Client-Server API request, the Client-Server API request SHOULD fail
|
|
||||||
with a 5xx error rather than being passed through.
|
|
||||||
content:
|
content:
|
||||||
application/json:
|
application/json:
|
||||||
schema:
|
schema:
|
||||||
|
|
|
||||||
|
|
@ -293,41 +293,19 @@ paths:
|
||||||
knock_room_state:
|
knock_room_state:
|
||||||
type: array
|
type: array
|
||||||
items:
|
items:
|
||||||
type: object
|
$ref: ../../event-schemas/schema/core-event-schema/stripped_state.yaml
|
||||||
title: PDU
|
|
||||||
properties: {}
|
|
||||||
description: |-
|
|
||||||
Note that events have a different format depending on the room
|
|
||||||
version - check the [room version specification](/rooms) for
|
|
||||||
precise event formats.
|
|
||||||
x-changedInMatrixVersion:
|
|
||||||
"1.16": |
|
|
||||||
`m.room.create` and format requirements were added.
|
|
||||||
description: |-
|
description: |-
|
||||||
A list of state events to help the initiator of the knock identify
|
A list of [stripped state events](/client-server-api/#stripped-state)
|
||||||
the room. Translated as [stripped state events](/client-server-api/#stripped-state)
|
to help the initiator of the knock identify the room.
|
||||||
over the Client-Server API.
|
|
||||||
|
|
||||||
MUST contain the `m.room.create` event for the room. All events
|
|
||||||
listed MUST additionally be formatted according to the room
|
|
||||||
version specification.
|
|
||||||
|
|
||||||
Entries which are [improperly signed](/server-server-api/#validating-hashes-and-signatures-on-received-events)
|
|
||||||
or formatted SHOULD be removed by the server prior to supplying
|
|
||||||
them over the Client-Server API.
|
|
||||||
|
|
||||||
Note that events have a different format depending on the room
|
|
||||||
version - check the [room version specification](/rooms) for
|
|
||||||
precise event formats.
|
|
||||||
example:
|
example:
|
||||||
"$ref": "./examples/invite_or_knock_state.json"
|
$ref: ../../event-schemas/examples/knock_room_state.json
|
||||||
required:
|
required:
|
||||||
- knock_room_state
|
- knock_room_state
|
||||||
examples:
|
examples:
|
||||||
response:
|
response:
|
||||||
value: {
|
value: {
|
||||||
"knock_room_state": {
|
"knock_room_state": {
|
||||||
"$ref": "./examples/invite_or_knock_state.json"
|
"$ref": "../../event-schemas/examples/knock_room_state.json"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
"403":
|
"403":
|
||||||
|
|
|
||||||
|
|
@ -137,9 +137,6 @@ properties:
|
||||||
- type: object
|
- type: object
|
||||||
properties:
|
properties:
|
||||||
invite_room_state:
|
invite_room_state:
|
||||||
x-changedInMatrixVersion:
|
|
||||||
"1.16": |
|
|
||||||
`m.room.create` was made a required event type for stripped state.
|
|
||||||
description: |-
|
description: |-
|
||||||
A subset of the state of the room at the time of the invite, if `membership` is `invite`.
|
A subset of the state of the room at the time of the invite, if `membership` is `invite`.
|
||||||
Note that this state is informational, and SHOULD NOT be trusted; once the client has
|
Note that this state is informational, and SHOULD NOT be trusted; once the client has
|
||||||
|
|
@ -148,21 +145,16 @@ properties:
|
||||||
they SHOULD behave properly (with possibly a degraded but not a broken experience) in
|
they SHOULD behave properly (with possibly a degraded but not a broken experience) in
|
||||||
the absence of any particular events here. If they are set on the room, at least the
|
the absence of any particular events here. If they are set on the room, at least the
|
||||||
state for `m.room.avatar`, `m.room.canonical_alias`, `m.room.join_rules`, and `m.room.name`
|
state for `m.room.avatar`, `m.room.canonical_alias`, `m.room.join_rules`, and `m.room.name`
|
||||||
SHOULD be included. The `m.room.create` event MUST be included, though MAY be missing if
|
SHOULD be included.
|
||||||
the server hasn't updated to support the Matrix 1.16 specification.
|
|
||||||
items:
|
items:
|
||||||
$ref: "core-event-schema/stripped_state.yaml"
|
$ref: "core-event-schema/stripped_state.yaml"
|
||||||
type: array
|
type: array
|
||||||
knock_room_state:
|
knock_room_state:
|
||||||
x-changedInMatrixVersion:
|
|
||||||
"1.16": |
|
|
||||||
`m.room.create` was made a required event type for stripped state.
|
|
||||||
description: |-
|
description: |-
|
||||||
A subset of the state of the room at the time of the knock, if `membership` is `knock`.
|
A subset of the state of the room at the time of the knock, if `membership` is `knock`.
|
||||||
This has the same restrictions as `invite_room_state`. If they are set on the room, at least
|
This has the same restrictions as `invite_room_state`. If they are set on the room, at least
|
||||||
the state for `m.room.avatar`, `m.room.canonical_alias`, `m.room.join_rules`, `m.room.name`,
|
the state for `m.room.avatar`, `m.room.canonical_alias`, `m.room.join_rules`, `m.room.name`,
|
||||||
and `m.room.encryption` SHOULD be included. The `m.room.create` event MUST be included,
|
and `m.room.encryption` SHOULD be included.
|
||||||
though MAY be missing if the server hasn't updated to support the Matrix 1.16 specification.
|
|
||||||
items:
|
items:
|
||||||
$ref: "core-event-schema/stripped_state.yaml"
|
$ref: "core-event-schema/stripped_state.yaml"
|
||||||
type: array
|
type: array
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue