Commit Graph
743 Commits
Author SHA1 Message Date
Erwan Leboucher f154ecb542 feat: Expire retained unredacted content and address review 2026-11-11 21:52:50 +00:00
Erwan Leboucher 98fe280de4 feat: Allow room moderators to view redacted event content (MSC2815) 2026-11-11 21:52:50 +00:00
timedout 7a6bea70b2 fix: SEC34
Reviewed-By: Jade Ellis <jade@ellis.link>
Reviewed-By: Ginger <ginger@gingershaped.computer>
Reviewed-By: Jacob Taylor <jacob@explodie.org>
2026-11-10 20:41:19 +00:00
Ginger 4d7a7d6cdc chore(deps): Clean up features and remove unused dependencies 2026-11-10 13:24:05 -05:00
Henry-Hiles 15b4e8e2f9 fix: Correct relations pagination and recursion
Ended up rewriting a fair bit, but should work better.
2026-11-08 19:34:25 +00:00
Ginger 4a3b0366ac feat: Ratelimit CSAPI endpoints 2026-11-05 16:49:48 +00:00
Jade Ellis 24b1e2ebe8 refactor(service): Use SyncRwLock and SyncMutex for in-memory services
Convert in-memory data structures in appservice, rooms::typing, and sync
wakers to use SyncRwLock and SyncMutex. Drop appservice locks before
making outbound network requests in room alias queries and federation
invites.
2026-10-28 21:48:22 +00:00
Jade Ellis 5297e01357 refactor(metrics): Replace std::sync::Mutex with SyncMutex
Replace std::sync::Mutex with parking_lot::Mutex (SyncMutex) in
core::metrics::runtime_intervals. Note that info::introspection retains
std::sync::Mutex because parking_lot panics in dtor after thread locals
are destroyed.
2026-10-28 21:47:41 +00:00
timedout 9c27441acf style: Reformat with nightly 2026-10-23 23:37:51 +02:00
Erwan Leboucher c5b70958cf fix: preserve event order during state resolution
Signed-off-by: Erwan Leboucher <erwanleboucher@gmail.com>
2026-10-23 23:19:45 +02:00
Ginger e6ca06a501 feat: Add support for MSC4560 2026-10-15 22:56:04 -04:00
Erwan Leboucher 24e289113b fix(pusher): Only strip notification_push_path as a URL suffix 2026-10-12 11:14:02 +01:00
Erwan Leboucher 805d4d9416 fix(pusher): Enforce ip_range_denylist on resolved pusher hosts 2026-10-12 11:14:02 +01:00
Erwan Leboucher fe0ab62124 refactor: Unify retry backoff helpers 2026-10-12 11:14:01 +01:00
theS1LV3R 39bb4fefa1 feat: Add support for custom DNS servers
Adds an option `dns_servers` which takes IPs for custom servers.
Does not allow for custom DNS ports as this is largely not supported in
tokio and hickory, and would otherwise be a pain to implement properly.

