@@ -68,9 +68,38 @@ properties:
68
68
description : Include rooms that the user has left in the sync, default false
69
69
type : boolean
70
70
state :
71
+ type : object
72
+ title : StateFilter
71
73
allOf :
72
74
- $ref : room_event_filter.yaml
73
75
description : The state events to include for rooms.
76
+ properties :
77
+ lazy_load_members :
78
+ type : boolean
79
+ description : |-
80
+ If ``true``, the only ``m.room.member`` events returned in
81
+ the ``state`` section of the ``/sync`` response are those
82
+ which are definitely necessary for a client to display
83
+ the ``sender`` of the timeline events in that response.
84
+ If ``false``, ``m.room.member`` events are not filtered.
85
+ By default, servers should suppress duplicate redundant
86
+ lazy-loaded ``m.room.member`` events from being sent to a given
87
+ client across multiple calls to ``/sync``, given that most clients
88
+ cache membership events (see ``include_redundant_members``
89
+ to change this behaviour).
90
+ include_redundant_members :
91
+ type : boolean
92
+ description : |-
93
+ If ``true``, the ``state`` section of the ``/sync`` response will
94
+ always contain the ``m.room.member`` events required to display
95
+ the ``sender`` of the timeline events in that response, assuming
96
+ ``lazy_load_members`` is enabled. This means that redundant
97
+ duplicate member events may be returned across multiple calls to
98
+ ``/sync``. This is useful for naive clients who never track
99
+ membership data. If ``false``, duplicate ``m.room.member`` events
100
+ may be suppressed by the server across multiple calls to ``/sync``.
101
+ If ``lazy_load_members`` is ``false`` this field is ignored.
102
+
74
103
timeline :
75
104
allOf :
76
105
- $ref : room_event_filter.yaml
0 commit comments