Commit graph

483 commits

Author SHA1 Message Date
Ginger
c376fce725 chore(sync/v3): Remove unused imports 2025-12-03 16:04:32 +00:00
Ginger
da36604163 fix(sync/v3): Don't send rejected invites on initial syncs 2025-12-03 16:04:32 +00:00
Ginger
fa74747ab1 refactor(sync/v3): Extract left room timeline logic into its own function 2025-12-03 16:04:32 +00:00
Ginger
07199f9f17 fix(sync/v3): Don't send dummy leaves on an initial sync 2025-12-03 16:04:32 +00:00
Ginger
2f38de16f6 chore: Formatting 2025-12-03 16:04:32 +00:00
ginger
5c162fdb3a fix: Nitpicky comment reword 2025-12-03 16:04:32 +00:00
Ginger
5b959fca1c chore(sync/v3): More goat sacrifices 2025-12-03 16:04:32 +00:00
Ginger
a6d325440c refactor(sync/v3): Split load_joined_room into smaller functions 2025-12-03 16:04:32 +00:00
ginger
6246c11265 fix: Correct error message 2025-12-03 16:04:32 +00:00
Ginger
852bf99d34 fix(sync/v3): Add a workaround for matrix-js-sdk/5071 2025-12-03 16:04:32 +00:00
Ginger
d2cc2fb19b fix(sync/v3): Stop ignoring leave cache deserialization failures 2025-12-03 16:04:32 +00:00
Ginger
c2449bde74 fix(sync/v3): Do not include the last membership event when syncing left rooms 2025-12-03 16:04:32 +00:00
Ginger
3b8b9d4b5c feat(sync/v3): Remove TL size config option in favor of using the sync filter 2025-12-03 16:04:32 +00:00
Ginger
b20000fcf3 chore(sync/v3): Fix clippy lints 2025-12-03 16:04:32 +00:00
Ginger
fe1efe0787 fix(sync/v3): Remove mysterious membership event manipulation code 2025-12-03 16:04:32 +00:00
Ginger
08213038a9 fix(sync/v3): Properly sync room heroes 2025-12-03 16:04:32 +00:00
Ginger
ad2118e371 chore(sync/v3): Use "build_*" terminology instead of "calculate_*" 2025-12-03 16:04:32 +00:00
Ginger
be743ec70a chore(sync/v3): Use more descriptive names for SyncContext properties 2025-12-03 16:04:32 +00:00
Ginger
eba5f16e09 chore: Remove unneeded comment 2025-12-03 16:04:32 +00:00
Ginger
5fb49d8668 fix: Use prepare_lazily_loaded_members for joined rooms
Also, don't take read receipts into consideration for lazy loading.
Synapse doesn't do this and they're making initial syncs very large.
2025-12-03 16:04:32 +00:00
Ginger
19e895b57f chore: Clippy fixes 2025-12-03 16:04:32 +00:00
Jade Ellis
5932efa92d feat: Typing notifications in simplified sliding sync
What's missing? Being able to use separate rooms & lists for typing
indicators.
At the moment, we use the same ones as we use for the timeline, as
todo_rooms is quite intertwined. We need to disentangle this to get that
functionality, although I'm not sure if clients use it.
2025-12-03 16:04:32 +00:00
Ginger
1afa8413a2 feat: Add a config option to change the max TL size for legacy sync 2025-12-03 16:04:32 +00:00
Ginger
31cc888119 fix: Set limited to true for newly joined rooms again 2025-12-03 16:04:32 +00:00
Ginger
1ad60df7a6 fix: Properly sync left rooms
- Remove most usages of `update_membership` in favor
  of directly calling the `mark_as_*` functions
- Store the leave membership event as the value in the
  `userroomid_leftstate` table
- Use the `userroomid_leftstate` table to synchronize the
  timeline and state for left rooms if possible
