mirror of
https://github.com/element-hq/synapse.git
synced 2026-11-04 13:28:04 +00:00
- Re-raise SlidingSyncUnknownPosition from finish_request. A racing request on the same connection can clear the position before the persist, and Python would fail the same way, so a Python retry only repeats the work. - Treat an empty events stream cache as a miss, as Python's get_entities_changed does, so Rust asks the database. - Copy the room statuses out of the connection state before building Python objects, so the lock is never held across a Python call. - Trace the rooms Python computes for Rust, as the Python path does. - Test the per-room fallback: Python computes a room Rust leaves to it, and its changes reach the Rust state. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01L51DoxB8VnH8UjXJFDgpNG