Commit Graph
875 Commits
Author SHA1 Message Date
timedout 1cc6fb1130 chore: Add newsfrag and re-run cargo fmt 2026-08-22 20:14:43 +01:00
timedout 681daed5e8 fix: Mark prev events as referenced as we come across them 2026-08-22 20:14:43 +01:00
timedout 8d95163da4 perf: Remove unnecessary retain
The remove() at the start of the function already does this
2026-08-22 20:14:42 +01:00
timedout 0608f674a3 fix: Properly track orphaned extremities 2026-08-22 20:14:42 +01:00
Erwan Leboucher df95abf5ab fix(federation): Queue PDUs during remote joins 2026-08-22 18:29:54 +00:00
Erwan Leboucher 1ecfb21aea fix(spaces): Correct hierarchy traversal 2026-08-19 03:33:41 +00:00
Erwan Leboucher 3efb66c76c fix: Do not make late-arriving events forward extremities 2026-08-18 16:55:47 +00:00
timedout 7b3e3a26bb fix: Don't panic when receiving PDUs with illegal auth events
Apparently some servers do this??
2026-08-18 17:50:18 +01:00
Erwan Leboucher 1d655fda53 fix(timeline): Keep extremities a local event did not reference 2026-08-18 15:38:43 +00:00
Erwan Leboucher 918070c512 fix(spaces): Expose restricted children over federation 2026-08-14 12:51:09 +02:00
Erwan Leboucher 7472faa096 fix(sync): Remove sync wake before membership commit point 2026-08-11 14:10:23 +00:00
Erwan Leboucher 1b6bc83b9f fix(sync): Preserve batched read receipts 2026-08-06 14:01:52 +00:00
timedout 21ea9d3ea7 feat: Validate event references in prev and auth events
Also threw in some lovely unit tests, as a treat.
2026-08-05 21:11:05 +00:00
timedout 8f0c7a99d7 fix: Don't accidentally continue with fallback room version
Fixes a potential issue where continuwuity correctly defaults to room v1
when encountering an unknown room version, but then fails to *stop*
processing when it encounters the room version it doesn't actually
understand.
2026-08-05 21:11:05 +00:00
Erwan Leboucher 43197f695c feat(sync): Add MSC4354 sticky events 2026-08-02 17:28:00 +00:00
Erwan Leboucher 27a559a751 fix(sync): Wake sync loops on typing updates 2026-08-02 18:05:27 +02:00
timedout b0c1381f03 fix: Re-introduce residency check when handling incoming transactions 2026-07-30 18:02:34 +00:00
timedout 14ff018b9f fix: Don't soft-fail valid redactions 2026-07-30 18:33:47 +01:00
Erwan Leboucher e161b5f01e perf: Fetch joined member count once per event when notifying 2026-07-26 14:40:34 +00:00
Erwan Leboucher 08c22b5fcc fix(sync): Wake local target user after membership changes are committed 2026-07-26 14:12:37 +00:00
new-years-eve 7f8c2aedc8 refactor: Use a shared helper function for submitting state events at room creation
On room creation, A list of initial state events may be provided that
should be submitted to the room after creation. These events
should be treated as any other state event and submitted to
the same checks.

With this change, state events submitted on room creation will be
submitted through the same helper as those through the usual endpoint.

