mirror of
https://github.com/element-hq/synapse.git
synced 2026-11-05 06:47:43 +00:00
`rust/src/sliding_sync/room_lists/sort.rs` holds `sort_rooms` as a `SortPlan`: the decision logic with the stream change cache shortcut, and the caller fetching what each step asks for. `lists.rs` holds the ranges to `SYNC` operations with the full-range no-sort shortcut, the config combining across lists and room subscriptions, and the decision half of `_filter_relevant_rooms_to_send`, including the reset for a connection with too many rooms to update. The Python ranges loop moves, unchanged, into `_sync_list_ops`, so the test can call it. It keeps a quirk the Rust ports: once a room combines with a config from an earlier list, every later room in the same list takes the combined config too. The relevant room map is an `IndexMap`, which keeps Python's dict order, so `indexmap` becomes a direct dependency. It was already in the tree. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01L51DoxB8VnH8UjXJFDgpNG