• v26.6.0 a76c5c95aa

    v26.6.0
    Some checks failed
    Checks / Prek / Pre-commit & Formatting (push) Successful in 1m18s
    Checks / Prek / Check changed files (push) Successful in 6s
    Build / Debian DEB / build (debian-latest) (push) Successful in 8m34s
    Build / Debian DEB / build (debian-oldstable) (push) Successful in 8m37s
    Build / Debian DEB / build (ubuntu-latest) (push) Successful in 9m21s
    Build / Debian DEB / build (ubuntu-previous) (push) Successful in 8m20s
    Build / Static via Nix / Build conduwuit-linux-static-amd64 Binary (push) Successful in 22m9s
    Build / Static via Nix / Build conduwuit-linux-static-arm64 Binary (push) Successful in 16m43s
    Build / Static via Nix / Build conduwuit-haswell-linux-static-amd64-maxperf Binary (push) Successful in 47m41s
    Documentation / Build and Deploy Documentation (push) Successful in 1m32s
    Checks / Prek / Clippy and Cargo Tests (push) Has been cancelled
    Build / Static via Nix / Build conduwuit-linux-static-arm64-maxperf Binary (push) Successful in 31m49s
    Release Docker Image / Build linux-amd64 (release) (push) Successful in 14m32s
    Build / Static via Nix / Release Binaries (push) Successful in 22s
    Release Docker Image / Build linux-amd64 (max-perf) (push) Failing after 31m14s
    Release Docker Image / Create Multi-arch Release Manifest (push) Successful in 17s
    Release Docker Image / Build linux-arm64 (max-perf) (push) Failing after 32m40s
    Release Docker Image / Create Max-Perf Manifest (push) Has been skipped
    Release Docker Image / Release Binaries (push) Waiting to run
    Release Docker Image / Mirror Images (push) Has been skipped
    Release Docker Image / Build linux-arm64 (release) (push) Has started running
    Stable

    ginger released this 2026-07-10 17:28:57 +00:00 | 3 commits to main since this release

    Signed by ginger
    SSH key fingerprint: SHA256:euWU/YvKXZwtOOQmT9KPiMSOJI3gOcPfujywaadW+ok


    Continuwuity is a community-driven Matrix chat server, designed to be efficient and easy to run

    this PR makes performance and stability WORSE. we did this because we are EVIL.

    Hello friends! It's been a while. Almost three months, in fact, but we've been busy. I'm not sure how to convey how major this release is, and how excited we are for you all to get to play with it. We've changed more than thirty five thousand lines of code - a third of the codebase - and brought you some incredible features since our last release, including some of our most highly requested features ever. To mark this milestone, we've changed our versioning scheme! Continuwuity is officially out of the zerover tarpit.

    In compatible clients, you'll notice a new login and registration screen. This is our newly introduced support for OAuth login, also referred to as next-generation authentication. This means it's finally possible to register new accounts in Element X! We've also added support for Single Sign On using OpenID Connect-compatible identity providers, and have removed support for LDAP per #1701.

    We've fixed a longstanding design flaw with our legacy sync code which should massively reduce database sizes for old deployments and slow database growth for new ones.

    We've also got an incredible amount of invisible improvements! Many improvements have been made to federation to make it faster and more reliable. You're much less likely to experience a state reset. Room upgrades are smoother and more reliable. Synchronisation with clients is more correct and reliable. Unable to Decrypt errors should be less likely when you recive lots of messages while offline. Policy server support has been updated.

    Server administrators may wish to configure the new request_ip_source option to set how Continuwuity determines the client's IP address.

    Thanks to @julian45, our Fedora RPM packages have been replaced by packages in the Terra repository and the OpenSUSE Build Service. This means that Continuwuity is now available for EL and OpenSUSE distributions. To use these packages, please follow the new RPM guide. Users on the old forgejo.ellis.link RPM repositories must migrate to the new packages.

    Note

    Updating to this release is one-way, as it includes database migrations that make it incompatible with the 0.5.x series.

    Features

    • Added support for linking an external identity provider with OIDC. Contributed by @ginger. (#765)

    • Updated MSC4284: Policy Servers implementation to support the newly stabilised proposal. Contributed by @nex. (#1487)

    • Added config option for default room ACLs. Contributed by @eve. (#1691)

    • Added support for fallback encryption keys. (#1710)

    • Add !admin users reject-all-invites to clean invite spam (#1741)

    • Implemented event rejection, which should resolve and prevent future netsplits of the kinds observed
      within some Continuwuity rooms.
      Also resolved several bugs related to both soft-failing events, and event backfilling, which should
      improve state resolution stability.
      The !admin debug get-pdu command was updated to disambiguate event acceptance status, and
      !admin debug show-auth-chain was added to visually display event auth chains, which may assist
      developers in debugging strangely complex events.

      Contributed by @nex. (#1747)

    • Added full support for MSC4168: Update m.space.* state on room upgrade. Contributed by @nex. (#1807)

    • Improved the performance and reliability of fetching missing events, improving network partition recovery. Contributed
      by @nex. (#1818)

    • Added static builds using Nix, allowing for Continuwuity on musl. During this, we also introduced a max-perf-haswell package, separating it from max-perf, so you may want to swap to this if you are on NixOS. Contributed by @Henry-Hiles (QuadRadical). (#1853)

    • Added support for MSC4380 invite blocking, which has become part of the Matrix specification in v1.18. Contributed by @nex. (#1875)

    • Added !admin debug get-state-at command (#1877)

    • Added a configuration option to allow choosing a client IP source that is not the TCP connecting IP. Contributed by @nex. (#1931)

    • Added support for MSC4466, which allows clients to customize how changes to a user's global profile are propagated. Contributed by @ginger.

    • Added support for Matrix 1.16's state_after feature, allowing clients which understand it to sync room state changes more reliably. Contributed by @ginger.

    • Added support for authenticating clients using the new OAuth 2.0 login API. Contributed by @ginger.

    • Appservice device management as outlined in MSC4190 (part of Matrix 1.17) is now fully supported. Contributed by @ginger.

    • Users may now be forbidden from deactivating their own accounts with the new allow_deactivation config option. Contributed by @ginger.

    Bugfixes

    • Adjusted legacy sync logic to allow the roomsynctoken_shortstatehash database column to be dropped, massively reducing database sizes, especially for old deployments. Contributed by @ginger. (#917)
    • Fixed a bug that caused the server to drop events during processing if several events for the same room were sent in a singular transaction. Contributed by @nex. (#1711)
    • fix !admin query account-data account-data-get not returning the content (#1742)
    • Fixed an issue where Continuwuity would only advertise support for the unstable endpoint for Mutual Rooms (MSC2666), despite only supporting the stable endpoint. Contributed by @Henry-Hiles (QuadRadical) (#1752)
    • Fixed admin commands being ignored when they had leading whitespace before admin commands. Contributed by @kitvonsnookerz. (#1804)
    • Fixed several bugs in the POST /_matrix/client/v3/rooms/{roomId}/upgrade endpoint. Contributed by @nex. (#1807)
    • Devices which set their presence as "offline" will no longer be considered for presence updates. Contributed by @timedout.
    • Improved invite and join reliability in clients using legacy sync. Contributed by @ginger
    • The invite recipient's membership event is now included in invite stripped state, which should fix flaky invite display in some clients. Contributed by @ginger

    Improved Documentation

    • Add performance tuning documentation. Contributed by @stratself. (#1498)
    • Explain accessing Continuwuity's server console when deployed via Docker. (#1671)
    • Clarified in the config that max_request_size affects federated media as well. (#1706)
    • Added example configuration using caddy-docker-proxy in the livekit setup section of the docs. Contributed by @Cease (#1762)
    • Updated deployment docs to account for new RPM package availability across more distros. Contributed by @julian45. (#1912)

    Deprecations and Removals

    • Removed support for LDAP. (#1701)
    • Removed support for guest user registration, a little-used and deprecated approach to room previews.
    • Removed the /_conduwuit/ versions of the local_user_count and version routes. These routes are still accessible under the /_continuwuity prefix.
    • Support for server-side blurhashing (part of MSC2448) has been removed.
    • The deprecated well_known.rtc_focus_server_urls config option has been removed. MatrixRTC foci should be configured using the matrix_rtc.foci config option.

    Misc

    • #1505, #1829, #1927, #1933, #1934
    • Switched from Continuwuity's fork of Ruma back to upstream Ruma. Contributed by @ginger.
    • The version of Debian that the Docker-based build process uses has been upgraded from Bookworm to Trixie, meaning that standalone binaries now have a minimum glibc of 2.41, and can no longer be used on distro versions from before 2025-01-30

    Get Continuwuity

    Docker Images

    • Forgejo: forgejo.ellis.link/continuwuation/continuwuity:v26.6.0

    Mirrors (may be outdated):

    • Docker Hub: docker.io/jadedblueeyes/continuwuity:v26.6.0
    • GitHub: ghcr.io/continuwuity/continuwuity:v26.6.0
    • GitLab: registry.gitlab.com/continuwuity/continuwuity:v26.6.0

    You can also use the latest tag for the most recent release, or v26.6 for the most recent release in the v26.6 series.

    First-party Packages

    Community Packages

    Packaging status

    Binaries

    Plain binaries are distributed below. They require glibc and liburing to work - most distributions already have these installed.

    Static binaries are built with musl, and will work on any Linux distribution.

    From Source

    See our deployment documentation for instructions on building from source.

    Downloads