* Fix ToC for room versions pages Like for the cs-module shortcode, use .RenderShortcodes instead of .Content for the rver-fragment shortcode, so the headings are detected by Hugo. Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr> * Change the way "this version" is detected in added-in and changed-in shortcodes Now that we use .RenderShortcodes in the rver-fragment shortcode, we cannot remove the output of these shortcodes dynamically because they are replaced by a temporary placeholder due to Hugo's internals. Instead, since the `this` parameter was only used for room version, we always use the `v` parameter and compare with the version provided in the page's front matter. Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr> * Add changelog Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr> * Add version front matter for v11 Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr> * Update changelogs/room_versions/newsfragments/1884.clarification --------- Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr> Co-authored-by: Travis Ralston <travpc@gmail.com>
2.7 KiB
title | type | weight | version |
---|---|---|---|
Room Version 9 | docs | 90 | 9 |
This room version builds on version 8 to add additional redaction rules that were unintentionally missed when incorporating v8.
Client considerations
See room version 8 for specific details regarding the addition of restricted rooms.
Clients which implement the redaction algorithm locally should refer to the redactions section below for a full overview.
Redactions
{{< added-in v=9 >}} m.room.member
events
now keep join_authorised_via_users_server
in addition to other keys in content
when being redacted.
{{% boxes/rationale %}}
Without the join_authorised_via_users_server
property, redacted join events
can become invalid when verifying the auth chain of a given event, thus creating
a split-brain scenario where the user is able to speak from one server's
perspective but most others will continually reject their events.
This can theoretically be worked around with a rejoin to the room, being careful
not to use the faulty events as prev_events
, though instead it is encouraged
to use v9 rooms over v8 rooms to outright avoid the situation.
Issue #3373 has further information. {{% /boxes/rationale %}}
The full redaction algorithm follows.
{{% rver-fragment name="v9-redactions" %}}
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 intricacies contained here. The section above regarding client considerations is the resource that Client-Server API use cases should reference. {{% /boxes/warning %}}
Room version 8 added a new restricted
join rule to allow members of a room
to join another room without invite. Room version 9 is based upon v8 with the
following considerations.
Redactions
Unchanged from v8
The following sections have not been modified since v8, but are included for completeness.
Handling redactions
{{% rver-fragment name="v3-handling-redactions" %}}
Event IDs
{{% rver-fragment name="v4-event-ids" %}}
Event format
{{% rver-fragment name="v4-event-format" %}}
Deprecated event content schemas
{{% rver-fragment name="v1-deprecated-formatting-off-spec" %}}
{{% rver-fragment name="v1-stringy-power-levels" %}}
Authorization rules
{{% rver-fragment name="v8-auth-rules" %}}
State resolution
{{% rver-fragment name="v2-state-res" %}}
Canonical JSON
{{% rver-fragment name="v6-canonical-json" %}}
Signing key validity period
{{% rver-fragment name="v5-signing-requirements" %}}