mirror of
https://github.com/element-hq/synapse.git
synced 2026-11-04 19:57:45 +00:00
The new `sync/relations.rs` ports the relations handler's `get_bundled_aggregations`: thread summaries with participation and ignored users' replies subtracted, references, and the latest edit. The Rust sync handler bundles them for limited and newly joined timelines, loads the redactions of the bundled events, and the encoder serializes them. Python no longer bundles the rooms Rust computes, and the room entries hand Python the bundles only when something reads the timeline. A thread whose latest reply is from an ignored user falls back to Python for that room: finding the latest reply that is not takes the relations pagination, which is not ported. The relations queries read the database each time. Python's relations caches are not mirrored. Shadow mode now compares the Rust bundles with Python's, in the encoded rooms. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01R5b7Ruy4cgt27Mjq6Ptxbb