Fixes: #1866
See-Also: https://matrix.to/#/!ksTlboXVgcyWjv5GrlEeKyQuJ8ZCprnwQx2b6-BQ44Q/%24qrBGOzosK4BdRbF5jhf5ehrxQUTaIr-U-UpqTmPhkPY?via=wolfgirl.pet&via=matrix.org
2026-10-12 10:14:53 +01:00
Jade Ellis 3975d31b91 refactor: Delegate otlp_protocol to standard OTLP env variables 2026-10-12 10:03:16 +01:00
Erwan Leboucher ea3ec965ed fix(metrics): Address review feedback 2026-10-12 10:03:15 +01:00
Erwan Leboucher 9d454fd883 refactor(metrics): Use Tower HTTP instrumentation 2026-10-12 10:03:15 +01:00
Erwan Leboucher 5185045cb6 feat(metrics): Record metrics with OpenTelemetry and export over OTLP 2026-10-12 10:03:14 +01:00
Erwan Leboucher 31bce80524 fix(metrics): Start latency histogram buckets at 1ms 2026-10-12 10:03:13 +01:00
Erwan Leboucher f14c401f39 feat: Add Prometheus metrics endpoint 2026-10-12 10:03:12 +01:00
timedout 1ffb1d637e fix: Don't invert redaction target helper 2026-10-06 02:34:10 +00:00
Ginger 823ee9f6e1 feat: Add support for MSC4484 2026-10-05 14:22:53 +00:00
Ginger 2773ff3e16 feat: Import images correctly from OIDC claims 2026-10-03 15:04:07 +00:00
Ginger 6bbea25034 feat: Allow configuring additional trusted OIDC audiences 2026-10-03 15:03:47 +00:00
timedout 43ee11bb00 feat: Support MSC4494 2026-10-02 18:10:17 +01:00
timedout 550dd0160a fix: SEC8
Reviewed-By: Ginger <ginger@gingershaped.computer>
Reviewed-By: Jade <jade@ellis.link>
Reviewed-By: Jacob Taylor <jacob@explodie.org>
2026-09-28 02:00:37 +01:00
timedout 05d6922351 style: Take an optional context instead of deconstructed parameters 2026-09-27 17:33:26 +01:00
timedout fbedf994db fix: Don't unnecessarily embed prev_content in populate_unsigned 2026-09-27 17:32:47 +01:00
timedout 1de16fed9e style: English is a difficult language 2026-09-27 17:32:47 +01:00
timedout 4812837d13 fix: Don't allow set_unsigned to panic
While an error in this function is probably bad, detonating a metric tonne of TNT on the call tree is probably worse
2026-09-27 17:32:47 +01:00
timedout 90793eaaf4 fix: Actually set unsigned in PDU after set_unsigned 2026-09-27 17:32:47 +01:00
timedout 744928b206 style: Update docstring for Pdu.set_unsigned 2026-09-27 17:32:47 +01:00
timedout 05ee24df7d fix: Move helper to helpers.rs, rename field, don't recurse unsigned in redacted_because
Renamed `redacted_because_id` to `org.continuwuity.redacted_by` for proper namespacing; `get_unsigned_context` now lives in helpers.rs instead of `mod.rs`. The helper function also now explicitly wipes `unsigned` for `redacted_because` to avoid leaks (see comment).
2026-09-27 17:32:46 +01:00
timedout 89eecd2bf7 fix: Record redacted_because_id instead of redacted_because 2026-09-27 17:32:46 +01:00
timedout b2072baf59 perf: Strip unsigned over federation and generate it on the fly locally 2026-09-27 17:32:46 +01:00
timedout d3ed175264 fix(stateres): Inject dummy create event when none is available
I'm not sure how this doesn't cause more panics. When running an auth check on the create event during iterative auth checks, there's obviously no create event in the base state nor auth map, so the call to fetch_state() will return nothing and thus panic.
This just inserts the incoming event if it's a create event and there isn't an existing one in the auth state. It's not used for the create event checks anyway so this has no effect aside from plugging the panic.
2026-09-22 02:04:39 +01:00
Erwan Leboucher ed1e634579 feat(push): Add MSC4174 web push 2026-09-21 23:35:05 +00:00
timedout 8891adfba3 fix(stateres): Enforce state ownership checks against creators too
Previously being a room creator short-circuited the `can_send_event`
check, which allowed creators to send state events "owned" (state key
starting with @ but not being the sender's user ID), in effect skipping
auth check 9 in v12 rooms. This removes that short circuit condition,
since `Infinite < Int` always returns false anyway, allowing the state
key check block to execute.

Fixes #2266
2026-09-18 18:57:57 +01:00
Allinen d52d5003b1 refactor: cleaned up code 2026-09-16 17:57:11 +00:00
Allinen bdaa78340e style: fix typo 2026-09-16 17:57:11 +00:00
Allinen 89e07ae239 feat(config): connection_uri_file added to config 2026-09-16 17:57:11 +00:00
timedout 77d47f268e fix(stateres): Don't panic when the create event goes missing
I have no idea how this can even happen and frankly I'm scared to look
however that's a problem for another time.
Panicking causes entire transactions to explode, this just makes one
event explode.
2026-09-14 18:14:22 +01:00
Lake 439f266d8f chore: resolve conflicts with main 2026-09-12 15:07:35 -05:00
Henry-Hiles b221a49b77 chore: upgrade argon2 2026-09-11 16:13:03 -04:00
Jade Ellis 71e101a4dc style: Run formatting 2026-09-11 15:54:42 +01:00
Jade Ellis 0f97eea31f style: Run formatting 2026-09-11 15:39:54 +01:00
stratself 5fbd4914ca fix: Disable unauthenticated media by default 2026-09-11 14:21:08 +00:00
Erwan Leboucher fe38efbb63 feat(oidc): Show the provider's name and icon on the login page 2026-09-10 14:08:03 +00:00
Erwan Leboucher 0060a4aac4 feat(rtc): Advertise MSC4143 in /versions 2026-09-08 13:30:35 -04:00