diff --git a/.cargo/config.toml b/.cargo/config.toml new file mode 100644 index 00000000..4c64d1c8 --- /dev/null +++ b/.cargo/config.toml @@ -0,0 +1,2 @@ +[env] +RUMA_UNSTABLE_EXHAUSTIVE_TYPES = "1" diff --git a/Cargo.lock b/Cargo.lock index d257d117..199a5971 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2480,8 +2480,8 @@ dependencies = [ [[package]] name = "ruma" -version = "0.11.1" -source = "git+https://github.com/ruma/ruma?rev=bd33b9a38fbf4aea0413f947469be916f120032e#bd33b9a38fbf4aea0413f947469be916f120032e" +version = "0.12.2" +source = "git+https://gitlab.computer.surgery/matrix/ruma.git?rev=ruma-0.12.2%2Bgrapevine-1#4208e8c4c8c2b0e7686aefcdbebf7f2f1d08ee29" dependencies = [ "assign", "js_int", @@ -2491,7 +2491,6 @@ dependencies = [ "ruma-common", "ruma-events", "ruma-federation-api", - "ruma-identity-service-api", "ruma-push-gateway-api", "ruma-server-util", "ruma-signatures", @@ -2501,8 +2500,8 @@ dependencies = [ [[package]] name = "ruma-appservice-api" -version = "0.11.0" -source = "git+https://github.com/ruma/ruma?rev=bd33b9a38fbf4aea0413f947469be916f120032e#bd33b9a38fbf4aea0413f947469be916f120032e" +version = "0.12.1" +source = "git+https://gitlab.computer.surgery/matrix/ruma.git?rev=ruma-0.12.2%2Bgrapevine-1#4208e8c4c8c2b0e7686aefcdbebf7f2f1d08ee29" dependencies = [ "js_int", "ruma-common", @@ -2513,8 +2512,8 @@ dependencies = [ [[package]] name = "ruma-client-api" -version = "0.19.0" -source = "git+https://github.com/ruma/ruma?rev=bd33b9a38fbf4aea0413f947469be916f120032e#bd33b9a38fbf4aea0413f947469be916f120032e" +version = "0.20.2" +source = "git+https://gitlab.computer.surgery/matrix/ruma.git?rev=ruma-0.12.2%2Bgrapevine-1#4208e8c4c8c2b0e7686aefcdbebf7f2f1d08ee29" dependencies = [ "as_variant", "assign", @@ -2536,13 +2535,14 @@ dependencies = [ [[package]] name = "ruma-common" -version = "0.14.1" -source = "git+https://github.com/ruma/ruma?rev=bd33b9a38fbf4aea0413f947469be916f120032e#bd33b9a38fbf4aea0413f947469be916f120032e" +version = "0.15.2" +source = "git+https://gitlab.computer.surgery/matrix/ruma.git?rev=ruma-0.12.2%2Bgrapevine-1#4208e8c4c8c2b0e7686aefcdbebf7f2f1d08ee29" dependencies = [ "as_variant", "base64 0.22.1", "bytes", "form_urlencoded", + "getrandom 0.2.15", "http", "indexmap 2.8.0", "js_int", @@ -2566,8 +2566,8 @@ dependencies = [ [[package]] name = "ruma-events" -version = "0.29.1" -source = "git+https://github.com/ruma/ruma?rev=bd33b9a38fbf4aea0413f947469be916f120032e#bd33b9a38fbf4aea0413f947469be916f120032e" +version = "0.30.2" +source = "git+https://gitlab.computer.surgery/matrix/ruma.git?rev=ruma-0.12.2%2Bgrapevine-1#4208e8c4c8c2b0e7686aefcdbebf7f2f1d08ee29" dependencies = [ "as_variant", "indexmap 2.8.0", @@ -2589,8 +2589,8 @@ dependencies = [ [[package]] name = "ruma-federation-api" -version = "0.10.0" -source = "git+https://github.com/ruma/ruma?rev=bd33b9a38fbf4aea0413f947469be916f120032e#bd33b9a38fbf4aea0413f947469be916f120032e" +version = "0.11.1" +source = "git+https://gitlab.computer.surgery/matrix/ruma.git?rev=ruma-0.12.2%2Bgrapevine-1#4208e8c4c8c2b0e7686aefcdbebf7f2f1d08ee29" dependencies = [ "bytes", "http", @@ -2607,27 +2607,17 @@ dependencies = [ [[package]] name = "ruma-identifiers-validation" -version = "0.10.0" -source = "git+https://github.com/ruma/ruma?rev=bd33b9a38fbf4aea0413f947469be916f120032e#bd33b9a38fbf4aea0413f947469be916f120032e" +version = "0.10.1" +source = "git+https://gitlab.computer.surgery/matrix/ruma.git?rev=ruma-0.12.2%2Bgrapevine-1#4208e8c4c8c2b0e7686aefcdbebf7f2f1d08ee29" dependencies = [ "js_int", "thiserror 2.0.12", ] -[[package]] -name = "ruma-identity-service-api" -version = "0.10.0" -source = "git+https://github.com/ruma/ruma?rev=bd33b9a38fbf4aea0413f947469be916f120032e#bd33b9a38fbf4aea0413f947469be916f120032e" -dependencies = [ - "js_int", - "ruma-common", - "serde", -] - [[package]] name = "ruma-macros" -version = "0.14.0" -source = "git+https://github.com/ruma/ruma?rev=bd33b9a38fbf4aea0413f947469be916f120032e#bd33b9a38fbf4aea0413f947469be916f120032e" +version = "0.15.1" +source = "git+https://gitlab.computer.surgery/matrix/ruma.git?rev=ruma-0.12.2%2Bgrapevine-1#4208e8c4c8c2b0e7686aefcdbebf7f2f1d08ee29" dependencies = [ "cfg-if", "proc-macro-crate", @@ -2641,8 +2631,8 @@ dependencies = [ [[package]] name = "ruma-push-gateway-api" -version = "0.10.0" -source = "git+https://github.com/ruma/ruma?rev=bd33b9a38fbf4aea0413f947469be916f120032e#bd33b9a38fbf4aea0413f947469be916f120032e" +version = "0.11.0" +source = "git+https://gitlab.computer.surgery/matrix/ruma.git?rev=ruma-0.12.2%2Bgrapevine-1#4208e8c4c8c2b0e7686aefcdbebf7f2f1d08ee29" dependencies = [ "js_int", "ruma-common", @@ -2653,8 +2643,8 @@ dependencies = [ [[package]] name = "ruma-server-util" -version = "0.4.0" -source = "git+https://github.com/ruma/ruma?rev=bd33b9a38fbf4aea0413f947469be916f120032e#bd33b9a38fbf4aea0413f947469be916f120032e" +version = "0.5.0" +source = "git+https://gitlab.computer.surgery/matrix/ruma.git?rev=ruma-0.12.2%2Bgrapevine-1#4208e8c4c8c2b0e7686aefcdbebf7f2f1d08ee29" dependencies = [ "headers", "http", @@ -2666,8 +2656,8 @@ dependencies = [ [[package]] name = "ruma-signatures" -version = "0.16.0" -source = "git+https://github.com/ruma/ruma?rev=bd33b9a38fbf4aea0413f947469be916f120032e#bd33b9a38fbf4aea0413f947469be916f120032e" +version = "0.17.1" +source = "git+https://gitlab.computer.surgery/matrix/ruma.git?rev=ruma-0.12.2%2Bgrapevine-1#4208e8c4c8c2b0e7686aefcdbebf7f2f1d08ee29" dependencies = [ "base64 0.22.1", "ed25519-dalek", @@ -2682,8 +2672,8 @@ dependencies = [ [[package]] name = "ruma-state-res" -version = "0.12.0" -source = "git+https://github.com/ruma/ruma?rev=bd33b9a38fbf4aea0413f947469be916f120032e#bd33b9a38fbf4aea0413f947469be916f120032e" +version = "0.13.0" +source = "git+https://gitlab.computer.surgery/matrix/ruma.git?rev=ruma-0.12.2%2Bgrapevine-1#4208e8c4c8c2b0e7686aefcdbebf7f2f1d08ee29" dependencies = [ "js_int", "ruma-common", diff --git a/Cargo.toml b/Cargo.toml index 0cf41846..65761015 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -121,7 +121,7 @@ regex = "1.11.1" reqwest = { version = "0.12.15", default-features = false, features = ["http2", "rustls-tls-native-roots", "socks"] } ring = "0.17.14" rocksdb = { package = "rust-rocksdb", version = "0.36.0", features = ["lz4", "multi-threaded-cf", "zstd"], optional = true } -ruma = { git = "https://github.com/ruma/ruma", rev = "bd33b9a38fbf4aea0413f947469be916f120032e", features = ["compat", "rand", "appservice-api-c", "client-api", "federation-api", "push-gateway-api-c", "server-util", "state-res", "unstable-msc2448", "unstable-msc3575", "unstable-exhaustive-types", "ring-compat", "unstable-unspecified" ] } +ruma = { git = "https://gitlab.computer.surgery/matrix/ruma.git", rev = "ruma-0.12.2+grapevine-1", features = ["compat", "rand", "appservice-api-c", "client-api", "federation-api", "push-gateway-api-c", "server-util", "state-res", "unstable-msc2448", "unstable-msc3575", "ring-compat", "unstable-unspecified" ] } rusqlite = { version = "0.34.0", optional = true, features = ["bundled"] } rustls = { version = "0.23.25", default-features = false, features = ["ring", "log", "logging", "std", "tls12"] } sd-notify = { version = "0.4.5", optional = true } diff --git a/nix/pkgs/default/default.nix b/nix/pkgs/default/default.nix index 3fcca36b..a9abdc5a 100644 --- a/nix/pkgs/default/default.nix +++ b/nix/pkgs/default/default.nix @@ -77,6 +77,7 @@ let # Keep sorted include = [ + ".cargo/config.toml" "Cargo.lock" "Cargo.toml" "src" diff --git a/src/api/server_server.rs b/src/api/server_server.rs index 9c29b60b..5bb7b554 100644 --- a/src/api/server_server.rs +++ b/src/api/server_server.rs @@ -1901,6 +1901,7 @@ pub(crate) async fn create_invite_route( .event_id() .as_bytes()])) .into(), + ephemeral: Vec::new(), }, ) .await?; diff --git a/src/service/pusher.rs b/src/service/pusher.rs index c2ae7c46..1b5d375d 100644 --- a/src/service/pusher.rs +++ b/src/service/pusher.rs @@ -263,8 +263,7 @@ impl Service { pusher.ids.app_id.clone(), pusher.ids.pushkey.clone(), ); - device.data.default_payload = http.default_payload.clone(); - device.data.format.clone_from(&http.format); + device.data = http.clone().into(); // Tweaks are only added if the format is NOT event_id_only if !event_id_only { diff --git a/src/service/sending.rs b/src/service/sending.rs index 148d3a74..1b7e8d01 100644 --- a/src/service/sending.rs +++ b/src/service/sending.rs @@ -775,7 +775,9 @@ async fn handle_appservice_event( ); } SendingEventType::Edu(_) => { - // Appservices don't need EDUs (?) + // TODO: send EDUs in + // `appservice::event::push_events::v1::Request::ephemeral` if + // enabled in registration } } } @@ -796,6 +798,7 @@ async fn handle_appservice_event( SendingEventType::Pdu(b) => b.as_bytes(), }))) .into(), + ephemeral: Vec::new(), }, ) .await?; diff --git a/src/utils/error.rs b/src/utils/error.rs index 49b5ab15..0b5420b3 100644 --- a/src/utils/error.rs +++ b/src/utils/error.rs @@ -67,7 +67,7 @@ pub(crate) enum Error { BadDatabase(&'static str), #[error("uiaa")] Uiaa(UiaaInfo), - #[error("{0}: {1}")] + #[error("{}: {}", .0.errcode(), .1)] BadRequest(ErrorKind, &'static str), // This is only needed for when a room alias already exists #[error("{0}")]