mirror of
https://github.com/spantaleev/matrix-docker-ansible-deploy.git
synced 2026-03-26 06:27:23 +00:00
Add `thread_subscriptions` as a supported web-facing stream writer in MDAD and route its unstable client endpoints via the same explicit writer-or-main model used for the other web-facing stream-backed APIs. This is not just another generic worker route. Current Synapse gives thread subscriptions their own `writers.thread_subscriptions` configuration, backs them with a multi-writer stream, and asserts on store writes that the current instance is an allowed thread-subscriptions writer. Explicit early routing is also required here because the subscription endpoint is room-scoped. In MDAD's specialized-worker model, the existing room-worker regex would otherwise match `/_matrix/client/unstable/io.element.msc4306/rooms/...` and steal the request before it reached the correct writer-or-main fallback. Unlike `device_lists`, support is added without enabling a thread-subscriptions worker by default in the standard presets. The underlying MSC4306/4308 feature remains unstable and disabled by default upstream, so the conservative default is to keep the worker count at `0` and let the new explicit routes fall back to `main` unless an operator opts in. Refs: -b99a58719b/synapse/config/workers.py (L175-L182)-b99a58719b/synapse/rest/client/thread_subscriptions.py (L38-L247)-b99a58719b/synapse/storage/databases/main/thread_subscriptions.py (L66-L83)-b99a58719b/synapse/storage/databases/main/thread_subscriptions.py (L192-L322)