From 3694ffbab395f6f67134c6671b4427eedb67094c Mon Sep 17 00:00:00 2001 From: Jason Volk Date: Tue, 28 Oct 2025 18:37:57 +0000 Subject: [PATCH] Bump Ruma w/ PushRule type optimizations. Signed-off-by: Jason Volk --- Cargo.lock | 21 +++++++++++---------- Cargo.toml | 2 +- src/api/client/push.rs | 2 +- src/api/client/sync/v3.rs | 5 +++-- src/service/migrations.rs | 8 ++++++-- 5 files changed, 22 insertions(+), 16 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 62d325cc..6e26c995 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3476,7 +3476,7 @@ dependencies = [ [[package]] name = "ruma" version = "0.13.0" -source = "git+https://github.com/matrix-construct/ruma?rev=b858d3478f2792a381463ef9b63f6c1469a5d81c#b858d3478f2792a381463ef9b63f6c1469a5d81c" +source = "git+https://github.com/matrix-construct/ruma?rev=9f4ad222669db368e5e376637d8e29c3bec27272#9f4ad222669db368e5e376637d8e29c3bec27272" dependencies = [ "assign", "js_int", @@ -3495,7 +3495,7 @@ dependencies = [ [[package]] name = "ruma-appservice-api" version = "0.13.0" -source = "git+https://github.com/matrix-construct/ruma?rev=b858d3478f2792a381463ef9b63f6c1469a5d81c#b858d3478f2792a381463ef9b63f6c1469a5d81c" +source = "git+https://github.com/matrix-construct/ruma?rev=9f4ad222669db368e5e376637d8e29c3bec27272#9f4ad222669db368e5e376637d8e29c3bec27272" dependencies = [ "js_int", "ruma-common", @@ -3507,7 +3507,7 @@ dependencies = [ [[package]] name = "ruma-client-api" version = "0.21.0" -source = "git+https://github.com/matrix-construct/ruma?rev=b858d3478f2792a381463ef9b63f6c1469a5d81c#b858d3478f2792a381463ef9b63f6c1469a5d81c" +source = "git+https://github.com/matrix-construct/ruma?rev=9f4ad222669db368e5e376637d8e29c3bec27272#9f4ad222669db368e5e376637d8e29c3bec27272" dependencies = [ "as_variant", "assign", @@ -3532,7 +3532,7 @@ dependencies = [ [[package]] name = "ruma-common" version = "0.16.0" -source = "git+https://github.com/matrix-construct/ruma?rev=b858d3478f2792a381463ef9b63f6c1469a5d81c#b858d3478f2792a381463ef9b63f6c1469a5d81c" +source = "git+https://github.com/matrix-construct/ruma?rev=9f4ad222669db368e5e376637d8e29c3bec27272#9f4ad222669db368e5e376637d8e29c3bec27272" dependencies = [ "as_variant", "base64", @@ -3551,6 +3551,7 @@ dependencies = [ "serde", "serde_html_form", "serde_json", + "smallstr", "smallvec", "thiserror 2.0.17", "time", @@ -3565,7 +3566,7 @@ dependencies = [ [[package]] name = "ruma-events" version = "0.31.0" -source = "git+https://github.com/matrix-construct/ruma?rev=b858d3478f2792a381463ef9b63f6c1469a5d81c#b858d3478f2792a381463ef9b63f6c1469a5d81c" +source = "git+https://github.com/matrix-construct/ruma?rev=9f4ad222669db368e5e376637d8e29c3bec27272#9f4ad222669db368e5e376637d8e29c3bec27272" dependencies = [ "as_variant", "indexmap", @@ -3592,7 +3593,7 @@ dependencies = [ [[package]] name = "ruma-federation-api" version = "0.12.0" -source = "git+https://github.com/matrix-construct/ruma?rev=b858d3478f2792a381463ef9b63f6c1469a5d81c#b858d3478f2792a381463ef9b63f6c1469a5d81c" +source = "git+https://github.com/matrix-construct/ruma?rev=9f4ad222669db368e5e376637d8e29c3bec27272#9f4ad222669db368e5e376637d8e29c3bec27272" dependencies = [ "bytes", "headers", @@ -3614,7 +3615,7 @@ dependencies = [ [[package]] name = "ruma-identifiers-validation" version = "0.11.0" -source = "git+https://github.com/matrix-construct/ruma?rev=b858d3478f2792a381463ef9b63f6c1469a5d81c#b858d3478f2792a381463ef9b63f6c1469a5d81c" +source = "git+https://github.com/matrix-construct/ruma?rev=9f4ad222669db368e5e376637d8e29c3bec27272#9f4ad222669db368e5e376637d8e29c3bec27272" dependencies = [ "js_int", "thiserror 2.0.17", @@ -3623,7 +3624,7 @@ dependencies = [ [[package]] name = "ruma-macros" version = "0.16.0" -source = "git+https://github.com/matrix-construct/ruma?rev=b858d3478f2792a381463ef9b63f6c1469a5d81c#b858d3478f2792a381463ef9b63f6c1469a5d81c" +source = "git+https://github.com/matrix-construct/ruma?rev=9f4ad222669db368e5e376637d8e29c3bec27272#9f4ad222669db368e5e376637d8e29c3bec27272" dependencies = [ "cfg-if", "proc-macro-crate", @@ -3638,7 +3639,7 @@ dependencies = [ [[package]] name = "ruma-push-gateway-api" version = "0.12.0" -source = "git+https://github.com/matrix-construct/ruma?rev=b858d3478f2792a381463ef9b63f6c1469a5d81c#b858d3478f2792a381463ef9b63f6c1469a5d81c" +source = "git+https://github.com/matrix-construct/ruma?rev=9f4ad222669db368e5e376637d8e29c3bec27272#9f4ad222669db368e5e376637d8e29c3bec27272" dependencies = [ "js_int", "ruma-common", @@ -3650,7 +3651,7 @@ dependencies = [ [[package]] name = "ruma-signatures" version = "0.18.0" -source = "git+https://github.com/matrix-construct/ruma?rev=b858d3478f2792a381463ef9b63f6c1469a5d81c#b858d3478f2792a381463ef9b63f6c1469a5d81c" +source = "git+https://github.com/matrix-construct/ruma?rev=9f4ad222669db368e5e376637d8e29c3bec27272#9f4ad222669db368e5e376637d8e29c3bec27272" dependencies = [ "base64", "ed25519-dalek", diff --git a/Cargo.toml b/Cargo.toml index 27723f25..977fede8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -320,7 +320,7 @@ default-features = false [workspace.dependencies.ruma] git = "https://github.com/matrix-construct/ruma" -rev = "b858d3478f2792a381463ef9b63f6c1469a5d81c" +rev = "9f4ad222669db368e5e376637d8e29c3bec27272" features = [ "__compat", "appservice-api-c", diff --git a/src/api/client/push.rs b/src/api/client/push.rs index 16460777..a7e66675 100644 --- a/src/api/client/push.rs +++ b/src/api/client/push.rs @@ -335,7 +335,7 @@ pub(crate) async fn set_pushrule_actions_route( if account_data .content .global - .set_actions(body.kind.clone(), &body.rule_id, body.actions.clone()) + .set_actions(body.kind.clone(), &body.rule_id, body.actions.clone().into()) .is_err() { return Err!(Request(NotFound("Push rule not found."))); diff --git a/src/api/client/sync/v3.rs b/src/api/client/sync/v3.rs index 59c0cdba..f79c3ded 100644 --- a/src/api/client/sync/v3.rs +++ b/src/api/client/sync/v3.rs @@ -54,6 +54,7 @@ use tuwunel_core::{ future::{OptionStream, ReadyEqExt}, math::ruma_from_u64, stream::{BroadbandExt, Tools, TryExpect, WidebandExt}, + string::to_small_string, }, warn, }; @@ -218,7 +219,7 @@ async fn build_empty_response( .count_one_time_keys(body.sender_user(), body.sender_device()) .await, - ..sync_events::v3::Response::new(next_batch.to_string()) + ..sync_events::v3::Response::new(to_small_string(next_batch)) } } @@ -442,7 +443,7 @@ async fn build_sync_events( device_one_time_keys_count, // Fallback keys are not yet supported device_unused_fallback_key_types: None, - next_batch: next_batch.to_string(), + next_batch: to_small_string(next_batch), presence: Presence { events: presence_events }, rooms: Rooms { leave: left_rooms, diff --git a/src/service/migrations.rs b/src/service/migrations.rs index 81aec2a8..e41162e3 100644 --- a/src/service/migrations.rs +++ b/src/service/migrations.rs @@ -257,7 +257,9 @@ async fn db_lt_12(services: &Services) -> Result { if let Some(rule) = rule { let mut rule = rule.clone(); - content_rule_transformation[1].clone_into(&mut rule.rule_id); + let mut rule_id = String::new(); + content_rule_transformation[1].clone_into(&mut rule_id); + rule.rule_id = rule_id.into(); rules_list .content .shift_remove(content_rule_transformation[0]); @@ -280,7 +282,9 @@ async fn db_lt_12(services: &Services) -> Result { let rule = rules_list.underride.get(transformation[0]); if let Some(rule) = rule { let mut rule = rule.clone(); - transformation[1].clone_into(&mut rule.rule_id); + let mut rule_id = String::new(); + transformation[1].clone_into(&mut rule_id); + rule.rule_id = rule_id.into(); rules_list .underride .shift_remove(transformation[0]);