Skip to content
This repository has been archived by the owner on Nov 14, 2024. It is now read-only.

Dendrite 0.8.3

Compare
Choose a tag to compare
@neilalexander neilalexander released this 09 May 16:31
· 904 commits to main since this release
6b3c183

Features

  • Open registration is now harder to enable, which should reduce the chance that Dendrite servers will be used to conduct spam or abuse attacks
    • Dendrite will only enable open registration if you pass the --really-enable-open-registration command line flag at startup
    • If open registration is enabled but this command line flag is not passed, Dendrite will fail to start up
  • Dendrite now supports phone-home statistic reporting
    • These statistics include things like the number of registered and active users, some configuration options and platform/environment details, to help us to understand how Dendrite is used
    • This is not enabled by default — it must be enabled in the global.report_stats section of the config file
  • Monolith installations can now be configured with a single global database connection pool (in global.database in the config) rather than having to configure each component separately
    • This also means that you no longer need to balance connection counts between different components, as they will share the same larger pool
    • Specific components can override the global database settings by specifying their own database block
    • To use only the global pool, you must configure global.database and then remove the database block from all of the component sections of the config file
  • A new admin API endpoint /_dendrite/admin/evacuateRoom/{roomID} has been added, allowing server admins to forcefully part all local users from a given room
  • The sync notifier now only loads members for the relevant rooms, which should reduce CPU usage and load on the database
  • A number of component interfaces have been refactored for cleanliness and developer ease
  • Event auth errors in the log should now be much more useful, including the reason for the event failures
  • The forward extremity calculation in the roomserver has been simplified
  • A new index has been added to the one-time keys table in the keyserver which should speed up key count lookups

Fixes

  • Dendrite will no longer process events for rooms where there are no local users joined, which should help to reduce CPU and RAM usage
  • A bug has been fixed in event auth when changing the user levels in m.room.power_levels events
  • Usernames should no longer be duplicated when no room name is set
  • Device display names should now be correctly propagated over federation
  • A panic when uploading cross-signing signatures has been fixed
  • Presence is now correctly limited in /sync based on the filters
  • The presence stream position returned by /sync will now be correct if no presence events were returned
  • The media /config endpoint will no longer return a maximum upload size field if it is configured to be unlimited in the Dendrite config
  • The server notices room will no longer produce "User is already joined to the room" errors
  • Consumer errors will no longer flood the logs during a graceful shutdown
  • Sync API and federation API consumers will no longer unnecessarily query added state events matching the one in the output event
  • The Sync API will no longer unnecessarily track invites for remote users