diff --git a/changelogs/room_versions/newsfragments/1158.clarification b/changelogs/room_versions/newsfragments/1158.clarification new file mode 100644 index 00000000..d4081aa2 --- /dev/null +++ b/changelogs/room_versions/newsfragments/1158.clarification @@ -0,0 +1 @@ +For room versions 2–10: correct a mistaken clarification to the state resolution algorithm. diff --git a/content/rooms/fragments/v2-state-res.md b/content/rooms/fragments/v2-state-res.md index be650647..3a66f199 100644 --- a/content/rooms/fragments/v2-state-res.md +++ b/content/rooms/fragments/v2-state-res.md @@ -138,9 +138,11 @@ the auth event is not rejected. The *resolution* of a set of states is obtained as follows: -1. Select all *power events* that appear in the *full conflicted set*. Compute - the union of their auth chains, including the power events themselves. - Sort the union using the *reverse topological power ordering*. +1. Select the set *X* of all *power events* that appear in the *full + conflicted set*. For each such power event *P*, enlarge *X* by adding + the events in the auth chain of *P* which also belong to the full + conflicted set. Sort $X$ into a list using the *reverse topological + power ordering*. 2. Apply the *iterative auth checks algorithm*, starting from the *unconflicted state map*, to the list of events from the previous step to get a partially resolved state.