First of all, all PDU definitions were based on the v1 PDU definition with a few fields overwritten to change the format with needed. While that works when rendering the spec, this is semantically incorrect because it means that the objects must match both schemas, which is impossible. So now we make a base with only the common fields, and we add the others as needed by the room version. Note that there is no more "unsigned PDU" definition since it is not used directly, and hashes and signatures are the same across all versions. Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
1.5 KiB
title | type | weight | version |
---|---|---|---|
Room Version 2 | docs | 20 | 2 |
This room version builds on version 1 with an improved state resolution algorithm.
Client considerations
There are no client considerations introduced in this room version. Clients which implement the redaction algorithm locally should refer to the redactions section below for a full overview of the algorithm.
Server implementation components
{{% boxes/warning %}} The information contained in this section is strictly for server implementors. Applications which use the Client-Server API are generally unaffected by the details contained here, and can safely ignore their presence. {{% /boxes/warning %}}
Room version 2 uses the base components of room version 1, changing only the state resolution algorithm.
State resolution
{{% added-in v=2 %}}
{{% rver-fragment name="v2-state-res" %}}
Unchanged from v1
The following sections have not been modified since v1, but are included for completeness.
Redactions
{{% rver-fragment name="v1-redactions" %}}
Event IDs
{{% rver-fragment name="v1-event-ids" %}}
Event format
Events in rooms of this version have the following structure:
{{% definition path="api/server-server/definitions/pdu_v1" %}}
Deprecated event content schemas
{{% rver-fragment name="v1-deprecated-formatting-off-spec" %}}
{{% rver-fragment name="v1-stringy-power-levels" %}}
Authorization rules
{{% rver-fragment name="v1-auth-rules" %}}
Canonical JSON
{{% rver-fragment name="v1-canonical-json" %}}