The submission helper is moved to the timeline service to make it
available everywhere. This will be useful for implementing MSC4140
(issue #903).
2026-07-26 15:06:38 +01:00
reaster fb7a378d63 deduplicate rooms in hierarchy traversal 2026-07-25 13:55:30 +00:00
Erwan Leboucher 4727f07e26 fix: Correct roomuserid_lastnotificationread table alias
roomuserid_lastnotificationread was mapped to userroomid_highlightcount
instead of its own table, so last_notification_read() read the highlight
count and reset_notification_counts clobbered the highlight table when
setting a read marker. Add the missing table definition and fix the alias.
2026-07-24 01:13:42 +00:00
Erwan Leboucher 7ecd2aa5e2 fix(pdu): Exempt m.room.create from auth_events check 2026-07-14 19:27:46 +02:00
timedout b6e5a106ff fix: Don't unhelpfully panic when encountering an unrecognised room version 2026-07-12 02:11:50 +00:00
timedout fbf81fcdeb fix: Opportunistically re-use room format rules when parsing incoming PDUs 2026-07-12 02:11:50 +00:00
timedout 87030a3a22 fix: Ensure PDU returned by create_hash_and_sign_event is itself signed 2026-07-12 02:11:50 +00:00
timedout 4f509fa113 fix: Convert room summary to federation format when sending invites 2026-07-12 02:11:50 +00:00
timedout 7225bf25ae feat: Persist create events received during the invite process 2026-07-12 02:11:50 +00:00
timedout 995726923b feat: Enforce new federation invite checks
These were introduced in spec v1.16 however we didn't implement them until now for compatibility.
2026-07-12 02:11:50 +00:00
timedout 13bcb5af13 style: Accept event id reference in pdu_format_check_1 2026-07-11 17:27:42 +01:00
timedout c34d1fe76e feat: Move PDU validation out of parsing and into check 1 2026-07-11 17:27:42 +01:00
timedout 838764b0ac style: Remove needless async def for parse_incoming_pdu_with_known_room 2026-07-11 17:27:42 +01:00
timedout b51a34c1c1 fix: Address review feedback 2026-07-11 17:27:42 +01:00
timedout 2fbb779d12 fix: Invert boolean returned by policy server check 2026-07-11 17:27:42 +01:00
timedout e16a62e1ed feat: Add more debug logging to PDU handle funcs
Tracking down weird soft-fails
2026-07-11 17:27:42 +01:00
timedout 64a08262ca perf: Change signature of build_local_dag to remove refmap hacks 2026-07-11 17:27:42 +01:00
timedout 70a3905761 style: Remove duplicate pdu check 1 call in handle_incoming_pdu 2026-07-11 17:27:42 +01:00
timedout cf9179e8f6 fix: Perform checks 1-3 on auth chain PDUs 2026-07-11 17:27:42 +01:00
timedout 6b899b7f80 refactor: Move PDU checks 1, 2, and 3 into pdu_checks.rs 2026-07-11 17:27:42 +01:00
timedout ad57fa06fc style: Unify and document state_before_incoming 2026-07-11 17:27:42 +01:00
timedout ec9efbada5 fix: Don't reject auth events when they're innocent in auth chain response 2026-07-11 17:27:42 +01:00
timedout 318d2b205a style: Move PDU check functions into their own module 2026-07-11 17:27:42 +01:00
timedout 99a5f2a9fb refactor: Reduce complexity of incoming PDU handling
* Ignores any events pushed without a room ID
* Removes needless clones for PDU size checking
* Removes incorrect ACL check in incoming handler
* Fast-path handling already handled outlier events
* Remove redundant same-room checks, replace with useful ones
* Combine event rejection and persistence in a single function
* Additional safety assertions in upgrade task
* Split upgrade task into multiple subroutines for reduced cognitive complexity
* Only mutate current state and forward extremities in tandem
* Improve code documentation to better explain the logic flow
2026-07-11 17:27:42 +01:00
timedout b915692ae1 fix: Remove broken federated invite revoke handling
It turns out it never worked in the first place :D
2026-07-10 16:32:38 +01:00
Ginger 2fabf18451 style: Fix comment 2026-07-09 17:36:56 -04:00
Ginger 63a26141f8 fix: Make depth cap a bit more thorough 2026-07-09 17:33:13 -04:00
Ginger cc1f667c2b fix: Cap max_depth to 50 in hierarchy endpoint 2026-07-09 17:22:36 -04:00
timedout f9b532162f fix: SEC20
Reviewed-By: Ginger <ginger@gingershaped.computer>
2026-07-09 17:58:59 +01:00
Ginger 3467dffd94 fix: Adjust sync watcher logic to be more explicit 2026-07-05 00:42:44 +00:00