Jade Ellis
c7aebd2b52
fix: Deduplicate read receipts and preserve per-thread state
2026-11-10 20:02:20 +00:00
Jade Ellis
76ace2bc09
fix(client): Allow setting read receipts on backfilled events
2026-11-10 20:02:20 +00:00
Henry-Hiles
be5ff91eb3
chore: break out of loop when level is empty
2026-11-08 19:34:25 +00:00
Henry-Hiles
5ff6d71e7c
chore: Make walk use counts only
2026-11-08 19:34:25 +00:00
Henry-Hiles
2e43797d95
chore: Make Clippy happy
2026-11-08 19:34:25 +00: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
34c5787af0
fix: Fix join rule evaluation for servers again
...
Reviewed-by: timedout <git@nexy7574.co.uk >
Reviewed-by: Jade Ellis <jade@ellis.link >
2026-11-04 12:24:51 -05:00
Erwan Leboucher
abf8f878bc
fix: gap fill outliers that are missing prev events
...
Signed-off-by: Erwan Leboucher <erwanleboucher@gmail.com >
2026-10-31 09:02:27 +01:00
timedout
068ba88378
style: Fix formatting
2026-10-30 00:54:52 +00:00
timedout
60de549cf9
perf: Write empty rows when replacing extremities
2026-10-30 00:51:52 +00:00
timedout
363097b31b
fix: Centralise extremity progression
2026-10-30 00:51:52 +00:00
timedout
14f5f62182
fix: Only consider accepted PDUs in extremity consistency check
2026-10-30 00:51:51 +00:00
timedout
224cf04936
fix: Never allow unknown/backfilled PDUs to become extremities
2026-10-30 00:51:51 +00:00
timedout
30f62eef25
style: reformat
2026-10-30 00:51:51 +00:00
timedout
b04ffd7e6a
fix: Correctly remove extremities after creating a new event
2026-10-30 00:51:51 +00:00
timedout
bc15b7b668
fix: Remove dead references to mark_event_referenced
2026-10-30 00:51:50 +00:00
timedout
3eb2788eb9
feat: Only track appended extremities
2026-10-30 00:51:47 +00:00
timedout
b580379a2d
fix: Only check that room_id is not present on create events in PDU check 1
2026-10-30 00:43:55 +00:00
timedout
3c19206534
fix: Perform PDU checks 1, 2, and 3 before yielding a gapfilled PDU
...
Fixes #2386
2026-10-30 00:43:55 +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
9c4f84940e
fix(service): Prevent remote join lock inversion
...
Do not hold state.mutex across join_remote_room to prevent an ABBA
deadlock against mutex_federation.
2026-10-28 21:44:02 +00:00
Ginger
3295427af6
fix: Don't check room summary access rules on remote rooms
2026-10-25 14:00:28 +00:00
timedout
9c27441acf
style: Reformat with nightly
2026-10-23 23:37:51 +02:00
Ginger
98c694eaa3
chore: Add some comments
2026-10-15 22:56:04 -04:00
Ginger
e6ca06a501
feat: Add support for MSC4560
2026-10-15 22:56:04 -04:00
Ginger
4f21fa2bda
refactor: Clean up join rule evaluation logic
2026-10-15 22:55:36 -04:00
timedout
090203c2ea
style: Remove import
2026-10-12 22:28:50 +01:00
timedout
ff63d9f203
fix: Don't unconditionally mark gapfilled events as referenced
...
This is pointless and fallible
2026-10-12 22:28:50 +01:00
timedout
511e791b9f
fix: Mark state and auth chain events as referenced after joining a room
...
It's generally safe to assume that all of these events have been referenced by the time we get to joining.
2026-10-12 22:28:50 +01:00
timedout
bc70c4eaff
fix: Mark PDUs as referenced during gapfill immediately
2026-10-12 22:28:50 +01:00
timedout
bbbc9bc7d8
fix: Never add unknown events to the extremity tracker
2026-10-12 22:28:46 +01:00
Erwan Leboucher
fe0ab62124
refactor: Unify retry backoff helpers
2026-10-12 11:14:01 +01:00
timedout
b76dc816a4
fix: Handle policy server errors better
2026-10-08 20:26:30 +01:00
Jade Ellis
5d55b413a2
feat: Send private read receipts to appservices
2026-10-06 23:56:30 +01:00
Jade Ellis
7ce47be4de
feat: Send read receipts and typing indicators to appservices
2026-10-06 23:56:28 +01:00
timedout
20fe43d200
fix: Don't insert top-level redacts in v11+ rooms
2026-10-06 02:34:10 +00:00
timedout
0224a558b3
fix: Stop embedding prev_content during event creation
2026-10-06 02:34:10 +00:00
Jade Ellis
1e34bd2ed9
style: Run formatting
2026-10-05 00:27:12 +01:00
timedout
c94fa39fd1
fix: Don't panic when a join doesn't include a create event
2026-10-03 15:19:10 +00: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
f0a0596d12
fix: Remove undocumented prev_sender unsigned field
2026-09-27 17:32:47 +01:00
timedout
fbedf994db
fix: Don't unnecessarily embed prev_content in populate_unsigned
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
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
Ginger
4ea4e15edb
chore: Reformat with latest nightly
2026-09-24 09:53:59 -04:00
Erwan Leboucher
cee69b4c8d
fix: Walk auth events once instead of re-queueing parents
2026-09-22 21:19:25 +02:00
timedout
7924e96589
chore: add todo to fix
2026-09-22 00:16:27 +00:00