dasha_uwu
a1960553e9
Turn non-monotonic next_batch assert into error log and clamp.
2026-01-26 20:24:44 +00:00
dasha_uwu
0c9a3abb71
clippy allow -> expect
2026-01-26 19:28:56 +00:00
Jason Volk
106bba761e
Use bounded condition for syncv3 notification count; asymmetric reset condition. ( #261 )
...
Signed-off-by: Jason Volk <jason@zemos.net >
2026-01-19 08:26:23 +00:00
dasha_uwu
e78bf21085
Introduce OptionFuture helpers
...
Optimize user directory searches
2026-01-17 06:54:24 +00:00
Jason Volk
432e6a2663
Fix serializing zero notification count in never-read room case.
...
Signed-off-by: Jason Volk <jason@zemos.net >
2025-12-28 05:17:29 +00:00
Jason Volk
959c559bd8
Log all ruma handler results at trace level.
...
Signed-off-by: Jason Volk <jason@zemos.net >
2025-12-18 17:27:22 +00:00
dasha_uwu
0c7ba1dd5a
Fix sync handling for appservices calling without device_id
2025-12-18 02:18:30 +00:00
Jason Volk
1ce3d2b01f
Add ReadyBoolExt special case for ReadyEqExt.
...
Signed-off-by: Jason Volk <jason@zemos.net >
2025-12-01 08:01:52 +00:00
Jason Volk
7666bb63d8
Optimize syncv3 joined room path with additional conditional queries.
...
Signed-off-by: Jason Volk <jason@zemos.net >
2025-11-27 07:22:55 +00:00
Jason Volk
71f3ccf140
Unbox and pin database streams.
...
Signed-off-by: Jason Volk <jason@zemos.net >
2025-11-26 06:49:57 +00:00
Jason Volk
120ab1d068
Add config circuit-breaker for heroes calculations during sync.
...
Signed-off-by: Jason Volk <jason@zemos.net >
2025-11-20 08:34:31 +00:00
Jason Volk
e60e86e9ed
Optimize heroes calculation using member state instead of timeline scan.
...
Signed-off-by: Jason Volk <jason@zemos.net >
2025-11-19 02:14:35 +00:00
Jason Volk
39c84fabb4
Optimize filter fetch in syncv3 prologue.
...
Signed-off-by: Jason Volk <jason@zemos.net >
2025-11-06 17:14:45 +00:00
Jason Volk
8b1de3d8db
Add update for device last_seen_ts. ( closes #40 )
...
Piggyback on presence ping for controlled device seen updates.
Signed-off-by: Jason Volk <jason@zemos.net >
2025-11-02 00:02:49 +00:00
Jason Volk
ce1ac277a6
Refactor sync v3 leave handler.
...
Signed-off-by: Jason Volk <jason@zemos.net >
2025-10-31 03:38:35 +00:00
Jason Volk
9265748a57
Remove legacy ruma return type on sync endpoint.
...
Signed-off-by: Jason Volk <jason@zemos.net >
2025-10-30 16:28:27 +00:00
Jason Volk
1f0cfec5ca
Use Result for last_notification_read as zero-default not appropriate.
...
Signed-off-by: Jason Volk <jason@zemos.net >
2025-10-30 03:48:16 +00:00
Jason Volk
3694ffbab3
Bump Ruma w/ PushRule type optimizations.
...
Signed-off-by: Jason Volk <jason@zemos.net >
2025-10-28 23:23:27 +00:00
Jason Volk
5e89f0acae
Split pusher service send/request into unit.
...
Refactor sender's push destination handler.
Combine remnants of service::rooms::user with pusher service.
Further split and reorg pusher service units.
Signed-off-by: Jason Volk <jason@zemos.net >
2025-10-28 23:23:19 +00:00
Jason Volk
6a4aff424f
Add count value to the to_device iter item.
...
Signed-off-by: Jason Volk <jason@zemos.net >
2025-10-27 09:06:02 +00:00
Jason Volk
5b3f0fde23
Add invite rooms to sync v3 watch rooms list.
...
Signed-off-by: Jason Volk <jason@zemos.net >
2025-10-20 23:57:52 +00:00
Jason Volk
9640afebff
Join the async prologue operations in sync v3.
...
Signed-off-by: Jason Volk <jason@zemos.net >
2025-10-20 23:55:42 +00:00
Jason Volk
a6127fcd1a
Provide sync watch rooms as argument rather than assuming all joined rooms.
...
Signed-off-by: Jason Volk <jason@zemos.net >
2025-10-08 03:33:12 +00:00
Jason Volk
ee777bc287
Rename user rooms iterations which have state vectors as values.
...
Signed-off-by: Jason Volk <jason@zemos.net >
2025-10-06 01:19:36 +00:00
Jason Volk
17f6f1a5a6
Device list updates for left users was previously deduplicated.
...
Signed-off-by: Jason Volk <jason@zemos.net >
2025-10-06 01:19:36 +00:00
Jason Volk
75509d50ca
Add shorteventid to pdu_id query; reorg related id query interface.
...
Signed-off-by: Jason Volk <jason@zemos.net >
2025-10-06 01:19:36 +00:00
Jason Volk
68c4f60bb3
Implement stateless sync; erase all the sync tokens.
...
Signed-off-by: Jason Volk <jason@zemos.net >
2025-10-02 15:07:06 +00:00
Jason Volk
fed52d24e4
Implement additional Matches for RoomFilter and Filter.
...
Apply filter for rooms/not_rooms; sender filter for presence.
Signed-off-by: Jason Volk <jason@zemos.net >
2025-10-02 05:29:48 +00:00
Jason Volk
83afe81f60
Move shortstatehash queries from state_accessor to state service.
...
Signed-off-by: Jason Volk <jason@zemos.net >
2025-10-02 05:27:48 +00:00
Jason Volk
aa37e32471
Optimize Pdu prev_events and auth_events containers.
...
Signed-off-by: Jason Volk <jason@zemos.net >
2025-09-23 18:16:24 +00:00
dasha_uwu
e0169e3dca
presence refactor
2025-09-23 05:16:29 +00:00
Jason Volk
19dc5fafd4
Fix missing device_one_time_keys_count in empty timeout responses.
...
Signed-off-by: Jason Volk <jason@zemos.net >
2025-09-10 21:29:04 +00:00
Jason Volk
29c2c8a333
Branch based on config to note sync for push suppression.
...
Minor if-let condition and scope reduction; formatting.
Signed-off-by: Jason Volk <jason@zemos.net >
2025-09-08 22:25:00 +00:00
tototomate123
6295ca135a
feature marked as experimental and executed rustfmt
2025-09-08 22:25:00 +00:00
tototomate123
b5a9884194
feat(presence,push) optionally suppress push notifications for active users
2025-09-08 22:25:00 +00:00
dasha_uwu
33a16f4831
Make /sync respond early on server shutdown
2025-08-29 06:49:04 +00:00
dasha_uwu
b5890b9664
Services refactor
...
Replace structs of Dep<Service> with OnceServices, so each service has a Services reference
Remove service name => Service map
Flatten Services.rooms
Make reqwest Clients lazy initialized (client service)
2025-08-28 23:15:59 +05:00
Jason Volk
3430d4ac86
Improved solution to current_shortstatehash > next_batch. ( 59b62b1)
...
`current_shortstatehash` is now calculated from timeline which is already
upper-bound by the `next_batch` snapshot. Previously `current_shortstatehash`
was truly current and had to be disallowed from exceeding `next_batch` by
ignoring the room during sync until a future pass when these values finally
met that condition.
Signed-off-by: Jason Volk <jason@zemos.net >
2025-08-27 00:41:12 +00:00
Jason Volk
3e2f2fbffa
Bump Ruma post-hydra.
...
Signed-off-by: Jason Volk <jason@zemos.net >
2025-08-27 00:41:12 +00:00
Jason Volk
628597c318
State-reset and security mitigations.
...
Upgrade Ruma to present.
The following are intentionally benign for activation in a later commit:
- Hydra backports not default.
- Room version 12 not default.
- Room version 12 not listed as stable.
Do not enable them manually or you can brick your database.
Signed-off-by: Jason Volk <jason@zemos.net >
2025-08-11 18:45:28 +00:00
Jason Volk
e106e50ed0
Update the since token to skip empty range from prior iteration.
...
Log and discard presence ping errors without preventing sync.
Signed-off-by: Jason Volk <jason@zemos.net >
2025-08-06 08:06:39 +00:00
Jason Volk
8a8a5d598e
Fix sync loop watcher ABA.
...
Signed-off-by: Jason Volk <jason@zemos.net >
2025-08-05 10:51:56 +00:00
Jason Volk
c337ea1864
Fixes for sync v3 protocol compliance.
...
Add sync v3 filter support.
Fix events duplicated between state and timeline; cleanup some lets.
Signed-off-by: Jason Volk <jason@zemos.net >
2025-08-04 18:55:37 +00:00
Jason Volk
bd0c3e33e2
Loop syncv3 for robust response without re-request overhead.
...
Signed-off-by: Jason Volk <jason@zemos.net >
2025-07-30 23:34:21 +00:00
Jason Volk
1bb16c8b73
Additional span logging of counter state; trace logging of contents.
...
Signed-off-by: Jason Volk <jason@zemos.net >
2025-07-30 23:34:21 +00:00
Jason Volk
59b62b1453
Fix partial v3 syncs on post-timeout pass; fix partial state on room join.
...
Signed-off-by: Jason Volk <jason@zemos.net >
2025-07-30 23:34:21 +00:00
Jason Volk
e9d0baa32e
Add granular timeout configs for sync longpolling.
...
Signed-off-by: Jason Volk <jason@zemos.net >
2025-07-27 11:34:15 +00:00
Jason Volk
29ac62ec27
Fix zero since-token value not used as initial sync condition.
...
Signed-off-by: Jason Volk <jason@zemos.net >
2025-07-27 11:03:12 +00:00
Jason Volk
8c8985e8f2
Add user_id to v3 sync span; add span for sync token association.
...
Signed-off-by: Jason Volk <jason@zemos.net >
2025-07-27 11:03:12 +00:00
Jason Volk
66334bdd53
Move syncv3 typings event for user.
...
Signed-off-by: Jason Volk <jason@zemos.net >
2025-07-27 07:04:10 +00:00