## matrix-construct/tuwunel — v1.9.1…v1.9.2

_129 commits._

### Features
- **core/utils: Add fallible concurrent any and all predicates.** (96475d6)
- **config: Default new rooms to room version 12.** (767f53c)
- **admin: Add feds ping latency survey.** (34168ae)
- **core/utils: Add try_unzip for fallible streams.** (18acafd)
- **Revert "Merge PR #587: add a knob to skip appservice one-time key claims."** (738b83c)
- **pusher: Add ruleset and export the suppressed row aliases.** (e217227)
- **state_cache: Add remote_room_servers for the federation fan-out set.** (cdca9fe)
- **Merge PR #587: add a knob to skip appservice one-time key claims.** (a6dd13a)

### Fixes
- **github: Ask bug reporters whether they tested the main branch.** (0de3d08)
- **core/alloc/je: Skip metadata_thp where jemalloc lacks it. (regression 80d209b9c)** (218d3d0)
- **auth_chain: Yield the implied create event for v12 rooms. (regression 944f16520)** (818e64f)
- **admin: Restore feds per-server versions. (regression ca903f31f)** (c722cfb)
- **Merge PR #594: add a knob for appservice users in search. (regression df405cc6c)** (ef274db)
- **fix missing parameter** (cc7d768)
- **fix some unwanted changes made by revert** (9fb8d13)
- **fix cargo .toml** (5cbee84)
- **state_accessor: Await the erasure gate before membership. (regression 139b29974)** (30be94b)
- **sync: Burst members only when the room is encrypted now. (regression 0adec1e3a)** (48769ca)
- **sync: Exclude lazy members from device-list changes. (regression c337ea186)** (1ecd6c5)

