Clarify timeline expansion

erikj/sss
Erik Johnston 6 days ago
parent 5fd796926a
commit 505fbf8f5d

@ -178,9 +178,15 @@ server handles the config differently.
#### Timeline events #### Timeline events
Normally the timeline events returned are only the events that have been received since the last time the room was sent Normally the timeline events returned are only the events that have been received since the last time the room was sent
to the client (i.e. only new events). However, if the `timeline_limit` has increased (to say `N`) the server SHOULD to the client (i.e. only new events). However, if the `timeline_limit` has increased (to say `N`) and the server has not
ignore this and send down the latest `N` events, even if some of those events have previously been sent. The server MAY previously sent down all of the latest `N` events on the connection, the server SHOULD send down the latest `N` events
ignore this behaviour if the server knows it has previously sent down all of the latest `N` events. even if *some* of the events have previously been sent. If the server does not know if it has sent down all events it
SHOULD send down the latest `N` events.
For example, say the latest events in the room are `A`, `B`, `C` and `D` (from earliest to latest), and the client has
previously seen `B`, `C` and `D` with a `timeline_limit` of 1. If the client increases the `timeline_limit` to 4 then
the server SHOULD return `A`, `B`, `C` and `D`, but if the client increases it instead to 3 then server does not need to
return any events as it knows the client already saw `B`, `C` and `D`.
If the server does send down extra events, it MUST set the `expanded_timeline` to `true`. If the server does send down extra events, it MUST set the `expanded_timeline` to `true`.

Loading…
Cancel
Save