Releases: matrix-org/synapse
v1.72.0
Synapse 1.72.0 (2022-11-22)
Please note that Synapse now only supports PostgreSQL 11+, because PostgreSQL 10 has reached end-of-life, c.f. our Deprecation Policy.
Bugfixes
- Update forgotten references to legacy metrics in the included Grafana dashboard. (#14477)
Synapse 1.72.0rc1 (2022-11-16)
Features
- Add experimental support for MSC3912: Relation-based redactions. (#14260)
- Build Debian packages for Ubuntu 22.10 (Kinetic Kudu). (#14396)
- Add an Admin API endpoint for user lookup based on third-party ID (3PID). Contributed by @ashfame. (#14405)
- Faster joins: include heroes' membership events in the partial join response, for rooms without a name or canonical alias. (#14442)
Bugfixes
- Faster joins: do not block creation of or queries for room aliases during the resync. (#14292)
- Fix a bug introduced in Synapse 1.64.0rc1 which could cause log spam when fetching events from other homeservers. (#14347)
- Fix a bug introduced in 1.66 which would not send certain pushrules to clients. Contributed by Nico. (#14356)
- Fix a bug introduced in v1.71.0rc1 where the power level event was incorrectly created during initial room creation. (#14361)
- Fix the refresh token endpoint to be under /r0 and /v3 instead of /v1. Contributed by Tulir @ Beeper. (#14364)
- Fix a long-standing bug where Synapse would raise an error when encountering an unrecognised field in a
/sync
filter, instead of ignoring it for forward compatibility. (#14369) - Fix a background database update, introduced in Synapse 1.64.0, which could cause poor database performance. (#14374)
- Fix PostgreSQL sometimes using table scans for queries against the
event_search
table, taking a long time and a large amount of IO. (#14409) - Fix rendering of some HTML templates (including emails). Introduced in v1.71.0. (#14448)
- Fix a bug introduced in Synapse 1.70.0 where the background updates to add non-thread unique indexes on receipts could fail when upgrading from 1.67.0 or earlier. (#14453)
Updates to the Docker image
- Add all Stream Writer worker types to
configure_workers_and_start.py
. (#14197) - Remove references to legacy worker types in the multi-worker Dockerfile. (#14294)
Improved Documentation
- Upload documentation PRs to Netlify. (#12947, #14370)
- Add addtional TURN server configuration example based on eturnal and adjust general TURN server doc structure. (#14293)
- Add example on how to load balance /sync requests. Contributed by aceArt. (#14297)
- Edit sample Nginx reverse proxy configuration to use HTTP/1.1. Contributed by Brad Jones. (#14414)
Deprecations and Removals
Internal Changes
- Run unit tests against Python 3.11. (#13812)
- Add TLS support for generic worker endpoints. (#14128, #14455)
- Switch to a maintained action for installing Rust in CI. (#14313)
- Add override ability to
complement.sh
command line script to request certain types of workers. (#14324) - Enabling testing of MSC3874 (filtering of
/messages
by relation type) in complement. (#14339) - Concisely log a failure to resolve state due to missing
prev_events
. (#14346) - Use a maintained Github action to install Rust. (#14351)
- Cleanup old worker datastore classes. Contributed by Nick @ Beeper (@Fizzadar). (#14375)
- Test against PostgreSQL 15 in CI. (#14394)
- Remove unreachable code. (#14410)
- Clean-up event persistence code. (#14411)
- Update docstring to clarify that
get_partial_state_events_batch
does not just give you completely arbitrary partial-state events. (#14417) - Fix mypy errors introduced by bumping the locked version of
attrs
andgitpython
. (#14433) - Make Dependabot only bump Rust deps in the lock file. (#14434)
- Fix an incorrect stub return type for
PushRuleEvaluator.run
. (#14451) - Improve performance of
/context
in large rooms. (#14461)
v1.72.0rc1
Synapse 1.72.0rc1 (2022-11-16)
Please note that we now only support PostgreSQL 11+, because PostgreSQL 10 has reached end-of-life, c.f. our Deprecation Policy.
Features
- Add experimental support for MSC3912: Relation-based redactions. (#14260)
- Build Debian packages for Ubuntu 22.10 (Kinetic Kudu). (#14396)
- Add an Admin API endpoint for user lookup based on third-party ID (3PID). Contributed by @ashfame. (#14405)
- Faster joins: include heroes' membership events in the partial join response, for rooms without a name or canonical alias. (#14442)
Bugfixes
- Faster joins: do not block creation of or queries for room aliases during the resync. (#14292)
- Fix a bug introduced in Synapse 1.64.0rc1 which could cause log spam when fetching events from other homeservers. (#14347)
- Fix a bug introduced in 1.66 which would not send certain pushrules to clients. Contributed by Nico. (#14356)
- Fix a bug introduced in v1.71.0rc1 where the power level event was incorrectly created during initial room creation. (#14361)
- Fix the refresh token endpoint to be under /r0 and /v3 instead of /v1. Contributed by Tulir @ Beeper. (#14364)
- Fix a long-standing bug where Synapse would raise an error when encountering an unrecognised field in a
/sync
filter, instead of ignoring it for forward compatibility. (#14369) - Fix a background database update, introduced in Synapse 1.64.0, which could cause poor database performance. (#14374)
- Fix PostgreSQL sometimes using table scans for queries against the
event_search
table, taking a long time and a large amount of IO. (#14409) - Fix rendering of some HTML templates (including emails). Introduced in v1.71.0. (#14448)
- Fix a bug introduced in Synapse 1.70.0 where the background updates to add non-thread unique indexes on receipts could fail when upgrading from 1.67.0 or earlier. (#14453)
Updates to the Docker image
- Add all Stream Writer worker types to
configure_workers_and_start.py
. (#14197) - Remove references to legacy worker types in the multi-worker Dockerfile. (#14294)
Improved Documentation
- Upload documentation PRs to Netlify. (#12947, #14370)
- Add addtional TURN server configuration example based on eturnal and adjust general TURN server doc structure. (#14293)
- Add example on how to load balance /sync requests. Contributed by aceArt. (#14297)
- Edit sample Nginx reverse proxy configuration to use HTTP/1.1. Contributed by Brad Jones. (#14414)
Deprecations and Removals
Internal Changes
- Run unit tests against Python 3.11. (#13812)
- Add TLS support for generic worker endpoints. (#14128, #14455)
- Switch to a maintained action for installing Rust in CI. (#14313)
- Add override ability to
complement.sh
command line script to request certain types of workers. (#14324) - Enabling testing of MSC3874 (filtering of
/messages
by relation type) in complement. (#14339) - Concisely log a failure to resolve state due to missing
prev_events
. (#14346) - Use a maintained Github action to install Rust. (#14351)
- Cleanup old worker datastore classes. Contributed by Nick @ Beeper (@Fizzadar). (#14375)
- Test against PostgreSQL 15 in CI. (#14394)
- Remove unreachable code. (#14410)
- Clean-up event persistence code. (#14411)
- Update docstring to clarify that
get_partial_state_events_batch
does not just give you completely arbitrary partial-state events. (#14417) - Fix mypy errors introduced by bumping the locked version of
attrs
andgitpython
. (#14433) - Make Dependabot only bump Rust deps in the lock file. (#14434)
- Fix an incorrect stub return type for
PushRuleEvaluator.run
. (#14451) - Improve performance of
/context
in large rooms. (#14461)
v1.71.0
Synapse 1.71.0 (2022-11-08)
Please note that, as announced in the release notes for Synapse 1.69.0, legacy Prometheus metric names are now disabled by default.
They will be removed altogether in Synapse 1.73.0.
If not already done, server administrators should update their dashboards and alerting rules to avoid using the deprecated metric names.
See the upgrade notes for more details.
Note: in line with our deprecation policy for platform dependencies, this will be the last release to support PostgreSQL 10, which reaches upstream end-of-life on November 10th, 2022. Future releases of Synapse will require PostgreSQL 11+.
No significant changes since 1.71.0rc2.
Synapse 1.71.0rc2 (2022-11-04)
Improved Documentation
- Document the changes to monthly active user metrics due to deprecation of legacy Prometheus metric names. (#14358, #14360)
Deprecations and Removals
- Disable legacy Prometheus metric names by default. They can still be re-enabled for now, but they will be removed altogether in Synapse 1.73.0. (#14353)
Internal Changes
- Run unit tests against Python 3.11. (#13812)
Synapse 1.71.0rc1 (2022-11-01)
Features
- Support back-channel logouts from OpenID Connect providers. (#11414)
- Allow use of Postgres and SQLlite full-text search operators in search queries. (#11635, #14310, #14311)
- Implement MSC3664, Pushrules for relations. Contributed by Nico. (#11804)
- Improve aesthetics of HTML templates. Note that these changes do not retroactively apply to templates which have been customised by server admins. (#13652)
- Enable write-ahead logging for SQLite installations. Contributed by @asymmetric. (#13897)
- Show erasure status when listing users in the Admin API. (#14205)
- Provide a specific error code when a
/sync
request provides a filter which doesn't represent a JSON object. (#14262)
Bugfixes
- Fix a long-standing bug where the
update_synapse_database
script could not be run with multiple databases. Contributed by @thefinn93 @ Beeper. (#13422) - Fix a bug which prevented setting an avatar on homeservers which have an explicit port in their
server_name
and havemax_avatar_size
and/orallowed_avatar_mimetypes
configuration. Contributed by @ashfame. (#13927) - Check appservice user interest against the local users instead of all users in the room to align with MSC3905. (#13958)
- Fix a long-standing bug where Synapse would accidentally include extra information in the response to
PUT /_matrix/federation/v2/invite/{roomId}/{eventId}
. (#14064) - Fix a bug introduced in Synapse 1.64.0 where presence updates could be missing from
/sync
responses. (#14243) - Fix a bug introduced in Synapse 1.60.0 which caused an error to be logged when Synapse received a SIGHUP signal if debug logging was enabled. (#14258)
- Prevent history insertion (MSC2716) during an partial join (MSC3706). (#14291)
- Fix a bug introduced in Synapse 1.34.0 where device names would be returned via a federation user key query request when
allow_device_name_lookup_over_federation
was set tofalse
. (#14304) - Fix a bug introduced in Synapse 0.34.0 where logs could include error spam when background processes are measured as taking a negative amount of time. (#14323)
- Fix a bug introduced in Synapse 1.70.0 where clients were unable to PUT new dehydrated devices. (#14336)
Improved Documentation
- Explain how to disable the use of
trusted_key_servers
. (#13999) - Add workers settings to configuration manual. (#14086)
- Correct the name of the config option
encryption_enabled_by_default_for_room_type
. (#14110) - Update docstrings of
SynapseError
andFederationError
to bettter describe what they are used for and the effects of using them are. (#14191)
Internal Changes
- Remove unused
@lru_cache
decorator. (#13595) - Save login tokens in database and prevent login token reuse. (#13844)
- Refactor OIDC tests to better mimic an actual OIDC provider. (#13910)
- Fix type annotation causing import time error in the Complement forking launcher. (#14084)
- Refactor MSC3030
/timestamp_to_event
endpoint to loop over federation destinations with standard pattern and error handling. (#14096) - Add initial power level event to batch of bulk persisted events when creating a new room. (#14228)
- Refactor
/key/
endpoints to useRestServlet
classes. (#14229) - Switch to using the
matrix-org/backend-meta
version oftriage-incoming
for new issues in CI. (#14230) - Build wheels on macos 11, not 10.15. (#14249)
- Add debugging to help diagnose lost device list updates. (#14268)
- Add Rust cache to CI for
trial
runs. (#14287) - Improve type hinting of
RawHeaders
. (#14303) - Use Poetry 1.2.0 in the Twisted Trunk CI job. (#14305)
Dependency updates
Runtime:
- Bump anyhow from 1.0.65 to 1.0.66. (#14278)
- Bump jinja2 from 3.0.3 to 3.1.2. (#14271)
- Bump prometheus-client from 0.14.0 to 0.15.0. (#14274)
- Bump psycopg2 from 2.9.4 to 2.9.5. (#14331)
- Bump pysaml2 from 7.1.2 to 7.2.1. (#14270)
- Bump sentry-sdk from 1.5.11 to 1.10.1. (#14330)
- Bump serde from 1.0.145 to 1.0.147. (#14277)
- Bump serde_json from 1.0.86 to 1.0.87. (#14279)
Tooling and CI:
- Bump black from 22.3.0 to 22.10.0. (#14328)
- Bump flake8-bugbear from 21.3.2 to 22.9.23. (#14042)
- Bump peaceiris/actions-gh-pages from 3.8.0 to 3.9.0. (#14276)
- Bump peaceiris/actions-mdbook from 1.1.14 to 1.2.0. (#14275)
- Bump setuptools-rust from 1.5.1 to 1.5.2. (#14273)
- Bump twine from 3.8.0 to 4.0.1. (#14332)
- Bum...
v1.71.0rc2
Synapse 1.71.0rc2 (2022-11-04)
Please note that, as announced in the release notes for Synapse 1.69.0, legacy Prometheus metric names are now disabled by default.
They will be removed altogether in Synapse 1.73.0.
If not already done, server administrators should update their dashboards and alerting rules to avoid using the deprecated metric names.
See the upgrade notes for more details.
Improved Documentation
- Document the changes to monthly active user metrics due to deprecation of legacy Prometheus metric names. (#14358, #14360)
Deprecations and Removals
- Disable legacy Prometheus metric names by default. They can still be re-enabled for now, but they will be removed altogether in Synapse 1.73.0. (#14353)
Internal Changes
- Run unit tests against Python 3.11. (#13812)
v1.71.0rc1
Synapse 1.71.0rc1 (2022-11-01)
Features
- Support back-channel logouts from OpenID Connect providers. (#11414)
- Allow use of Postgres and SQLlite full-text search operators in search queries. (#11635, #14310, #14311)
- Implement MSC3664, Pushrules for relations. Contributed by Nico. (#11804)
- Improve aesthetics of HTML templates. Note that these changes do not retroactively apply to templates which have been customised by server admins. (#13652)
- Enable write-ahead logging for SQLite installations. Contributed by @asymmetric. (#13897)
- Show erasure status when listing users in the Admin API. (#14205)
- Provide a specific error code when a
/sync
request provides a filter which doesn't represent a JSON object. (#14262)
Bugfixes
- Fix a long-standing bug where the
update_synapse_database
script could not be run with multiple databases. Contributed by @thefinn93 @ Beeper. (#13422) - Fix a bug which prevented setting an avatar on homeservers which have an explicit port in their
server_name
and havemax_avatar_size
and/orallowed_avatar_mimetypes
configuration. Contributed by @ashfame. (#13927) - Check appservice user interest against the local users instead of all users in the room to align with MSC3905. (#13958)
- Fix a long-standing bug where Synapse would accidentally include extra information in the response to
PUT /_matrix/federation/v2/invite/{roomId}/{eventId}
. (#14064) - Fix a bug introduced in Synapse 1.64.0 where presence updates could be missing from
/sync
responses. (#14243) - Fix a bug introduced in Synapse 1.60.0 which caused an error to be logged when Synapse received a SIGHUP signal if debug logging was enabled. (#14258)
- Prevent history insertion (MSC2716) during an partial join (MSC3706). (#14291)
- Fix a bug introduced in Synapse 1.34.0 where device names would be returned via a federation user key query request when
allow_device_name_lookup_over_federation
was set tofalse
. (#14304) - Fix a bug introduced in Synapse 0.34.0 where logs could include error spam when background processes are measured as taking a negative amount of time. (#14323)
- Fix a bug introduced in Synapse 1.70.0 where clients were unable to PUT new dehydrated devices. (#14336)
Improved Documentation
- Explain how to disable the use of
trusted_key_servers
. (#13999) - Add workers settings to configuration manual. (#14086)
- Correct the name of the config option
encryption_enabled_by_default_for_room_type
. (#14110) - Update docstrings of
SynapseError
andFederationError
to bettter describe what they are used for and the effects of using them are. (#14191)
Internal Changes
- Remove unused
@lru_cache
decorator. (#13595) - Save login tokens in database and prevent login token reuse. (#13844)
- Refactor OIDC tests to better mimic an actual OIDC provider. (#13910)
- Fix type annotation causing import time error in the Complement forking launcher. (#14084)
- Refactor MSC3030
/timestamp_to_event
endpoint to loop over federation destinations with standard pattern and error handling. (#14096) - Add initial power level event to batch of bulk persisted events when creating a new room. (#14228)
- Refactor
/key/
endpoints to useRestServlet
classes. (#14229) - Switch to using the
matrix-org/backend-meta
version oftriage-incoming
for new issues in CI. (#14230) - Build wheels on macos 11, not 10.15. (#14249)
- Add debugging to help diagnose lost device list updates. (#14268)
- Add Rust cache to CI for
trial
runs. (#14287) - Improve type hinting of
RawHeaders
. (#14303) - Use Poetry 1.2.0 in the Twisted Trunk CI job. (#14305)
Dependency updates
Runtime:
- Bump anyhow from 1.0.65 to 1.0.66. (#14278)
- Bump jinja2 from 3.0.3 to 3.1.2. (#14271)
- Bump prometheus-client from 0.14.0 to 0.15.0. (#14274)
- Bump psycopg2 from 2.9.4 to 2.9.5. (#14331)
- Bump pysaml2 from 7.1.2 to 7.2.1. (#14270)
- Bump sentry-sdk from 1.5.11 to 1.10.1. (#14330)
- Bump serde from 1.0.145 to 1.0.147. (#14277)
- Bump serde_json from 1.0.86 to 1.0.87. (#14279)
Tooling and CI:
- Bump black from 22.3.0 to 22.10.0. (#14328)
- Bump flake8-bugbear from 21.3.2 to 22.9.23. (#14042)
- Bump peaceiris/actions-gh-pages from 3.8.0 to 3.9.0. (#14276)
- Bump peaceiris/actions-mdbook from 1.1.14 to 1.2.0. (#14275)
- Bump setuptools-rust from 1.5.1 to 1.5.2. (#14273)
- Bump twine from 3.8.0 to 4.0.1. (#14332)
- Bump types-opentracing from 2.4.7 to 2.4.10. (#14133)
- Bump types-requests from 2.28.11 to 2.28.11.2. (#14272)
v1.70.1
Synapse 1.70.1 (2022-10-28)
This release fixes some regressions that were discovered in 1.70.0.
#14300 was previously reported to be a regression in 1.70.0 as well. However, we have since concluded that it was limited to the reporter and thus have not needed to include any fix for it in 1.70.1.
Bugfixes
- Fix a bug introduced in Synapse 1.70.0rc1 where the access tokens sent to application services as headers were malformed. Application services which were obtaining access tokens from query parameters were not affected. (#14301)
- Fix room creation being rate limited too aggressively since Synapse v1.69.0. (#14314)
v1.70.0
Synapse 1.70.0 (2022-10-26)
No significant changes since 1.70.0rc2.
Synapse 1.70.0rc2 (2022-10-25)
Bugfixes
- Fix a bug introduced in Synapse 1.70.0rc1 where the information returned from the
/threads
API could be stale when threaded events are redacted. (#14248) - Fix a bug introduced in Synapse 1.70.0rc1 leading to broken outbound federation when using Python 3.7. (#14280)
- Fix a bug introduced in Synapse 1.70.0rc1 where edits to non-message events were aggregated by the homeserver. (#14283)
Internal Changes
- Build ABI3 wheels for CPython. (#14253)
- For the aarch64 architecture, only build wheels for CPython manylinux. (#14259)
Synapse 1.70.0rc1 (2022-10-19)
Features
- Support for MSC3856: threads list API. (#13394, #14171, #14175)
- Support for thread-specific notifications & receipts (MSC3771 and MSC3773). (#13776, #13824, #13877, #13878, #14050, #14140, #14159, #14163, #14174, #14222)
- Stop fetching missing
prev_events
after we already know their signature is invalid. (#13816) - Send application service access tokens as a header (and query parameter). Implements MSC2832. (#13996)
- Ignore server ACL changes when generating pushes. Implements MSC3786. (#13997)
- Experimental support for redirecting to an implementation of a MSC3886 HTTP rendezvous service. (#14018)
- The
/relations
endpoint can now be used on workers. (#14028) - Advertise support for Matrix 1.3 and 1.4 on
/_matrix/client/versions
. (#14032, #14184) - Improve validation of request bodies for the Device Management and MSC2697 Device Dehyrdation client-server API endpoints. (#14054)
- Experimental support for MSC3874: Filtering threads from the
/messages
endpoint. (#14148) - Improve the validation of the following PUT endpoints:
/directory/room/{roomAlias}
,/directory/list/room/{roomId}
and/directory/list/appservice/{networkId}/{roomId}
. (#14179) - Build and publish binary wheels for
aarch64
platforms. (#14212)
Bugfixes
- Prevent device names from appearing in device list updates in some situations when
allow_device_name_lookup_over_federation
isfalse
. (This is not comprehensive: see #13114.) (#10015) - Fix a long-standing bug where redactions were not being sent over federation if we did not have the original event. (#13813)
- Fix a long-standing bug where edits of non-
m.room.message
events would not be correctly bundled or have their new content applied. (#14034) - Fix a bug introduced in Synapse 1.53.0 when querying
/publicRooms
with both aroom_type
filter and athird_party_instance_id
. (#14053) - Fix a bug introduced in Synapse 1.35.0 where errors parsing a
/send_join
or/state
response would produce excessive, low-quality Sentry events. (#14065) - Fix a long-standing bug where Synapse would error on the optional 'invite_room_state' field not being provided to
PUT /_matrix/federation/v2/invite/{roomId}/{eventId}
. (#14083) - Fix a bug where invalid oEmbed fields would cause the entire response to be discarded. Introduced in Synapse 1.18.0. (#14089)
- Fix a bug introduced in Synapse 1.37.0 in which an incorrect key name was used for sending and receiving room metadata when knocking on a room. (#14102)
- Fix a bug introduced in v1.69.0rc1 where the joined hosts for a given event were not being properly cached. (#14125)
- Fix a bug introduced in Synapse 1.30.0 where purging and rejoining a room without restarting in-between would result in a broken room. (#14161, #14164)
- Fix MSC3030
/timestamp_to_event
endpoint returning potentially inaccurate closest events withoutliers
present. (#14215)
Updates to the Docker image
- Update the version of frozendict in Docker images and Debian packages from 2.3.3 to 2.3.4, which may fix memory leak problems. (#13955)
- Use the
minimal
Rust profile when building Synapse. (#14141) - Prevent a class of database sharding errors when using
Dockerfile-workers
to spawn multiple instances of the same worker. Contributed by Jason Little. (#14165) - Set
LD_PRELOAD
to use jemalloc memory allocator in Dockerfile-workers. (#14182) - Fix pre-startup logging being lost when using the
Dockerfile-workers
image. (#14195)
Improved Documentation
- Add sample worker files for
pusher
andfederation_sender
. (#14077) - Improve the listener example on the metrics documentation. (#14078)
- Expand Google OpenID Connect example config to map email attribute. Contributed by @ptman. (#14081)
- The changelog entry ending in a full stop or exclamation mark is not optional. (#14087)
- Fix links to jemalloc documentation, which were broken in #13491. (#14093)
- Remove not needed
replication
listener in docker compose example. (#14107) - Fix name of
alias_creation_rules
option in the config manual documentation. (#14124) - Clarify comment on event contexts. (#14145)
- Fix dead link to the Admin Registration API. (#14189)
Deprecations and Removals
- Remove the experimental implementation of MSC3772. (#14094)
- Remove the unstable identifier for MSC3715. (#14106, #14146)
Internal Changes
v1.70.0rc2
Synapse 1.70.0rc2 (2022-10-25)
Bugfixes
- Fix a bug introduced in Synapse 1.70.0rc1 where the information returned from the
/threads
API could be stale when threaded events are redacted. (#14248) - Fix a bug introduced in Synapse 1.70.0rc1 leading to broken outbound federation when using Python 3.7. (#14280)
- Fix a bug introduced in Synapse 1.70.0rc1 where edits to non-message events were aggregated by the homeserver. (#14283)
Internal Changes
v1.70.0rc1
Synapse 1.70.0rc1 (2022-10-19)
Features
- Support for MSC3856: threads list API. (#13394, #14171, #14175)
- Support for thread-specific notifications & receipts (MSC3771 and MSC3773). (#13776, #13824, #13877, #13878, #14050, #14140, #14159, #14163, #14174, #14222)
- Stop fetching missing
prev_events
after we already know their signature is invalid. (#13816) - Send application service access tokens as a header (and query parameter). Implements MSC2832. (#13996)
- Ignore server ACL changes when generating pushes. Implements MSC3786. (#13997)
- Experimental support for redirecting to an implementation of a MSC3886 HTTP rendezvous service. (#14018)
- The
/relations
endpoint can now be used on workers. (#14028) - Advertise support for Matrix 1.3 and 1.4 on
/_matrix/client/versions
. (#14032, #14184) - Improve validation of request bodies for the Device Management and MSC2697 Device Dehyrdation client-server API endpoints. (#14054)
- Experimental support for MSC3874. (#14148)
- Improve the validation of the following PUT endpoints:
/directory/room/{roomAlias}
,/directory/list/room/{roomId}
and/directory/list/appservice/{networkId}/{roomId}
. (#14179) - Build and publish binary wheels for
aarch64
platforms. (#14212)
Bugfixes
- Prevent device names from appearing in device list updates in some situations when
allow_device_name_lookup_over_federation
isfalse
. (This is not comprehensive: see #13114) (#10015.) - Fix a long-standing bug where redactions were not being sent over federation if we did not have the original event. (#13813)
- Fix a long-standing bug where edits of non-
m.room.message
events would not be correctly bundled or have their new content applied. (#14034) - Fix a bug introduced in Synapse 1.53.0 when querying
/publicRooms
with both aroom_type
filter and athird_party_instance_id
. (#14053) - Fix a bug introduced in Synapse 1.35.0 where errors parsing a
/send_join
or/state
response would produce excessive, low-quality Sentry events. (#14065) - Fix a long-standing bug where Synapse would error on the optional 'invite_room_state' field not being provided to
PUT /_matrix/federation/v2/invite/{roomId}/{eventId}
. (#14083) - Fix a bug where invalid oEmbed fields would cause the entire response to be discarded. Introduced in Synapse 1.18.0. (#14089)
- Fix a bug introduced in Synapse 1.37.0 in which an incorrect key name was used for sending and receiving room metadata when knocking on a room. (#14102)
- Fix a bug introduced in v1.69.0rc1 where the joined hosts for a given event were not being properly cached. (#14125)
- Fix a bug introduced in Synapse 1.30.0 where purging and rejoining a room without restarting in-between would result in a broken room. (#14161, #14164)
- Fix MSC3030
/timestamp_to_event
endpoint returning potentially inaccurate closest events withoutliers
present. (#14215)
Updates to the Docker image
- Update the version of frozendict in Docker images and Debian packages from 2.3.3 to 2.3.4, which may fix memory leak problems. (#13955)
- Use the
minimal
Rust profile when building Synapse. (#14141) - Prevent a class of database sharding errors when using
Dockerfile-workers
to spawn multiple instances of the same worker. Contributed by Jason Little. (#14165) - Set
LD_PRELOAD
to use jemalloc memory allocator in Dockerfile-workers. (#14182) - Fix pre-startup logging being lost when using the
Dockerfile-workers
image. (#14195)
Improved Documentation
- Add sample worker files for
pusher
andfederation_sender
. (#14077) - Improve the listener example on the metrics documentation. (#14078)
- Expand Google OpenID Connect example config to map email attribute. Contributed by @ptman. (#14081)
- The changelog entry ending in a full stop or exclamation mark is not optional. (#14087)
- Fix links to jemalloc documentation, which were broken in #13491. (#14093)
- Remove not needed
replication
listener in docker compose example. (#14107) - Fix name of
alias_creation_rules
option in the config manual documentation. (#14124) - Clarify comment on event contexts. (#14145)
- Fix dead link to the Admin Registration API. (#14189)
Deprecations and Removals
- Remove the experimental implementation of MSC3772. (#14094)
- Remove the unstable identifier for MSC3715. (#14106, #14146)
Internal Changes
- Optimise queries used to get a users rooms during sync. Contributed by Nick @ Beeper (@Fizzadar). (#13991)
- Update authlib from 0.15.5 to 1.1.0. (#14006)
- Make
parse_server_name
consistent in handling invalid server names. (#14007) - Don't repeatedly wake up the same users for batched events. (#14033)
- Complement test image: capture logs from nginx. (#14063)
- Don't create noisy Sentry events when a requester drops connection to the metrics server mid-request. (#14072)
- Run the integration test suites with the asyncio reactor enabled in CI. (#14092)
- Add debug logs to figure out why an event was filtered out of the client response. (#14095)
- Indicate what endpoint came back with a JSON response we were unable to parse....
v1.69.0
Synapse 1.69.0 (2022-10-17)
Please note that legacy Prometheus metric names are now deprecated and will be removed in Synapse 1.73.0.
Server administrators should update their dashboards and alerting rules to avoid using the deprecated metric names.
See the upgrade notes for more details.
No significant changes since 1.69.0rc4.
Synapse 1.69.0rc4 (2022-10-14)
Bugfixes
- Fix poor performance of the
event_push_backfill_thread_id
background update, which was introduced in Synapse 1.68.0rc1. (#14172, #14181)
Updates to the Docker image
- Fix docker build OOMing in CI for arm64 builds. (#14173)
Synapse 1.69.0rc3 (2022-10-12)
Bugfixes
- Fix an issue with Docker images causing the Rust dependencies to not be pinned correctly. Introduced in v1.68.0 (#14129)
- Fix a bug introduced in Synapse 1.69.0rc1 which would cause registration replication requests to fail if the worker sending the request is not running Synapse 1.69. (#14135)
- Fix error in background update when rotating existing notifications. Introduced in v1.69.0rc2. (#14138)
Internal Changes
- Rename the
url_preview
extra tourl-preview
, for compatability with poetry-core 1.3.0 and PEP 685. From-source installations using this extra will need to install using the new name. (#14085)
Synapse 1.69.0rc2 (2022-10-06)
Deprecations and Removals
- Deprecate the
generate_short_term_login_token
method in favor of an asynccreate_login_token
method in the Module API. (#13842)
Internal Changes
- Ensure Synapse v1.69 works with upcoming database changes in v1.70. (#14045)
- Fix a bug introduced in Synapse v1.68.0 where messages could not be sent in rooms with non-integer
notifications
power level. (#14073) - Temporarily pin build-system requirements to workaround an incompatibility with poetry-core 1.3.0. This will be reverted before the v1.69.0 release proper, see #14079. (#14080)
Synapse 1.69.0rc1 (2022-10-04)
Features
- Allow application services to set the
origin_server_ts
of a state event by providing the query parameterts
inPUT /_matrix/client/r0/rooms/{roomId}/state/{eventType}/{stateKey}
, per MSC3316. Contributed by @lukasdenk. (#11866) - Allow server admins to require a manual approval process before new accounts can be used (using MSC3866). (#13556)
- Exponentially backoff from backfilling the same event over and over. (#13635, #13936)
- Add cache invalidation across workers to module API. (#13667, #13947)
- Experimental implementation of MSC3882 to allow an existing device/session to generate a login token for use on a new device/session. (#13722, #13868)
- Experimental support for thread-specific receipts (MSC3771). (#13782, #13893, #13932, #13937, #13939)
- Add experimental support for MSC3881: Remotely toggle push notifications for another client. (#13799, #13831, #13860)
- Keep track when an event pulled over federation fails its signature check so we can intelligently back-off in the future. (#13815)
- Improve validation for the unspecced, internal-only
_matrix/client/unstable/add_threepid/msisdn/submit_token
endpoint. (#13832) - Faster remote room joins: record when we first partial-join to a room. (#13892)
- Support a
dir
parameter on the/relations
endpoint per MSC3715. (#13920) - Ask mail servers receiving emails from Synapse to not send automatic replies (e.g. out-of-office responses). (#13957)
Bugfixes
- Send push notifications for invites received over federation. (#13719, #14014)
- Fix a long-standing bug where typing events would be accepted from remote servers not present in a room. Also fix a bug where incoming typing events would cause other incoming events to get stuck during a fast join. (#13830)
- Fix a bug introduced in Synapse v1.53.0 where the experimental implementation of MSC3715 would give incorrect results when paginating forward. (#13840)
- Fix access token leak to logs from proxy agent. (#13855)
- Fix
have_seen_event
cache not being invalidated after we persist an event which causes inefficiency effects like extra/state
federation calls. (#13863) - Faster room joins: Fix a bug introduced in 1.66.0 where an error would be logged when syncing after joining a room. (#13872)
- Fix a bug introduced in 1.66.0 where some required fields in the pushrules sent to clients were not present anymore. Contributed by Nico. (#13904)
- Fix packaging to include
Cargo.lock
insdist
. (#13909) - Fix a long-standing bug where device updates could cause delays sending out to-device messages over federation. (#13922)
- Fix a bug introduced in v1.68.0 where Synapse would require
setuptools_rust
at runtime, even though the package is only required at build time. (#13952) - Fix a long-standing bug where
POST /_matrix/client/v3/keys/query
requests could result in excessively large SQL queries. (#13956) - Fix a performance regression in the
get_users_in_room
database query. Introduced in v1.67.0. (#13972) - Fix a bug introduced in v1.68.0 bug where Rust extension wasn't built in
release
mode when usingpoetry install
. (#14009) - Do not return an unspecified
original_event
field when using the stable/relations
endpoint. Introduced in Synapse v1.57.0. (#14025) - Correctly handle a race with device lists when a remote user leaves during a partial join. (#13885)
- Correctly handle sending local device list updates to remote servers during a partial join. (#13934)
Improved Documentation
- Add
worker_main_http_uri
for the worker generator bash script. (#13772) - Update URL for the NixOS module for Synapse. (#13818)
- Fix a mistake in sso_mapping_providers.md:
map_user_attributes
is expected to returndisplay_name
, notdisplayname
. (#13836) - Fix a cross-link from the registration admin API to the
registration_shared_secret
configuration documentation. (#13870) - Update the man page for the
hash_password
script to correct the default number of bcrypt rounds performed. (#13911, #13930) - Emphasize the right reasons whe...