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
Ginger
9fbabe2210
chore: Reformat with latest nightly
2026-09-01 12:55:05 -04:00
31a05b9c
5cf0a5b376
fix: inverted log statement
2026-08-27 13:39:41 +00:00
timedout
b89c3e9313
fix: Actually add the openreg feature to the crates
2026-08-26 18:21:22 +01:00
timedout
dd5b9c6c46
feat: Disable challengeless registration without signing a waiver
2026-08-26 18:01:24 +01:00
Renovate Bot and Ginger
746a2686e3
chore(deps): Update ruma digest to 83d80c8
...
Co-authored-by: Ginger <ginger@gingershaped.computer >
2026-08-25 13:53:39 +00:00