Jade Ellis
b61010da47
feat: Add bundled aggregations support
...
Add support for the m.replace and m.reference bundled
aggregations.
This should fix plenty of subtle client issues.
Threads are not included in the new code as they have
historically been written to the database. Replacing the
old system would result in issues when switching away from
continuwuity, so saved for later.
Some TODOs have been left re event visibility and ignored users.
These should be OK for now, though.
2025-12-21 17:12:34 +00:00
Jade Ellis
987c5eeb03
refactor: Promote handling unsigned data out of timeline
...
Also fixes:
- Transaction IDs leaking in event route
- Age not being set for event relations or threads
- Both of the above for search results
Notes down concern with relations table
2025-12-21 17:12:33 +00:00
Ginger
cf8d8e4ea6
chore: Post-rebase cleanup
2025-12-09 03:25:04 +00:00
timedout
393d341f07
perf: Throttle frequent device metadata updates & centralise site
2025-12-09 03:25:03 +00:00
timedout
ba55dffa0e
perf: Don't increment the device list version when updating local info
2025-12-09 03:25:03 +00:00
timedout
f3115e14ab
feat: Update device metadata upon hitting hot endpoints
2025-12-09 03:25:03 +00:00
Ginger
53b06a7918
chore(sync/v3): Remove unused imports
2025-12-07 19:58:24 +00:00
Ginger
fafc1d3fd1
fix(sync/v3): Don't send rejected invites on initial syncs
2025-12-07 19:58:24 +00:00
Ginger
dbc74272c3
refactor(sync/v3): Extract left room timeline logic into its own function
2025-12-07 19:58:24 +00:00
Ginger
f11caac05e
fix(sync/v3): Don't send dummy leaves on an initial sync
2025-12-07 19:58:24 +00:00
Ginger
e581face44
chore: Formatting
2025-12-07 19:58:24 +00:00
ginger
037ba41adb
fix: Nitpicky comment reword
2025-12-07 19:58:24 +00:00
Ginger
7dae118af9
chore(sync/v3): More goat sacrifices
2025-12-07 19:58:24 +00:00
Ginger
07dfc5528d
refactor(sync/v3): Split load_joined_room into smaller functions
2025-12-07 19:58:24 +00:00
Ginger
be8d72fafc
fix(sync/v3): Add a workaround for matrix-js-sdk/5071
2025-12-07 19:58:24 +00:00
Ginger
ee51d4357f
fix(sync/v3): Do not include the last membership event when syncing left rooms
2025-12-07 19:58:24 +00:00
Ginger
872f5bf077
feat(sync/v3): Remove TL size config option in favor of using the sync filter
2025-12-07 19:58:24 +00:00
Ginger
992217d644
chore(sync/v3): Fix clippy lints
2025-12-07 19:58:24 +00:00
Ginger
4fb4397a9f
fix(sync/v3): Remove mysterious membership event manipulation code
2025-12-07 19:58:24 +00:00
Ginger
61b6947e88
fix(sync/v3): Properly sync room heroes
2025-12-07 19:58:24 +00:00
Ginger
876d3faec4
chore(sync/v3): Use "build_*" terminology instead of "calculate_*"
2025-12-07 19:58:24 +00:00
Ginger
9cc0cc69f7
chore(sync/v3): Use more descriptive names for SyncContext properties
2025-12-07 19:58:24 +00:00
Ginger
5513bb4dff
chore: Remove unneeded comment
2025-12-07 19:58:24 +00:00
Ginger
693e327004
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-07 19:58:24 +00:00
Ginger
3e6571a2b8
chore: Clippy fixes
2025-12-07 19:58:24 +00:00
Jade Ellis
f0f10f8f3e
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-07 19:58:24 +00:00
Ginger
a4f2b55a8a
feat: Add a config option to change the max TL size for legacy sync
2025-12-07 19:58:24 +00:00
Ginger
213a361c53
fix: Set limited to true for newly joined rooms again
2025-12-07 19:58:24 +00:00
Ginger
1c21e4af6e
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-07 19:58:24 +00:00
Ginger
fceaaedc04
fix: Properly sync newly joined rooms
2025-12-07 19:58:24 +00:00
Ginger
0eff173c0b
fix(sync/v3): Further cleanup + improve incremental sync consistency
2025-12-07 19:58:24 +00:00
Ginger
72bf8e5927
fix: Correctly send limited timelines again
2025-12-07 19:58:24 +00:00
Ginger
3491f653a5
refactor: Split sync v3 into multiple files
2025-12-07 19:58:24 +00:00
Ginger
e820dd7aed
feat: Drop support for MSC3575 (legacy sliding sync)
2025-12-07 19:58:24 +00:00
Ginger
c92b7239a8
chore: Clippy fixes
2025-12-07 19:58:24 +00:00
Ginger
2940bc69c1
fix(sync/v3): Cleanup part 1: mostly fix redundant data in state
2025-12-07 19:58:24 +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
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
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
nexy7574
83e3de55a4
fix(sync/v2): Room leaves being omitted incorrectly
...
Partially borrowed from 85a84f93c7
2025-08-30 16:18:46 +01:00
Jade Ellis
8b35de6a43
chore: Fix clippy lints with minimal diff
2025-08-22 00:51:54 +01:00
Jason Volk
364293608d
Post-formatting aesthetic and spacing corrections
...
Signed-off-by: Jason Volk <jason@zemos.net>
2025-07-02 19:17:06 +01:00
Jason Volk
116f85360f
Toward abstracting Pdu into trait Event.
...
Co-authored-by: Jade Ellis <jade@ellis.link>
Signed-off-by: Jason Volk <jason@zemos.net>
2025-07-02 19:03:26 +01:00
Jason Volk
2051c22a28
Support optional device_id's in lazy-loading context.
...
Co-authored-by: Jade Ellis <jade@ellis.link>
Signed-off-by: Jason Volk <jason@zemos.net>
2025-07-02 18:58:17 +01:00
nexy7574
52e042cb06
Always calculate state diff IDs in syncv3
...
seemingly fixes #779
2025-06-28 20:37:40 +00:00
Jason Volk
e8a64bb59d
increase snake sync asynchronicity
...
Signed-off-by: Jason Volk <jason@zemos.net>
2025-04-19 23:33:51 +01:00
Jason Volk
05e65936fa
modest cleanup of snake sync service related
...
Signed-off-by: Jason Volk <jason@zemos.net>
2025-04-19 23:33:51 +01:00
Jason Volk
bb8320a691
abstract and encapsulate the awkward OptionFuture into Stream pattern
...
Signed-off-by: Jason Volk <jason@zemos.net>
2025-04-05 02:44:46 +00:00
Jason Volk
532dfd004d
move core::pdu and core::state_res into core::matrix::
...
Signed-off-by: Jason Volk <jason@zemos.net>
2025-04-05 02:44:46 +00:00
June Clementine Strawberry
f14756fb76
leave room locally if room is banned, rescind knocks on deactivation too
...
Signed-off-by: June Clementine Strawberry <june@3.dog>
2025-04-03 12:21:16 -04:00