dendrite

Dendrite is a second-generation Matrix homeserver written in Go!

APACHE-2.0 License

Stars
5.4K
Committers
186

Bot releases are visible (Hide)

dendrite - helm-dendrite-0.12.3

Published by github-actions[bot] over 1 year ago

Dendrite Matrix Homeserver

dendrite - helm-dendrite-0.12.2

Published by github-actions[bot] over 1 year ago

Dendrite Matrix Homeserver

dendrite - helm-dendrite-0.12.1

Published by github-actions[bot] over 1 year ago

Dendrite Matrix Homeserver

dendrite - Dendrite 0.12.0

Published by S7evinK over 1 year ago

⚠️ The binary for dendrite-monolith-server was renamed to dendrite, please modify any existing scripts/services

Features

  • The userapi and keyserver have been merged (no actions needed regarding the database)
  • The internal NATS JetStream server is now using logrus for logging (contributed by dvob)
  • The roomserver database has been refactored to have separate interfaces when working with rooms and events. Also includes increased usage of the cache to avoid database round trips. (database is unchanged)
  • The pinecone demo now shuts down more cleanly
  • The Helm chart now has the ability to deploy a Grafana chart as well (contributed by genofire)
  • Support for listening on unix sockets has been added (contributed by cyberb)
  • The internal NATS server was updated to v2.9.15
  • Initial support for runtime/trace has been added, to further track down long-running tasks

Fixes

  • The session_id is now correctly set when using SQLite
  • An issue where device keys could be removed if a device ID is reused has been fixed
  • A possible DoS issue related to relations has been fixed (reported by sleroq)
  • When backfilling events, errors are now ignored if we still could fetch events

Other

  • ⚠️ DEPRECATION: Polylith/HTTP API mode has been removed
  • The default endpoint to report usages stats to has been updated
dendrite - helm-dendrite-0.12.0

Published by github-actions[bot] over 1 year ago

Dendrite Matrix Homeserver

dendrite - helm-dendrite-0.11.2

Published by github-actions[bot] over 1 year ago

Dendrite Matrix Homeserver

dendrite - Dendrite 0.11.1

Published by S7evinK over 1 year ago

⚠️ DEPRECATION WARNING: This is the last release to have polylith and HTTP API mode. Future releases are monolith only.

Features

  • Dendrite can now be compiled against Go 1.20
  • Initial store and forward support has been added
  • A landing page showing that Dendrite is running has been added (contributed by LukasLJL)

Fixes

  • /sync is now using significantly less database round trips when using Postgres, resulting in faster initial syncs, allowing larger accounts to login again
  • Many under the hood pinecone improvements
  • Publishing rooms is now possible again
dendrite - helm-dendrite-0.11.1

Published by github-actions[bot] over 1 year ago

Dendrite Matrix Homeserver

dendrite - Dendrite 0.11.0

Published by S7evinK over 1 year ago

The last three missing federation API Sytests have been fixed - bringing us to 100% server-server Synapse parity, with client-server parity at 93% 🎉

Features

  • Added /_dendrite/admin/purgeRoom/{roomID} to clean up the database
  • The default room version was updated to 10 (contributed by FSG-Cat)

Fixes

  • An oversight in the create-config binary, which now correctly sets the media path if specified (contributed by BieHDC)
  • The Helm chart now uses the $.Chart.AppVersion as the default image version to pull, with the possibility to override it (contributed by genofire)
dendrite - helm-dendrite-0.11.0

Published by github-actions[bot] over 1 year ago

Dendrite Matrix Homeserver

dendrite - helm-dendrite-0.10.9

Published by github-actions[bot] almost 2 years ago

Dendrite Matrix Homeserver

dendrite - Dendrite 0.10.9

Published by S7evinK almost 2 years ago

Features

  • Stale device lists are now cleaned up on startup, removing entries for users the server doesn't share a room with anymore
  • Dendrite now has its own Helm chart
  • Guest access is now handled correctly (disallow joins, kick guests on revocation of guest access, as well as over federation)

