Releases: matrix-org/matrix-spec
v1.15
Client-Server API
New Endpoints
- Add
GET /_matrix/client/v1/room_summary/{roomIdOrAlias}
, as per MSC3266. (#2125) - Add
GET /_matrix/client/v1/auth_metadata
, as per MSC2965. (#2147)
Backwards Compatible Changes
- Add
m.topic
content block to enable rich text inm.room.topic
events as per MSC3765. (#2095) - Include device keys with Olm-encrypted events as per MSC4147. (#2122)
- Add
/_matrix/client/v1/room_summary/{roomIdOrAlias}
and extend/_matrix/client/v1/rooms/{roomId}/hierarchy
with the new optional propertiesallowed_room_ids
,encryption
androom_version
as per MSC3266. (#2125, #2158) - Add the OAuth 2.0 based authentication API, as per MSC3861 and its sub-proposals. (#2141, #2148, #2149, #2150, #2151, #2159, #2164)
Spec Clarifications
- Clarify behaviour when the
topic
key of am.room.topic
event is absent, null, or empty. (#2068) - Fix the example of the
GET /sync
endpoint and them.room.member
example used in several places. (#2077) - Clarify the format of third-party invites, including the fact that identity server public keys can be encoded using standard or URL-safe base64. (#2083)
- "Public" rooms in profile look-ups are defined through their join rule and history visibility. (#2101)
- "Public" rooms in user directory queries are defined through their join rule and history visibility. (#2102)
- Rooms published in
/publicRooms
don't necessarily havepublic
join rules orworld_readable
history visibility. (#2104) - "Public" rooms with respect to call invites are defined through their join rule. (#2106)
- "Public" rooms have no specific meaning with respect to moderation policy lists. (#2107)
- "Public" rooms with respect to presence are defined through their join rule. (#2108)
- Spaces are subject to the same access mechanisms as rooms. (#2109)
- Fix various typos throughout the specification. (#2121, #2144)
- Clarify that Well-Known URIs are available on the server name's hostname. Contributed by @HarHarLinks. (#2140)
- Add missing fields in example for
ExportedSessionData
. (#2154)
Server-Server API
Backwards Compatible Changes
- Add
m.topic
content block to enable rich text inm.room.topic
events as per MSC3765. (#2095) - Extend
/_matrix/federation/v1/hierarchy/{roomId}
with the new optional propertiesencryption
androom_version
as per MSC3266. (#2125)
Spec Clarifications
- Add a note to the invite endpoints that invites to local users may be received twice over federation if the homeserver is already in the room. (#2067)
- Clarify the format of third-party invites, including the fact that identity server public keys can be encoded using standard or URL-safe base64. (#2083)
- Clarify that auth event of
content.join_authorised_via_users_server
is only necessary form.room.member
with amembership
ofjoin
. (#2100) - Rooms published in
/publicRooms
don't necessarily havepublic
join rules orworld_readable
history visibility. (#2104) - Fix various typos throughout the specification. (#2128)
- Clarify that Well-Known URIs are available on the server name's hostname. Contributed by @HarHarLinks. (#2140)
Application Service API
Spec Clarifications
- Clarify in the application service registration schema the
url: null
behaviour. (#2130)
Identity Service API
Spec Clarifications
- Clarify that public keys can be encoded using standard or URL-safe base64. (#2083)
Push Gateway API
No significant changes.
Room Versions
No significant changes.
Appendices
No significant changes.
Internal Changes/Tooling
Spec Clarifications
- Adjust margins in rendered endpoints. (#2081)
- Replace Hugo shortcodes in OpenAPI output. (#2088)
- Add well-known funding manifest urls to spec to authorise https://matrix.org/funding.json. Contributed by @HarHarLinks. (#2115)
- Fix the historical info box when generating the historical spec in CI. (#2123)
- Update the header navigation menu with links to modern matrix.org. Contributed by @HarHarLinks. (#2137)
v1.14
Client-Server API
New Endpoints
Removed Endpoints
- Remove
server_name
parameter from/_matrix/client/v3/join/{roomIdOrAlias}
and/_matrix/client/v3/knock/{roomIdOrAlias}
, as per MSC4213. (#2059)
Spec Clarifications
- The
POST /_matrix/client/v3/rooms/{roomId}/initialSync
endpoint is no longer deprecated, as it is still used for peeking. (#2036) - Clarify wording in the
/join
endpoints' summaries and descriptions. Contributed by @HarHarLinks. (#2038) - Clarify formats of string types. (#2046)
- Fix various typos throughout the specification. (#2047, #2048, #2080, #2091)
- Document the
instance_id
field ofProtocol Instance
in the responses toGET /_matrix/client/v3/thirdparty/protocols
andGET /_matrix/client/v3/thirdparty/protocol/{protocol}
. (#2051) - Applying redactions is a SHOULD for clients. (#2055)
- Clarify which rooms are returned from
/hierarchy
. (#2064) - Clients can choose which history visibility options they offer to users when creating rooms. (#2072)
Server-Server API
Spec Clarifications
- Remove the
origin
field inPUT /send_join
responses, because it was never sent in the first place. (#2050) - Clarify that
m.join_rules
should be in theauth_events
of anm.room.member
event with amembership
ofknock
. (#2063) - Remove an erroneous
room_id
field in a few examples. (#2076)
Application Service API
No significant changes.
Identity Service API
No significant changes.
Push Gateway API
No significant changes.
Room Versions
Backwards Compatible Changes
Spec Clarifications
- For room versions 6 and 7, clarify in the authorization rules that
m.federate
must be checked and that events with rejected auth events must be rejected, for parity with all the other room versions. (#2065) - Fix various typos throughout the specification. (#2066)
- Refactor PDU definitions to reduce duplication. (#2070)
- Clarify the maximum
depth
value for room versions 6, 7, 8, 9, 10, and 11. (#2114)
Appendices
Spec Clarifications
- Clarify that arbitrary unicode is allowed in user/room IDs and room aliases. (#1506)
Internal Changes/Tooling
Spec Clarifications
- Generate the changelog release info with Hugo, rather than the changelog generation script. (#2033)
- Update release steps documentation. (#2041)
- Remove unused
release_date
from Hugo config. (#2042) - Clarify that v1.0 of Matrix was a release prior to the current global versioning system. (#2045)
- Fix syntax highlighting and click-to-copy buttons for code blocks by purging less CSS. (#2049)
- Fix the version of the Identity Service API when Matrix 1.0 was introduced. (#2061)
- Fix parsing of nested slices in
resolve-refs
andresolve-allof
partials. (#2069) - Deduplicate the definition of
RoomKeysUpdateResponse
. (#2073) - Deduplicate the definitions of
Invite3pid
. (#2074) - Support more locations for examples in OpenAPI definitions and JSON schemas. (#2076)
- Add link to the git commit for the unstable changelog. (#2078)
v1.13
Client-Server API
New Endpoints
Backwards Compatible Changes
- Add error codes to requestToken endpoints, as per MSC4178. (#1944)
- Remove reply fallbacks, as per MSC2781. (#1994)
- Clarify the allowed HTTP methods in CORS responses, as per MSC4138. (#1995, #2011)
- Add new
M_USER_SUSPENDED
error code behaviour, as per MSC3823. (#2014)
Spec Clarifications
- The
reason
parameter inPOST /_matrix/client/v3/rooms/{roomId}/report/{eventId}
can be omitted instead of left blank, as per MSC2414. (#1938) - Correct OpenAPI specification for query parameters to
GET /_matrix/client/v3/thirdparty/location/{protocol}
endpoint. (#1947) - Sort VoIP events semantically. (#1967)
- Clarify that servers must forward custom keys in
PusherData
when sending notifications to the push gateway. (#1973) - Clarify formats of string types. (#1978, #1979, #1980)
- Clarify that the async upload endpoint will return 404 in some cases. (#1983)
- Remove distinction between
StateFilter
andRoomEventFilter
. (#2015) - Add hyperlinks throughout the specification. (#2016)
- Use
json
instead ofjson5
for syntax highlighting. (#2017) - Specify order that one-time keys are issued by
/keys/claim
, as per MSC4225. (#2029)
Server-Server API
Backwards Compatible Changes
Spec Clarifications
- Add 403 error response to
/_matrix/federation/v1/state_ids/{roomId}
. (#1926)
Application Service API
Backwards Compatible Changes
Identity Service API
No significant changes.
Push Gateway API
Spec Clarifications
- Document the schema of
PusherData
. (#1968) - The path of HTTP pusher URLs is fixed to
/_matrix/push/v1/notify
. (#1974)
Room Versions
Spec Clarifications
- Clarify rule 4.3.1 of the auth rules in room version 11 to state which event's
sender
thestate_key
needs to match. (#2024)
Appendices
Spec Clarifications
- Remove note about reference implementations. (#1966)
Internal Changes/Tooling
Spec Clarifications
- Add
x-weight
property for sorting events rendered with theevent-group
shortcode. (#1967) - Enforce consistent vertical spacing between paragraphs in endpoint definitions. (#1969, #2005)
- Remove
boxes/added-in-paragraph
shortcode. (#1970) - Remove
withVersioning
parameter ofrver-fragment
shortcode. (#1971) - Remove
span
element fromadded-in
andchanged-in
shortcodes. (#1972) - Fix formatting of
added-in
andchanged-in
shortcodes by using%
delimiter. (#1975) - Remove CSS workaround for scroll-anchoring. (#1976)
- Rename
custom-formats.yaml
tostring-formats.yaml
and update its docs. (#1977) - Fix relative URLs when serving the specification with a custom
baseURL
. (#1984, #1997) - Rename
.htmltest.yaml
to.htmltest.yml
. (#1985) - Improve the JS script to highlight the current ToC entry. (#1991, #2002)
- Upgrade docsy to 0.11.0 and hugo to 0.139.0. (#1996, #2007)
- Improve the quality of the rendered diagrams (#1999)
- Update the Inter font and allow the browser to render the page before it is loaded (#2000)
- Use a proper Matrix favicon (#2001)
- Clean up unused CSS classes in
openapi/render-operation
partial. (#2003) - Fix
changed-in
partial when used with multiple paragraphs. (#2006) - Optimize generated CSS by removing unused selectors. (#2008)
- Remove trailing slash on void HTML elements. (#2009)
- Remove
type
andlanguage
attributes ofscript
element. (#2021) - Change the accessible role of info boxes to
note
. (#2022)
v1.12
Client-Server API
Deprecations
- Deprecate the
server_name
query parameter onPOST /_matrix/client/v3/join/{roomIdOrAlias}
andPOST /_matrix/client/v3/knock/{roomIdOrAlias}
, as per MSC4156. (#1933)
Removed Endpoints
- Remove references to device-specific push rules. (#1842)
- Remove the deprecated name attribute on HTML anchor elements, as per MSC4159. (#1870)
Backwards Compatible Changes
- Add 403 responses on
GET /_matrix/client/v3/profile/{userId}/avatar_url
andGET /_matrix/client/v3/profile/{userId}/displayname
, as per MSC4170. (#1867) - Add support for marking rooms as unread, as per MSC2867. (#1895, #1941)
- Add
via
query parameter onPOST /_matrix/client/v3/join/{roomIdOrAlias}
andPOST /_matrix/client/v3/knock/{roomIdOrAlias}
, as per MSC4156. (#1933) - Add account locking, as per MSC3939. (#1934)
- Guest accounts can now download/thumbnail media from the new authenticated endpoints, as per MSC4189. (#1959)
Spec Clarifications
- Rename and sort the modules in the feature profiles table for easier skimming. (#1855)
- Clarify that room avatars cannot be encrypted. (#1871)
- Document the acronyms and alternate names for the "Secrets" section. (#1875)
- Improve recommendation for how to form transaction IDs. (#1888)
- Clarify that the deprecated
dont_notify
andcoalesce
push rule actions MUST be ignored, not rejected. (#1890) - Fix various typos throughout the specification. (#1892)
- Add missing references to
m.set_displayname
,m.set_avatar_url
, andm.3pid_changes
in capabilities table. (#1897) - Clarify that the fallback login page calls
window.matrixLogin.onLogin
instead ofwindow.onLogin
. (#1899) - Remove confusing description of restricted rooms with no valid conditions. (#1903)
- Clarify that
window.matrixLogin.onLogin
is called with the response body ofPOST /_matrix/client/v3/login
. (#1905) - Document the
m.get_login_token
capability, as per MSC3882. (#1908) - Clarify that the
User identifier
object inPOST /_matrix/client/v3/login
contains additional properties that depend on the identification type. (#1909) - Don't mention that
GET /_matrix/client/v3/profile/{userId}
can return additional properties because this is true for almost every endpoint. (#1910) - Improve wording of the unauthenticated media deprecation box. Contributed by @HarHarLinks. (#1916)
- Additional properties in
GET /.well-known/matrix/client
don't have to be objects. (#1920) - Document that the spec uses RFC 2119 keywords. Contributed by @HarHarLinks. (#1928)
- Specify
Content-Type
andContent-Disposition
usage in the media repo, as per MSC2701 and MSC2702. (#1935) - Additional keys in
GET /_matrix/client/v3/capabilities
don't have to be objects. (#1945)
Server-Server API
Backwards Compatible Changes
Spec Clarifications
- Remove
origin
field from PDU example because it doesn't exist in the schema anymore. (#1918) - Document that the spec uses RFC 2119 keywords. Contributed by @HarHarLinks. (#1928)
- Fix required fields in
GET /_matrix/key/v2/server
response schema. (#1930) - Use "server name" instead of "DNS name" to avoid confusion with the "DNS name" component of "server names" as defined in the appendices. (#1946)
Application Service API
Spec Clarifications
- Document that the spec uses RFC 2119 keywords. Contributed by @HarHarLinks. (#1928)
Identity Service API
Spec Clarifications
- Document that the spec uses RFC 2119 keywords. Contributed by @HarHarLinks. (#1928)
Push Gateway API
Spec Clarifications
- Document that the spec uses RFC 2119 keywords. Contributed by @HarHarLinks. (#1928)
Room Versions
Spec Clarifications
- Fix a formatting issue in state resolution v2. (#1896)
- Document that the spec uses RFC 2119 keywords. Contributed by @HarHarLinks. (#1928)
Appendices
Spec Clarifications
- Document that the spec uses RFC 2119 keywords. Contributed by @HarHarLinks. (#1928)
Internal Changes/Tooling
Spec Clarifications
- The Matrix.org Foundation no longer requires "real" or "legally identifiable" names in order to contribute to projects. (#1886, #1914)
- Document the
removal
changelog category. (#1907) - Use dedicated fonts for better support of mathematical symbols. (#1919)
- Document that the spec uses RFC 2119 keywords. Contributed by @HarHarLinks. (#1928)
- Provide markdown checklists for changelogs under
/changelog/$VERSION/checklist.md
. (#1937, #1954) - Add the
deprecated
field to properties of OpenAPI definitions and JSON Schemas. (#1940) - Use relative permalink to redirect to latest changelog. (#1956)
v1.11
Client-Server API
Deprecations
- Authentication using a query string is now deprecated, as per MSC4126. The
Authorization
header should be used instead. (#1808) - Use of the
/_matrix/media/*
endpoints is now deprecated. New, authenticated, endpoints are available instead. (#1858)
New Endpoints
GET /_matrix/client/v1/media/config
(#1858)GET /_matrix/client/v1/media/download/{serverName}/{mediaId}
(#1858)GET /_matrix/client/v1/media/download/{serverName}/{mediaId}/{fileName}
(#1858)GET /_matrix/client/v1/media/preview_url
(#1858)GET /_matrix/client/v1/media/thumbnail/{serverName}/{mediaId}
(#1858)
Backwards Compatible Changes
- Add support for muting in VoIP calls, as per MSC3291. (#1755)
- Add optional
animated
query string option toGET /thumbnail
, as per MSC2705. (#1757) - Specify terms of services at registration, as per MSC1692. (#1812)
- Add support for mathematical messages, as per MSC2191. (#1816)
- Do not require UIA when first uploading cross-signing keys, as per MSC3967. (#1828)
- Add the new
unsigned.membership
property to events, as per MSC4115. (#1847) - Media downloads and thumbnails are now authenticated, as per MSC3916. (#1858)
- Some media endpoints are now consistently under
/_matrix/client/{version}/media/*
instead of/_matrix/media/*
, as per MSC3916. (#1858)
Spec Clarifications
- Add
/logout
and clarify the endpoints which do not take a JSON request body. (#1644) - Clarify that the
type
of thePOST /login
request must be one of the types returned by theGET /login
response. (#1776) - Link to existing grammar where possible in types. (#1813)
- Rename "recovery key" to "backup decryption key". (#1819)
- Clarify that the device's Ed25519 signing key should be used in QR code verification (as opposed to the device's Curve25519 identity key). (#1829)
- Fix various typos throughout the specification. (#1832, #1841, #1852, #1853)
- Specify the encoding to be used when generating QR codes for device verification. (#1839)
- Clarify that an access token is optional on the
POST /account/password
andPOST /account/deactivate
endpoints. (#1843) - Use RFC 2119 keywords more consistently. (#1846, #1861)
- Move size limits for user, room and event IDs into the appendix and clarify that the length is to be measured in bytes. (#1850)
- Clarify that relations recursion should be capped at a certain depth. (#1854)
- Add missing secrets, third-party invites and room tagging modules to feature profiles table. (#1860)
- Clarify when server name is used and link to the definition. (#1862)
- Clarify where keys reside when checking an
m.room.encrypted
event. (#1863) - Clarify that
/media/v3/upload/{serverName}/{mediaId}
requires authentication. (#1872)
Server-Server API
Deprecations
- Use of the Client-Server API
/_matrix/media/*
endpoints is now deprecated. New, authenticated, endpoints are available instead. (#1858)
New Endpoints
GET /_matrix/federation/v1/media/download/{mediaId}
(#1858)GET /_matrix/federation/v1/media/thumbnail/{mediaId}
(#1858)
Backwards Compatible Changes
Spec Clarifications
- Link to existing grammar where possible in types. (#1813)
- Clarify that whitespace around commas is allowed in the
X-Matrix
Authorization
header value params list. (#1818) - Clarify that the
event
field of the/v2/send_join
response is only required when the event is signed by the resident server. (#1834, #1840) - Replace references to RFC 7235 and RFC 7230 that are obsoleted by RFC 9110. (#1844)
- Fix various typos throughout the specification. (#1877)
Application Service API
Spec Clarifications
- Clarify that appservices should be notified of events relating to the
sender_localpart
user. (#1810)
Identity Service API
Deprecations
- Authentication using a query string is now deprecated, as per MSC4126. The
Authorization
header should be used instead. (#1808)
Push Gateway API
No significant changes.
Room Versions
Spec Clarifications
- Clarify that redaction events are still subject to all applicable auth rules. (#1824)
- Fix various typos throughout the specification. (#1827, #1848)
- Fix the rendering of the event format for room versions 1 and 2. (#1883)
- Generate the Table of Contents with Hugo rather than JavaScript. (#1884)
Appendices
Deprecations
Spec Clarifications
- Define 'Opaque Identifier Grammar'. (#1791)
- Define common cryptographic key representation. (#1819)
- Move size limits for user, room and event IDs into the appendix and clarify that the length is to be measured in bytes. (#1850)
Internal Changes/Tooling
Spec Clarifications
- Update the spec release process and related documentation. (#1759)
- Fix npm release script for
@matrix-org/spec
. (#1765) - Formatting fixes in
CONTRIBUTING.rst
. ([#1769](https://github.com/matrix-org/matrix-spec/i...
v1.10
Client-Server API
Backwards Compatible Changes
- Allow
/versions
to optionally accept authentication, as per MSC4026. (#1728) - Add local erasure requests, as per MSC4025. (#1730)
- Use the
body
field as optional media caption, as per MSC2530. (#1731) - Add server support discovery endpoint, as per MSC1929. (#1733)
- Add support for multi-stream VoIP, as per MSC3077. (#1735)
- Specify that the
Retry-After
header may be used to rate-limit a client, as per MSC4041. (#1737) - Add support for recursion on the
GET /relations
endpoints, as per MSC3981. (#1746)
Spec Clarifications
- The strike element is deprecated in the HTML spec. Clients should prefer s instead. (#1629)
- Clarify that read receipts should be batched by thread as well as by room. (#1685)
- Clarify that threads can be created based on replies. (#1687)
- Clarify in the reply fallbacks example that the prefix sequence should be repeated for each line. (#1690)
- Clarify the format of account data objects for secret storage. (#1695, #1734)
- Clarify that the key backup MAC is implemented incorrectly and does not pass the ciphertext through HMAC-SHA-256. (#1712)
- Clarify one-time key and fallback key types in examples. (#1715)
- Clarify that the HKDF calculation for SAS uses base64-encoded keys rather than the raw key bytes. (#1719)
- Clarify how to perform the ECDH exchange in step 12 of the SAS process. (#1720)
- Document the deprecation policy of HTML tags, as per MSC4077. (#1732)
- The font element is deprecated in the HTML spec. Clients should prefer span with the
data-mx-bg-color
anddata-mx-color
attributes instead. (#1739) - Disambiguate uses of
PublicRoomsChunk
in theGET /hierarchy
endpoint. (#1740) - Clarify that
sdpMid
andsdpMLineIndex
are not required inm.call.candidates
. (#1742) - Fix various typos throughout the specification. (#1748)
- Clearly indicate that each
Content-Type
may have distinct behaviour on non-JSON requests/responses. (#1756) - Clarify that the
m.push_rules
account data type cannot be set using the/account_data
API, as per MSC4010. (#1763)
Server-Server API
Spec Clarifications
- Clarify Server-Server API request signing example by using the
POST
HTTP method, asGET
requests don't have request bodies. (#1721) - Disambiguate uses of
PublicRoomsChunk
in theGET /hierarchy
endpoint. (#1740) - Clarify that the
children_state
,room_type
andallowed_room_ids
properties in the items of thechildren
array of the response of theGET /hierarchy
endpoint are not required. (#1741)
Application Service API
Spec Clarifications
- Clarify that the
/login
and/register
endpoints should fail when using them.login.application_service
login type without a validas_token
. (#1744)
Identity Service API
No significant changes.
Push Gateway API
No significant changes.
Room Versions
Spec Clarifications
- For room versions 7 through 11: Clarify that
invite->knock
is not a legal transition. (#1717)
Appendices
No significant changes.
Internal Changes/Tooling
Spec Clarifications
- Update the spec release process. (#1680)
- Minor clarifications to the contributing guide. (#1697)
- Update Docsy to v0.8.0. (#1699, #1762)
- Fix npm release script for
@matrix-org/spec
. (#1713) - Add some clarifications around implementation requirements for MSCs. (#1718)
- Update HTML templates to include links to object schema definitions. (#1724)
- Factor out all the common parameters of the various
/relations
apis. (#1745) - Add support for
$ref
URIs containing fragments in OpenAPI definitions and JSON schemas. (#1751, #1754)
v1.9
Client-Server API
Backwards Compatible Changes
Spec Clarifications
- Fix
m.call.negotiate
schema and example. (#1546) - Clarify that the
via
property is required form.space.parent
andm.space.child
as per MSC1772. Contributed by @PaarthShah. (#1618) - Add a note to the
/publicRooms
API that the server name is case sensitive. (#1638) - Clarify that an
m.room.name
event with an absentname
field is not expected behavior. (#1639) - Fix schemas used for account data and presence events in
GET /initialSync
. (#1647) - Fix various typos throughout the specification. (#1658, #1661, #1665)
- Fix
.m.rule.suppress_notices
push rule not being valid JSON. (#1671) - Add missing properties for
event_property_is
andevent_property_contains
push conditions toPushConditions
object. (#1673) - Indicate that fallback keys should have a
fallback
property set totrue
. (#1676) - Clarify that thread roots are not considered within the thread. (#1677)
Server-Server API
Spec Clarifications
- Fix schema of
m.receipt
EDU. (#1636) - Fix various typos throughout the specification. (#1661)
- Clarify that federation requests for non-local users are invalid. (#1672)
Application Service API
No significant changes.
Identity Service API
No significant changes.
Push Gateway API
No significant changes.
Room Versions
No significant changes.
Appendices
Spec Clarifications
- Clarify timestamp specification with respect to leap seconds. (#1627)
- Fix various typos throughout the specification. (#1652)
Internal Changes/Tooling
Backwards Compatible Changes
- Add more CI checks for OpenAPI definitions and JSON Schemas. (#1656)
- Generate server-server OpenAPI definition. (#1657)
Spec Clarifications
- Replace all mentions of Swagger by OpenAPI. (#1633)
- Fix enum types in JSON schemas. (#1634)
- Fix schema of
m.mentions
object. (#1635) - Fix rendering of
m.receipt
event in Client-Server API. (#1637) - Remove required
fieldname
in appservice Protocol definition. (#1646) - Fix github action workflow responsible for releasing of @matrix-org/spec package. (#1648)
- Upgrade GitHub actions. (#1660)
v1.8
Client-Server API
Backwards Compatible Changes
Spec Clarifications
- Fix missing
type
property in the JSON schema definition of them.reaction
event. Contributed by @chebureki. (#1552) - Make sure examples types match schema in definitions. (#1563)
- Allow
null
inroom_types
inPOST /publicRooms
endpoints schemas. (#1564) - Fix broken header formatting. Contributed by @midnightveil. (#1578)
- Render binary request and response bodies. (#1579)
- Fix description of MAC calculation in SAS verification. (#1590)
- Update link to SAS emoji definition data. (#1593)
- Fix various typos throughout the specification. (#1597)
Server-Server API
Deprecations
Backwards Compatible Changes
Spec Clarifications
- Document why
/state_ids
can respond with a 404. (#1521) - Fix response definition for
POST /_matrix/federation/v1/user/keys/claim
. (#1559) - Fix examples in server keys definition. (#1560)
- Make sure examples types match schema in definitions. (#1563)
- Allow
null
inroom_types
inPOST /publicRooms
endpoints schemas. (#1564) - Fix broken header formatting. Contributed by @midnightveil. (#1578)
- Remove spurious mention of a "default port" with respect to SRV record lookup. (#1615)
- Switch to ordered list for server name resolution steps. (#1623)
Application Service API
Spec Clarifications
- Fix type of custom
fields
in thirdparty lookup queries. (#1584)
Identity Service API
Spec Clarifications
- Make sure examples types match schema in definitions. (#1563)
Push Gateway API
No significant changes.
Room Versions
Backwards Compatible Changes
- Add room version 11 as per MSC3820. (#1604)
- Move
redacts
from top level tocontent
onm.room.redaction
events in room version 11, as per MSC2174. (#1604) - Remove
creator
fromm.room.creator
events in room version 11, as per MSC2175. (#1604) - Remove remaining usage of
origin
from events in room version 11, as per MSC3989. (#1604) - Update the redaction rules in room version 11, as per MSC2176 and MSC3821. (#1604)
Appendices
Backwards Compatible Changes
Spec Clarifications
- Clarify spec re canonical JSON to handle negative-zero; also, give an example of negative-zero and a large power of ten. (#1573)
Internal Changes/Tooling
Backwards Compatible Changes
- Upgrade Swagger data to OpenAPI 3.1. (#1310)
- Create
@matrix-org/spec
npm package to ship the SAS Emoji data definitions & translations. (#1620)
Spec Clarifications
- Update the CI to validate the file extension of changelog entries. (#1542)
- Disclosure sections now only display their title when collapsed. (#1549)
- Fix the sidebar in recent versions of Hugo. (#1551)
- Bump jsonschema to validate JSON Schemas against Draft 2020-12. (#1556)
- Use Redocly CLI to validate OpenAPI definitions. (#1558)
- Use tag name as the OpenAPI definition version. (#1561)
- Make sure version in
x-changedInMatrixVersion
is a string. (#1562) - Clarify usage of ABNF for grammar in the documentation style guide. (#1582)
- Remove unnecessary
oneOf
s in JSON schemas. (#1585) - Update the version of Hugo used to render the spec to v0.113.0. (#1591)
- Fix rendered changelog with new version of towncrier. (#1598)
- Improve the layout of tables on desktop displays. Contributed by Martin Fischer. (#1601)
v1.7
Client-Server API
New Endpoints
POST /_matrix/media/v1/create
(#1499)PUT /_matrix/media/v3/upload/{serverName}/{mediaId}
(#1499)POST /_matrix/client/v1/login/get_token
(#1530)
Backwards Compatible Changes
- Changes to the server-side aggregation of
m.replace
(edit) events, as per MSC3925. (#1440, #1525) - Add new push rule conditions
event_property_is
andevent_property_contains
, as per MSC3758 and MSC3966. (#1464) - Add
m.annotation
relations (reactions), as per MSC2677. (#1475, #1531) - Support asynchronous media uploads, as per MSC2246. (#1499, #1510)
- Document the
m.mentions
property; the.m.rule.is_user_mention
and.m.rule.is_room_mention
push rules; and other notification behaviour, as per MSC3952. (#1508) - Improve VoIP signaling, as per MSC2746. (#1511, #1540)
- Update the scope of transaction IDs, as per MSC3970. (#1526)
- Add an ability to redirect media downloads, as per MSC3860. (#1529)
- Add an ability to use an existing session to log in another, as per MSC3882. (#1530)
Spec Clarifications
- Clarify the sections of the specification concerning aggregation of child events. (#1424)
- Fix various typos throughout the specification. (#1432, #1442, #1447, #1455, #1465, #1500, #1509)
- Clarify that reply chain fallback for threads might not be present. (#1439)
- Clarify what event property the content-specific push rules match against. (#1441)
- Clarify the semantics that make requests idempotent. (#1449)
- Improve documentation of how clients use push rules. (#1461)
- Clarify that servers should enforce a default
limit
on a filter if one is not specified. (#1463) - Disambiguate using property names with dots in them during push rule processing, as per MSC3873 and MSC3980. (#1464)
- Fix phrasing & typography in the registration endpoint description. Contributed by @HarHarLinks. (#1474)
- Remove outdated text saying that
state_default
is 0 if there is nom.room.power_levels
event in a room. (#1479) - Remove fictitious
token
parameter on/keys/query
endpoint. (#1485) - Fix rendering of properties with a list of types. (#1487)
- Clarify parts of the cross-signing signature upload request. (#1495)
- Remove the
dont_notify
andcoalesce
push rule actions, as per MSC3987. (#1501) - Clarify
m.location
scheme by partially reverting f1f32d3. Contributed by @HarHarLinks. (#1507) - Add missing
knock_restricted
join rule to them.room.join_rules
schema. (#1535)
Server-Server API
Spec Clarifications
- Fix various typos throughout the specification. (#1431, #1447, #1466, #1518)
- Fix PDU examples by removing invalid OpenAPI reference to
examples/minimal_pdu.json
. (#1454) - Remove leftover
{key_id}
from/_matrix/key/v2/server/
. (#1473) - Remove extraneous
age_ts
field from the reference hash calculation section. (#1536)
Application Service API
New Endpoints
Backwards Compatible Changes
- Add homeserver->appservice ping mechanism, as per MSC2659. Contributed by @tulir at @beeper. (#1516, #1541)
Spec Clarifications
- Fix various typos throughout the specification. (#1447)
Identity Service API
Spec Clarifications
- Corrections to the response format of
/_matrix/identity/v2/store-invite
. (#1486)
Push Gateway API
No significant changes.
Room Versions
Spec Clarifications
- Clarifications of event ID formats in early room versions (#1484)
Appendices
Spec Clarifications
- Clarify that the term "Canonical JSON" is a specific thing within the Matrix specification. (#1468)
- Remove references to groups. (#1483)
- Clarifications of event ID formats in early room versions. (#1484)
Internal Changes/Tooling
Spec Clarifications
- Update references to Inter font. (#1444)
- Endpoint disclosures now hide everything but the URL. (#1446)
- Wrap $ref in allOf where other attributes are present, to improve OpenAPI compliance. (#1457)
- Minor cleanups to the GitHub Actions workflows (#1476)
- Fix generation of anchors for additional properties. (#1488)
- Fix various typos throughout the specification. (#1534)
- Document more of the spec release timeline/process. (#1538)
v1.6
Client-Server API
Backwards Compatible Changes
- Add information on standard error responses for unknown endpoints/methods, as per MSC3743. (#1347)
- Add
/rooms/<roomID>/timestamp_to_event
endpoint, as per MSC3030. (#1366) - Define
hkdf-hmac-sha256.v2
MAC method for SAS verification, as per MSC3783. (#1412)
Spec Clarifications
- Clarify the power levels integer range. (#1169, #1355)
- Clarify that
/context
always returnsevent
even iflimit
is zero. Contributed by @sumnerevans at @beeper. (#1239) - Clarify what fields are required when deleting a pusher (#1321)
- Improve the presentation of push rule kinds and actions. (#1348)
- Add missing description to m.call.answer schema. (#1353)
- Fix various typos throughout the specification. (#1363)
- Clarify parts of the end-to-end encryption sections. (#1381)
- Move login API definitions to the right heading. Contributed by @HarHarLinks. (#1382)
- Clarify which events will be included in Stripped State. Contributed by @andybalaam. (#1409)
- Add links to the spec for the definition of 3PID
medium
. (#1417) - Correct the order of the default override pushrules in the spec. (#1421)
- Improve distinction between tags and their attributes in the rich text section. Contributed by Nico. (#1433)
Server-Server API
Breaking Changes
Backwards Compatible Changes
- Add information on standard error responses for unknown endpoints/methods, as per MSC3743. (#1347)
- Add
/timestamp_to_event/<roomID>
endpoint, as per MSC3030. (#1366) - Extend
/_matrix/federation/v2/send_join
to allow omitting membership events, per MSC3706. (#1393, #1398) - Note that
/_matrix/federation/v2/send_join
should include heroes for nameless rooms, even when allowed to omit membership events, per MSC3943. (#1425)
Spec Clarifications
- Include examples inline instead of using a reference for invite endpoint definitions. (#1349)
- Fix
POST _matrix/federation/v1/user/keys/claim
response schema. (#1351) - Correct the default invite level definition in the "Checks performed on receipt of a PDU" section. (#1371)
- Clarify that CNAMEs are permissible for server names. (#1376)
- Fix
edu_type
in EDU examples. (#1383)
Application Service API
Backwards Compatible Changes
Identity Service API
Backwards Compatible Changes
Push Gateway API
Backwards Compatible Changes
Room Versions
Backwards Compatible Changes
Spec Clarifications
- Clarify the grammar for room versions. (#1422)
- Fix various typos throughout the specification. (#1423)
Appendices
No significant changes.
Internal Changes/Tooling
Spec Clarifications
- Add link to the unstable spec to the README. (#1357)
- Improve safety of the proposals retrieval script in the event of failure. (#1368)
- Rename
<content>
tocontent
in the OpenAPI files for content uploads. (#1370) - Stop autogenerating examples where we already have an example. (#1384)
- Improve formatting of definitions in the Push Notifications section. (#1415)