The most important thing to know about 1.18.0 is that it contains support for sharding multiple workers. Specifically this means being able to run multiple federation senders, multiple client readers to handle registration and multiple push workers. This will be important for anyone running a large scale install of Synapse. You can read more about how to benefit from these changes in docs/workers.md. In the same spirit we also moved typing notifications from the main process.
Aside from that, we have new admin API support to list the users in a room, support for oEmbed for media previews (you can unfurl tweets again!) and a general slew of federation bug fixes.
Abort federation requests where the client disconnects before the ratelimiter expires. (#7930)
Cache responses to /_matrix/federation/v1/state_ids to reduce duplicated work. (#7931)
Bugfixes
Fix detection of out of sync remote device lists when receiving events from remote users. (#7815)
Fix bug where Synapse fails to process an incoming event over federation if the server is missing too much of the event's auth chain. (#7817)
Fix a bug causing Synapse to misinterpret the value off for encryption_enabled_by_default_for_room_type in its configuration file(s) if that value isn't surrounded by quotes. This bug was introduced in v1.16.0. (#7822)
Fix bug where we did not always pass in app_name or server_name to email templates, including e.g. for registration emails. (#7829)
Errors which occur while using the non-standard JWT login now return the proper error: 403 Forbidden with an error code of M_FORBIDDEN. (#7844)
Fix "AttributeError: 'str' object has no attribute 'get'" error message when applying per-room message retention policies. The bug was introduced in Synapse 1.7.0. (#7850)
Fix a bug introduced in Synapse 1.10.0 which could cause a "no create event in auth events" error during room creation. (#7854)
Fix a bug which allowed empty rooms to be rejoined over federation. (#7859)
Fix 'Unable to find a suitable guest user ID' error when using multiple client_reader workers. (#7866)
Fix a long standing bug where the tracing of async functions with opentracing was broken. (#7872, #7961)
Fix "TypeError in synapse.notifier" exceptions. (#7880)
Fix deprecation warning due to invalid escape sequences. (#7895)
Updates to the Docker image
Base docker image on Debian Buster rather than Alpine Linux. Contributed by @maquis196. (#7839)
Improved Documentation
Provide instructions on using register_new_matrix_user via docker. (#7885)
Change the sample config postgres user section to use synapse_user instead of synapse to align with the documentation. (#7889)
Reorder database paragraphs to promote postgres over sqlite. (#7933)
Update the dates of ACME v1's end of life in ACME.md. (#7934)