### Backend
- **Bump 1.9.2.** (c991bca)
- **tests: Corrupt the joined count with a value every profile rejects.** (78d3611)
- **complemau: Drop the skipped to-device burst row from the baseline. (65624c406)** (57aba3e)
- **tests: Accept the Playwright cases that assume a demotable room creator.** (f621654)
- **Merge PR #593: Remove appservice key claim and query proxies.** (65624c4)
- **Merge PR #595: Limit legacy database compatibility symlinks.** (005cbcd)
- **sync: Collect profile candidates through fallible streams.** (fbbf30a)
- **sync: Share legacy profile base field selections.** (ff9e5f7)
- **sync: Correct sliding profile visibility and delivery. (closes #582)** (005830a)
- **sending: Drain queued updates before selecting fresh EDUs.** (62a6085)
- **sending: Send incremental device-list and signing-key updates.** (c0d0528)
- **sync: Correct legacy profile visibility and delivery.** (760af65)
- **sync: Resolve the state-after snapshot through the timeline helper.** (15201a4)
- **sync: Return the window's end as prev_batch for a create-rooted timeline.** (5895a78)
- **client/members: Serve the membership snapshot at the requested token.** (6fe0095)
- **deactivate: Skip the power-level demotion when the user holds no entry.** (56d75ca)
- **docker: Advance complement onto upstream main.** (870dd61)
- **config: Emit a TOML-valid default for deprioritize_joins_through_servers.** (e102f21)
- **config: Warn where a pattern option holds a plain name.** (77e0bd0)
- **migrations: Carry a foreign database's access-token expiry.** (35328ad)
- **core/alloc/je: Describe what metadata_thp changes.** (2627d5b)
- **sync: Serve MSC4429 profile updates in legacy sync.** (a049cb7)
- **sync: Send a profile base when the MSC4262 fields widen.** (6fab64e)
- **sync: Send the own profile base whenever the connection owes it.** (d953783)
- **deps: Advance jevmalloc and rust-rocksdb for OpenBSD.** (d719690)
- **core/alloc/je: Skip percpu_arena where jemalloc cannot find the CPU.** (d226951)
- **profile: Log a restated field for the writer's own devices.** (4eade47)
- **debian: Print the database fixups only where they change something.** (7bf70d9)
- **packaging: Leave a database symlink only where one was adopted.** (f549aa0)
- **state_res: Preserve async stack boundaries.** (9769314)
- **state_res: Project power event classification.** (6b73654)
- **state_res: Decode auth references without full events.** (d741a57)
- **state_res: Borrow authorization state through fetch traits.** (cb3ed70)
- **state_res: Replace event fetch closures with borrowed trait handles.** (49a6fcb)
- **state_res: Share fixtures and restore MSC4297 benchmarks.** (cfb93da)
- **users: Record the device behind each device-list change.** (e5da06b)
- **database: Deserialize single-byte integers.** (dfcf7b9)
- **utils/future: Return the present value from unwrap_or_else_async.** (f4f5a03)
- **profile: Fill owned membership content and return it.** (fdae8de)
- **database/txn: Allow flush failure without panic; inline empty conditional.** (042769d)
- **database/txn: Eliminate untyped `[u8]`.** (2e92d37)
- **admin: Select feds version fields.** (976b5bc)
- **state_cache: Unbox user membership streams.** (07479af)
- **state_cache: Concurrent independent membership update operations.** (ee84e4f)
- **membership: Concurrent independent event and routing reads.** (89b12ef)
- **sync: Preserve state deltas across configuration changes (fixes #569).** (eba61f3)
- **deactivate: Test the full account deactivation and erasure lifecycle.** (2593370)
- **deactivate: Split account cleanup and bound concurrent room departures.** (c53d80d)
- **media: Allow inline styles by default with an opt-out. (6abdaa603)** (039793d)
- **media: Allow attachment framing by default. (6abdaa603)** (abff2b7)
- **service: Document federation and account services.** (2a60952)
- **service: Document fetcher and room services.** (211806b)
- **service: Document access and key services.** (83119c7)
- **service: Document cache and storage services.** (8ca3219)
- **service: Document timeline and utility services.** (3a4b33b)
- **Do not create DB compatibility symlinks for fresh installs in debian package** (12bfbfc)
- **user_directory: Page search results in user order.** (773bb5c)
- **api/client: make appservice directory visibility configurable** (b996bc5)
- **deps: Update rustls to 0.23.45 for the audit gate.** (0c2598d)
- **core/utils: Drop the Item: Send bound from ready_find_map.** (8761847)
- **core/utils: Return opaque Send streams from ready_take_while and skip_while.** (69b5b34)
- **sending: Split the service into per-concern units.** (dec5bc1)
- **fmt** (768c091)
- **Revert "appservice: Implement MSC3983 and MSC3984 key proxies."** (8a551ff)
- **Revert "appservice: Forward MSC3983 key claims only to registrations opting in."** (d15c2db)
- **core/utils: Return an opaque Send stream from ready_filter.** (5b541d3)
- **sending: Split sender into additional units.** (54ebeaa)
- **tests: Root every fixture database under the platform temp dir. (fixes #592)** (0b88bf3)
- **Replace Either constructors with extension methods.** (80014fa)
- **client/admin: Drop the async closure from the notice tag fallback.** (82e40a6)
- **users: Refuse a device ID that names a cross-signing key.** (99c6c32)
- **users: Remove the device identity key row with the device.** (1347197)
- **Merge PR #591: remove identity keys with deleted devices.** (abcbcba)
- **admin: Sort the feds version listing by column.** (b7b2871)
- **admin: Count results in the feds query footer.** (9da5701)
- **media: Adopt the MSC4149 content security policy.** (6abdaa6)
- **docs/compliance: Rescore MSC3925 and MSC4149 against the current tree.** (c1fd046)
- **Merge PR #590: match password UIAA to account credentials.** (b50bdb4)
- **Refactor several mutable antipatterns with Itertools.** (741f097)
- **profile: Publish stored fields and discovery atomically.** (925975c)
- **database: Pin the persisted CBOR layout with legacy fixtures.** (047308f)
- **server: Reuse the optional result adapter.** (47af7cc)
- **client/summary: Return only the requested room summary.** (926b4ea)
- **timeline: Document accepted-only PDU lookups.** (0305b47)
- **alias: Cover directory indexes across alias deletion.** (06f06f3)
- **utils: Correct Unicode truncation and subsecond duration formatting.** (e373df7)
- **users: propagate device cleanup failures safely** (1e441a7)
- **users: remove identity keys with deleted devices** (8877ad9)
- **auth/uiaa: match password flows to account credentials** (0726625)
- **database: Flush every column family from the admin flush command.** (ad13dea)
- **database: Share the test server and database path fixtures.** (7a45bf4)
- **appservice: Forward MSC3983 key claims only to registrations opting in.** (c0c1d01)
- **docs/compliance: Render MSC4140 in the merged bucket.** (4a6db6d)
- **Merge PR #588: accept an X-Matrix header without a destination.** (0d5e4f4)
- **sync: Seed the syncing user's own profile into the MSC4262 base.** (cf5b050)
- **profile: Skip the member event when a write restores the room's value.** (13804b5)
- **users: Stamp the server user identity. (fixes #589)** (aecc14b)
- **typo** (3afe497)
- **federation: allow omitted x-matrix destination parameter for compatibility** (6c33aee)
- **implemented config option** (a5dfb54)
- **deps: Bump sentry to 0.49.** (24111d0)
- **deps: Bump argon2 to 0.6.** (b73a9a4)
- **deps: Bump ipaddress to 0.2.** (3aaf04d)
- **Bump dependencies.** (8c0a692)
- **deps: Advance event-listener to 5.4.2.** (f7443f0)

### Docs
- **docs: Record MSC4429 as served in the compliance table.** (2d3a1f5)
- **docs: Build OpenBSD with jemalloc.** (b4e9872)
- **docs: Drop the NetBSD jemalloc notice.** (6d37fbc)
- **docs: Correct stale jemalloc guidance.** (f6082f2)

### Chore
- **ci: Bound each builder by bytes alone and sweep the daemon store on init.** (286faac)

_Recap by [Repo Wrapped](https://repowrapped.com/gh/matrix-construct/tuwunel?utm_source=github-action)._