This release adds 5 notable features for engineering teams evaluating rollout.
✓ No known CVEs patched in this version
Topics
+4 more
Affected surfaces
ReleasePort's take
Moderate signalRelease v1.8.1 introduces multiple admin API enhancements and security fixes.
Why it matters: The critical TURN access fix (severity 90) now requires authentication for guests, eliminating unauthorized relay usage; other feature updates expand admin control surfaces.
Summary
AI summaryBroad release touches Bug Fixes, New Features & Enhancements, MSC3856, and MSC3440.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Security | Critical |
Fixes unauthenticated TURN access when `turn_allow_guests` enabled; now gated for guests and appservice users. Fixes unauthenticated TURN access when `turn_allow_guests` enabled; now gated for guests and appservice users. Source: llm_adapter@2026-07-16 Confidence: high |
— |
| Feature | Low |
Orders `/threads` endpoint by latest activity with `include=participated` filter. Orders `/threads` endpoint by latest activity with `include=participated` filter. Source: llm_adapter@2026-07-16 Confidence: high |
— |
| Feature | Low |
Implements stable threading via MSC3440 filters and rejects nested thread relations. Implements stable threading via MSC3440 filters and rejects nested thread relations. Source: llm_adapter@2026-07-16 Confidence: high |
— |
| Feature | Low |
Adds sender erasure marker with admin surfacing and gated federation serving. Adds sender erasure marker with admin surfacing and gated federation serving. Source: llm_adapter@2026-07-16 Confidence: high |
— |
| Feature | Low |
Introduces native OIDC account registration and login for Tuwunel as its own identity provider. Introduces native OIDC account registration and login for Tuwunel as its own identity provider. Source: llm_adapter@2026-07-16 Confidence: high |
— |
| Feature | Low |
Adds configurable default power-level override for newly created rooms. Adds configurable default power-level override for newly created rooms. Source: llm_adapter@2026-07-16 Confidence: high |
— |
| Feature | Low |
Enforces user suspension at the API boundary. Enforces user suspension at the API boundary. Source: llm_adapter@2026-07-16 Confidence: high |
— |
| Feature | Low |
Adds `put` command and hex key decoding to `admin query raw` commands. Adds `put` command and hex key decoding to `admin query raw` commands. Source: llm_adapter@2026-07-16 Confidence: high |
— |
| Feature | Low |
Adds Synapse-compatible admin API surface. Adds Synapse-compatible admin API surface. Source: llm_adapter@2026-07-16 Confidence: low |
— |
| Feature | Low |
Adds Synapse-compatible admin API surface (user, room, media, device, token, version, event-fetch, deletion, purge, background‑task tracking). Adds Synapse-compatible admin API surface (user, room, media, device, token, version, event-fetch, deletion, purge, background‑task tracking). Source: granite4.1:30b@2026-07-16-audit Confidence: low |
— |
| Performance | Low |
Improves federation delivery stability: evicts stale resolver routes, flushes sender on unhealthy peer activity, adds first‑failure retry grace, wakes sender to retry failed destinations. Improves federation delivery stability: evicts stale resolver routes, flushes sender on unhealthy peer activity, adds first‑failure retry grace, wakes sender to retry failed destinations. Source: granite4.1:30b@2026-07-16-audit Confidence: low |
— |
| Performance | Low |
Enhances EDU delivery reliability: persists selected device‑list and receipt EDUs until acknowledged, queues past transaction budget, selects fresh EDUs on post‑response path. Enhances EDU delivery reliability: persists selected device‑list and receipt EDUs until acknowledged, queues past transaction budget, selects fresh EDUs on post‑response path. Source: granite4.1:30b@2026-07-16-audit Confidence: low |
— |
| Performance | Low |
Bounds FIFO cache column TTLs to each column's validity window and enables intra‑L0 compaction for those columns. Bounds FIFO cache column TTLs to each column's validity window and enables intra‑L0 compaction for those columns. Source: granite4.1:30b@2026-07-16-audit Confidence: low |
— |
| Bugfix | Medium |
Fixes OIDC+LDAP registration brokenness; LDAP users now provisioned even when provider registration disabled. Fixes OIDC+LDAP registration brokenness; LDAP users now provisioned even when provider registration disabled. Source: llm_adapter@2026-07-16 Confidence: low |
— |
| Bugfix | Low |
Corrects sliding sync to include `m.space` rooms in the room list (MSC4186). Corrects sliding sync to include `m.space` rooms in the room list (MSC4186). Source: granite4.1:30b@2026-07-16-audit Confidence: low |
— |
| Bugfix | Low |
Ensures space‑visible rooms appear in space overview for new users by evicting hierarchy cache on state changes. Ensures space‑visible rooms appear in space overview for new users by evicting hierarchy cache on state changes. Source: granite4.1:30b@2026-07-16-audit Confidence: low |
— |
| Bugfix | Low |
Restores FreeBSD builds with rust-rocksdb vendoring RocksDB. Restores FreeBSD builds with rust-rocksdb vendoring RocksDB. Source: granite4.1:30b@2026-07-16-audit Confidence: low |
— |
| Bugfix | Low |
Adds missing Docker address‑advertisement configuration to MatrixRTC/Livekit setup docs. Adds missing Docker address‑advertisement configuration to MatrixRTC/Livekit setup docs. Source: granite4.1:30b@2026-07-16-audit Confidence: low |
— |
| Bugfix | Low |
Repairs Conduit database import: single‑pass `roomuserid_joined` repair, skips obsolete membership repairs, extends systemd start timeout. Repairs Conduit database import: single‑pass `roomuserid_joined` repair, skips obsolete membership repairs, extends systemd start timeout. Source: granite4.1:30b@2026-07-16-audit Confidence: low |
— |
| Bugfix | Low |
Returns own version for self‑query of remote‑server version endpoint instead of failing. Returns own version for self‑query of remote‑server version endpoint instead of failing. Source: granite4.1:30b@2026-07-16-audit Confidence: low |
— |
| Bugfix | Low |
Forbids `/messages` access on rooms the requester cannot see. Forbids `/messages` access on rooms the requester cannot see. Source: granite4.1:30b@2026-07-16-audit Confidence: low |
— |
| Bugfix | Low |
Returns 405 instead of 404 for unsupported methods on known paths. Returns 405 instead of 404 for unsupported methods on known paths. Source: granite4.1:30b@2026-07-16-audit Confidence: low |
— |
| Bugfix | Low |
Separates empty request bodies from malformed ones in request extractor. Separates empty request bodies from malformed ones in request extractor. Source: granite4.1:30b@2026-07-16-audit Confidence: low |
— |
| Bugfix | Low |
Omits `is_direct` field from member events unless true. Omits `is_direct` field from member events unless true. Source: granite4.1:30b@2026-07-16-audit Confidence: low |
— |
| Bugfix | Low |
Binds registration email regardless of UIA stage order. Binds registration email regardless of UIA stage order. Source: granite4.1:30b@2026-07-16-audit Confidence: low |
— |
| Bugfix | Low |
Restores error logging for undecodable presence data. Restores error logging for undecodable presence data. Source: granite4.1:30b@2026-07-16-audit Confidence: low |
— |
| Bugfix | Low |
Fixes release build compilation failure of room‑summary layout by boxing membership format at invite edge (regression d2c473fd4). Fixes release build compilation failure of room‑summary layout by boxing membership format at invite edge (regression d2c473fd4). Source: granite4.1:30b@2026-07-16-audit Confidence: low |
— |
Full changelog
Tuwunel 1.8.1
July 9, 2026
New Features & Enhancements
-
Synapse-compatible admin API. The Synapse admin surface is served: user, room, media, device and access-token endpoints, the version and event-fetch endpoints, and room deletion, purge, and background-task tracking, backed by an in-memory task tracker and documented on a coverage status page. Opened by @iwalkalone69 in (#38). The user endpoints include listing a user's joined rooms, opened by @ngophuocloi-miracle-aavn in (#494).
-
Threads list (MSC3856). The
/threadsendpoint now orders threads by latest activity, honors aninclude=participatedfilter, serves per-requester views that respect ignored users, guards its inputs upfront, and carries the newest edit on each thread'slatest_event. -
Stable threading (MSC3440). Threading is advertised in
/versions, therelated_by_sendersandrelated_by_rel_typesevent filters are implemented, and nested thread relations are rejected at the send endpoint. -
Sender erasure (MSC4025). An erasure marker lands with admin surfacing, erased senders' events are served as pruned copies, and federation serving of those events is gated accordingly.
-
Native OIDC account registration and login, so Tuwunel can act as its own identity provider. Requested by @temp1403-oss (#479).
-
Configurable default power-level override for newly created rooms, courtesy of @basnijholt in (#496).
-
User suspension is now enforced at the API boundary, contributed by @dasha-uwu.
-
OAuth falls back to Apple
id_tokenclaims when the userinfo endpoint fails, shipped by @basnijholt in (#495). -
The
admin query rawcommands gain aputcommand and hex key decoding, from @dasha-uwu. -
A
SECURITY.mdwith a detached PGP signature, along with issue and pull-request templates and contact links, graciously added by @x86pup. -
Event bundling advances across three proposals: aggregations bundled on search context events (MSC3666),
m.referencechildren bundled as an event-id chunk (MSC3267), and the latestm.replaceedit bundled as a full event (MSC3925). -
Private read receipts now carry a timestamp.
-
Rust is bumped to 1.95.0.
Bug Fixes
-
Sliding sync silently dropped
m.spacerooms, so spaces were absent from the room list where Synapse showed them; the list filters a client omits are now cleared before applying (MSC4186, fixes #503). Reported by @sdenike. -
Rooms made space-visible did not appear in the space overview for new users. The room hierarchy cache is now evicted on any state change (fixes #498). Reported by @Lazalatin.
-
Registration with OIDC and LDAP configured together was broken: LDAP users are now provisioned even when provider registration is disabled (fixes #499). Reported by @balintbarna.
-
Tuwunel builds on FreeBSD again, with rust-rocksdb vendoring RocksDB there (fixes #492). Reported by @syobocat.
-
The MatrixRTC/Livekit setup docs were missing the Docker address-advertisement configuration, now explained (fixes #493). Reported by @Wanja-L.
-
Conduit database import gains several repairs: the
roomuserid_joinedrepair runs in a single pass, the conduwuit-era membership repairs are skipped for Conduit imports, and systemd's start timeout is extended so long startup migrations are not killed (#41). Thanks to @x86pup. -
The remote-server version endpoint returns our own version for a self-query instead of failing, with appreciation to @x86pup.
-
Unauthenticated TURN access was possible with
turn_allow_guestsenabled; guest access is now gated and appservice users are excluded from the guest TURN credentials check, credit to @dasha-uwu. -
Federation delivery is steadier: a stale resolver route is evicted on a non-JSON response (9bac54488), the sender flushes when an unhealthy peer shows inbound activity (2d9c6848d), a first-failure retry grace precedes the backoff curve (e7f5769dd), and the sender wakes to retry a failed destination (93a772e47).
-
EDU delivery is more reliable: selected device-list and receipt EDUs persist until acknowledged (ffdfc1b41), EDU selections queue past the transaction budget (7091f84fc), and fresh EDUs are selected on the post-response path (356931737).
-
/messagesis forbidden on a room the requester cannot see (a791d7ed5). -
An unsupported method on a known path returns 405 instead of 404 (cd0513a0c).
-
The request extractor separates an empty body from a malformed one (80727f81a).
-
is_directis omitted from member events unless it is true (adb78b98c). -
The registration email binds regardless of UIA stage order (9b58caede).
-
The error log on undecodable presence data is restored (d81f34092).
-
FIFO cache column TTLs are bounded to each column's validity window, with intra-L0 compaction enabled for those columns (9b3011aa5, e9004c909).
-
Release builds could fail to compile the room-summary layout after a 1.8.0 change; boxing the membership format at the invite edge cuts the recursion (regression d2c473fd4).
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About Tuwunel
High-performance and feature-rich chat server for Matrix, and the successor to conduwuit (fork of Conduit).
Beta — feedback welcome: [email protected]