===========================
Bugfixes
--------
- Always include `device_one_time_keys_count` key in `/sync` response to work around a bug in Element Android that broke encryption for new devices. ([\#10457](https://github.com/matrix-org/synapse/issues/10457))
-----BEGIN PGP SIGNATURE-----
iQFEBAABCgAuFiEEBTGR3/RnAzBGUif3pULk7RsPrAkFAmD5g1QQHGVyaWtAbWF0
cml4Lm9yZwAKCRClQuTtGw+sCZ9CB/9ha7LLrLRyU8hfxOi9uXDvnogFTTpkdxs9
iqIlB9bzy7u7B2Cl/y9eEK1uRBEDYuwH43515wVoPrfixECt3JROkv8D0T7nzcia
m3oiiA4XW1wWV1YmK89nbSQpb8X8DdnaXWJlkqZZYKEKlLlNCZDu+rWLXSLhIHNJ
ERsc8SmlxCDzF1fuzbPrwTc8MD8WVJU6spuYVHJ2p7NsW9Zqjybs0ZORXq06Ih5I
eeZ67Tc6BiDubV+DvRK451t84DazHG6AXyz2As4kSvzkca6GmN8KwcMrFXderhDj
F5mHGAMDUjB/mUCHveB2WdL5OjyvUlTY5FrFwfMu1wrNmp2/93Tg
=MTCR
-----END PGP SIGNATURE-----
Merge tag 'v1.38.1' into release-v1.39
Synapse 1.38.1 (2021-07-22)
===========================
Bugfixes
--------
- Always include `device_one_time_keys_count` key in `/sync` response to work around a bug in Element Android that broke encryption for new devices. ([\#10457](https://github.com/matrix-org/synapse/issues/10457))
This adds an API for third-party plugin modules to implement account validity, so they can provide this feature instead of Synapse. The module implementing the current behaviour for this feature can be found at https://github.com/matrix-org/synapse-email-account-validity.
To allow for a smooth transition between the current feature and the new module, hooks have been added to the existing account validity endpoints to allow their behaviours to be overridden by a module.
The postgres statistics collector sometimes massively underestimates the
number of distinct state groups are in the `state_groups_state`, which
can cause postgres to use table scans for queries for multiple state
groups.
We fix this by manually setting `n_distinct` on the column.
Our documentation has a history of using a document's name as a way to link to it, such as "See [workers.md]() for details". This makes sense when you're traversing a directory of files, but less sense when the files are abstracted away - as they are on the documentation website.
This PR changes the links to various documentation pages to something that fits better into the surrounding sentence, as you would when making any hyperlink on the web.
This is to help with performance, where trying to connect to thousands
of hosts at once can consume a lot of CPU (due to TLS etc).
Co-authored-by: Brendan Abolivier <babolivier@matrix.org>