Fixes

  • Push rules have seen several tweaks and fixes, which should, for example, fix notifications for m.read_receipts
  • Outgoing presence will now correctly be sent to newly joined hosts
  • Fixes the /_dendrite/admin/resetPassword/{userID} admin endpoint to use the correct variable
  • Federated backfilling for medium/large rooms has been fixed
  • /login causing wrong device list updates has been resolved
  • /sync should now return the correct room summary heroes
  • The default config options for recaptcha_sitekey_class and recaptcha_form_field are now set correctly
  • /messages now omits empty state to be more spec compliant (contributed by handlerug)
  • /sync has been optimised to only query state events for history visibility if they are really needed
dendrite - helm-dendrite-0.10.8

Published by github-actions[bot] almost 2 years ago

Dendrite Matrix Homeserver

dendrite - Dendrite 0.10.8

Published by neilalexander almost 2 years ago

Features

  • The built-in NATS Server has been updated to version 2.9.8
  • A number of under-the-hood changes have been merged for future virtual hosting support in Dendrite (running multiple domain names on the same Dendrite deployment)

Fixes

  • Event auth handling of invites has been refactored, which should fix some edge cases being handled incorrectly
  • Fix a bug when returning an empty protocol list, which could cause Element to display "The homeserver may be too old to support third party networks" when opening the public room directory
  • The sync API will no longer filter out the user's own membership when using lazy-loading
  • Dendrite will now correctly detect JetStream consumers being deleted, stopping the consumer goroutine as needed
  • A panic in the federation API where the server list could go out of bounds has been fixed
  • Blacklisted servers will now be excluded when querying joined servers, which improves CPU usage and performs less unnecessary outbound requests
  • A database writer will now be used to assign state key NIDs when requesting NIDs that may not exist yet
  • Dendrite will now correctly move local aliases for an upgraded room when the room is upgraded remotely
  • Dendrite will now correctly move account data for an upgraded room when the room is upgraded remotely
  • Missing state key NIDs will now be allocated on request rather than returning an error
  • Guest access is now correctly denied on a number of endpoints
  • Presence information will now be correctly sent for new private chats
  • A number of unspecced fields have been removed from outbound /send transactions
dendrite - Dendrite 0.10.7

Published by neilalexander almost 2 years ago

NOTE: Docker users may need to change the ownership of the Dendrite files (config, JetStream, logs, media and fulltext index path) to the dendrite user (UID 1337) to complete this upgrade.

Features

  • Dendrite will now use a native SQLite port when building with CGO_ENABLED=0
  • A number of thirdparty endpoints have been added, improving support for appservices

Fixes

  • The "state" section of the /sync response is no longer limited, so state events should not be dropped unexpectedly
  • The deduplication of the "timeline" and "state" sections in /sync is now performed after applying history visibility, so state events should not be dropped unexpectedly
  • The prev_batch token returned by /sync is now calculated after applying history visibility, so that the pagination boundaries are correct
  • The room summary membership counts in /sync should now be calculated properly in more cases
  • A false membership leave event should no longer be sent down /sync as a result of retiring an accepted invite (contributed by tak-hntlabs)
  • Presence updates are now only sent to other servers for which the user shares rooms
  • A bug which could cause a panic when converting events into the ClientEvent format has been fixed
dendrite - Dendrite 0.10.6

Published by neilalexander almost 2 years ago

Features

  • History visibility checks have been optimised, which should speed up response times on a variety of endpoints (including /sync, /messages, /context and others) and reduce database load
  • The built-in NATS Server has been updated to version 2.9.4
  • Some other minor dependencies have been updated

Fixes

  • A panic has been fixed in the sync API PDU stream which could cause requests to fail
  • The /members response now contains the room_id field, which may fix some E2EE problems with clients using the JS SDK (contributed by ashkitten)
  • The auth difference calculation in state resolution v2 has been tweaked for clarity (and moved into gomatrixserverlib with the rest of the state resolution code)
dendrite - Dendrite 0.10.5

Published by neilalexander almost 2 years ago

