03fc5dacbe
This patch revisits a feature we have disabled a couple of days ago: the `recency` sorter was initially only supporting the recency stamp, then later the recency stamp _and_ the latest event's timestamp. It was however buggy and we had to revert it. Now it's time to re-introduce it but with a different approach. The previous rules were: 1. if two rooms have a latest event, use their latest event's timestamps as their _scores, 2. if one of room has a latest event, use the recency stamp as their _scores_ for both rooms. Rule 2 was buggy because one room was sometimes using its latest event's timestamp, and sometimes its recency stamp, based on what it was compared to. It was an error! The new rules are the following: 1. unchanged 2. if one room has a latest event, use its latest event's timestamp as its _score_, and use no _score_ for the other room, 3. if two rooms have NO latest event, use the recency stamp as their _scores_. It means that a room with no latest event will always be sorted _after_ a room with a latest event. It can feel cruel, but it should be an edge case. When a room is synchronised, it should receive events, which should trigger the computation of a latest event. Note that this patch also renames _rank_ to _score_, as I consider it's a better vocabulary. It could be confusing to use _rank_ as one can expect all rooms to be indexed and get a rank, but it's not the case. _Score_ sounds better.