2025-12-03 16:04:32 +00:00
Ginger
afd115eedc fix: Properly sync newly joined rooms 2025-12-03 16:04:32 +00:00
Ginger
1444f43fa7 fix(sync/v3): Further cleanup + improve incremental sync consistency 2025-12-03 16:04:32 +00:00
Ginger
91d07a9bfc fix: Correctly send limited timelines again 2025-12-03 16:04:32 +00:00
Ginger
c85b5bb122 refactor: Split sync v3 into multiple files 2025-12-03 16:04:32 +00:00
Ginger
99aadff38e feat: Drop support for MSC3575 (legacy sliding sync) 2025-12-03 16:04:32 +00:00
Ginger
d2d996d306 chore: Clippy fixes 2025-12-03 16:04:32 +00:00
Ginger
26fa73841b fix(sync/v3): Cleanup part 1: mostly fix redundant data in state 2025-12-03 16:04:32 +00:00
timedout
bc8d304dbf style: Fix unnecessary qualification
Sounds like my university experience
2025-11-23 16:33:32 +00:00
timedout
7f4248a8c6 feat: Enhance remote room leave handling 2025-11-23 16:33:32 +00:00
Jade
45e4053883
fix: Don't break when encountering the server user, as there may be real users after 2025-11-10 23:56:02 +00:00
Jade Ellis
ce73d29855
chore: Fix typos 2025-11-08 20:54:49 +00:00
Jimmy Brush
77ebe0d02f fix(!714): Off-by-one in v5 sync
Simplified sliding sync specifies ranges to be inclusive while rust ranges are
exclusive.
2025-10-13 10:28:19 +00:00
nexy7574
20f741d0e5 feat: Produce a more informative error when uploading media fails 2025-10-12 19:42:57 +00:00
nexy7574
f45ceedb8a
fix(upgrade): Potentially resolve CI clippy errors
I'm not convinced this isn't a rust bug itself,
but CI was complaining about lifetimes
and those complaints couldn't be reproduced locally,
so this should probably fix it maybe?
2025-09-26 18:47:49 +01:00
Jade Ellis
ef84e1bb02 fix(v12): Create tombstone event on room upgrade 2025-09-25 08:15:23 +00:00
nexy7574
1887d58df8 fix: V12 room upgrades 2025-09-25 08:15:23 +00:00
Ginger
92d74c293e
feat: Advertise support for MSC4155 2025-09-22 11:33:45 -04:00
nexy7574
b70470fa71
fix: Event filters all non-state events 2025-09-21 20:10:36 +01:00
Ginger
13b7538785 Add support for MSC4155 (#1013)
[rendered msc here](https://github.com/Johennes/matrix-spec-proposals/blob/johannes/invite-filtering/proposals/4155-invite-filtering.md). Closes #836.

Co-authored-by: nexy7574 <git@nexy7574.co.uk>
Reviewed-on: https://forgejo.ellis.link/continuwuation/continuwuity/pulls/1013
Reviewed-by: nex <nex@noreply.forgejo.ellis.link>
Co-authored-by: Ginger <ginger@gingershaped.computer>
Co-committed-by: Ginger <ginger@gingershaped.computer>
2025-09-21 17:03:40 +00:00
nexy7574
c9c79fbea6 fix: Fix restricted join rules inconsistencies 2025-09-20 21:07:13 +00:00
nexy7574
92e9802340 style: Tidy up 1054 2025-09-20 21:07:00 +00:00
nexy7574
1d80b7ce0c fix: Don't perform local join when there's no remote servers 2025-09-20 21:07:00 +00:00
nexy7574
7e4071c117 Implement room v12 (#943)
**Does not yet work!** Currently, state resolution does not correctly resolve conflicting states. Everything else appears to work as expected, so stateres will be fixed soon, then we should be clear for takeoff.

Also: a lot of things currently accept a nullable room ID that really just don't need to. This will need tidying up before merge. Some authentication checks have also been disabled temporarily but nothing important.

A lot of things are tagged with `TODO(hydra)`, those need resolving before merge. External contributors should PR to the `hydra/public` branch, *not* ` main`.

---

This PR should be squash merged.

Reviewed-on: https://forgejo.ellis.link/continuwuation/continuwuity/pulls/943
Co-authored-by: nexy7574 <git@nexy7574.co.uk>
Co-committed-by: nexy7574 <git@nexy7574.co.uk>
2025-09-17 20:46:03 +00:00
Ginger
a0b0ff9d5c fix: Remove legacy check for u. prefix 2025-09-16 11:30:39 +00:00
Ginger
8e27d74c4a fix: Slightly more parallelism 2025-09-16 11:30:39 +00:00