Features

  • It is now possible to use hCaptcha instead of reCAPTCHA for protecting registration
  • A new auto_join_rooms configuration option has been added for automatically joining new users to a set of rooms
  • A new /_dendrite/admin/downloadState/{serverName}/{roomID} endpoint has been added, which allows a server administrator to attempt to repair a room with broken room state by downloading a state snapshot from another federated server in the room

Fixes

  • Querying cross-signing keys for users should now be considerably faster
  • A bug in state resolution where some events were not correctly selected for third-party invites has been fixed
  • A bug in state resolution which could result in not in room event rejections has been fixed
  • When accepting a DM invite, it should now be possible to see messages that were sent before the invite was accepted
  • Claiming remote E2EE one-time keys has been refactored and should be more reliable now
  • Various fixes have been made to the /members endpoint, which may help with E2EE reliability and clients rendering memberships
  • A race condition in the federation API destination queues has been fixed when associating queued events with remote server destinations
  • A bug in the sync API where too many events were selected resulting in high CPU usage has been fixed
  • Configuring the avatar URL for the Server Notices user should work correctly now
dendrite - Dendrite 0.10.4

Published by neilalexander almost 2 years ago

Features

  • Various tables belonging to the user API will be renamed so that they are namespaced with the userapi_ prefix
    • Note that, after upgrading to this version, you should not revert to an older version of Dendrite as the database changes will not be reverted automatically
  • The backoff and retry behaviour in the federation API has been refactored and improved

Fixes

  • Private read receipt support is now advertised in the client /versions endpoint
  • Private read receipts will now clear notification counts properly
  • A bug where a false leave membership transition was inserted into the timeline after accepting an invite has been fixed
  • Some panics caused by concurrent map writes in the key server have been fixed
  • The sync API now calculates membership transitions from state deltas more accurately
  • Transaction IDs are now scoped to endpoints, which should fix some bugs where transaction ID reuse could cause nonsensical cached responses from some endpoints
  • The length of the type, sender, state_key and room_id fields in events are now verified by number of bytes rather than codepoints after a spec clarification, reverting a change made in Dendrite 0.9.6
dendrite - Dendrite 0.10.3

Published by neilalexander about 2 years ago

Features

  • Event relations are now tracked and support for the /room/{roomID}/relations/... client API endpoints have been added
  • Support has been added for private read receipts
  • The built-in NATS Server has been updated to version 2.9.3

Fixes

  • The unread_notifications are now always populated in joined room responses
  • The /get_missing_events federation API endpoint should now work correctly for rooms with joined and invited visibility settings, returning redacted events for events that other servers are not allowed to see
  • The /event client API endpoint now applies history visibility correctly
  • Read markers should now be updated much more reliably
  • A rare bug in the sync API which could cause some join memberships to be incorrectly overwritten by other memberships when working out which rooms to populate has been fixed
  • The federation API now correctly updates the joined hosts table during a state rewrite
dendrite - Dendrite 0.10.2

Published by neilalexander about 2 years ago

Features

  • Dendrite will now fail to start if there is an obvious problem with the configured max_open_conns when using PostgreSQL database backends, since this can lead to instability and performance issues
  • Unnecessary/empty fields will no longer be sent in /sync responses
  • It is now possible to configure old_private_keys from previous Matrix installations on the same domain if only public key is known, to make it easier to expire old keys correctly
    • You can configure either just the private_key path, or you can supply both the public_key and key_id

Fixes

  • The sync transaction behaviour has been modified further so that errors in one stream should not propagate to other streams unnecessarily
  • Rooms should now be classified as DM rooms correctly by passing through is_direct and unsigned hints
  • A bug which caused marking device lists as stale to consume lots of CPU has been fixed
  • Users accepting invites should no longer cause unnecessary federated joins if there are already other local users in the room
  • The sync API state range queries have been optimised by adding missing indexes
  • It should now be possible to configure non-English languages for full-text search in search.language
  • The roomserver will no longer attempt to perform federated requests to the local server when trying to fetch missing events
  • The /keys/upload endpoint will now always return the one_time_keys_counts, which may help with E2EE reliability
  • The sync API will now retrieve the latest stream position before processing each stream rather than at the beginning of the request, to hopefully reduce the number of round-trips to /sync