atagen

malice

public
Star0
Watch0

Commit 31897439eac7

tarball

atagen <boss@atagen.co>2026-10-26 05:50 UTC

4 files changed+14-14
macltok: bump to 419c654 and sdk fork 0f2f982

Brings recovery setup, pusher management and the push gateway crate, and fixes three history and verification bugs. Backup keys are now fetched on decryption failure since the one-shot download decrypted the whole backup synchronously and froze the single-threaded device worker after verification. Back-pagination only claims the start at m.room.create, and the requester alone starts SAS so two macltok devices no longer collide. logout now takes the pushers to remove.
Modified file: Cargo.lock+11 additions−11 deletions
@@ -2249,7 +2249,7 @@ checksum = "7ef0d4ed8669f8f8826eb00dc878084aa8f253506c4fd5e8f58f5bce72ddb97e"
22492249 [[package]]
22502250 name = "macltok"
22512251 version = "0.1.0"
2252-source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/macltok?rev=417da9e719bcfbb8b60e4ff4f1a09f3d6b0d0160#417da9e719bcfbb8b60e4ff4f1a09f3d6b0d0160"
2252+source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/macltok?rev=419c65426a62191a26b47d07a0e0661e047317da#419c65426a62191a26b47d07a0e0661e047317da"
22532253 dependencies = [
22542254 "futures-util",
22552255 "getrandom 0.2.17",
@@ -2484,7 +2484,7 @@ dependencies = [
24842484 [[package]]
24852485 name = "matrix-sdk"
24862486 version = "0.18.0"
2487-source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=ec026bc9ea2393fd0cce6212b950d91ab6d36097#ec026bc9ea2393fd0cce6212b950d91ab6d36097"
2487+source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=0f2f982989765b79c39efdc30e86eaafccf69e4a#0f2f982989765b79c39efdc30e86eaafccf69e4a"
24882488 dependencies = [
24892489 "anymap2",
24902490 "aquamarine",
@@ -2547,7 +2547,7 @@ dependencies = [
25472547 [[package]]
25482548 name = "matrix-sdk-base"
25492549 version = "0.18.0"
2550-source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=ec026bc9ea2393fd0cce6212b950d91ab6d36097#ec026bc9ea2393fd0cce6212b950d91ab6d36097"
2550+source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=0f2f982989765b79c39efdc30e86eaafccf69e4a#0f2f982989765b79c39efdc30e86eaafccf69e4a"
25512551 dependencies = [
25522552 "as_variant",
25532553 "assert_matches",
@@ -2577,7 +2577,7 @@ dependencies = [
25772577 [[package]]
25782578 name = "matrix-sdk-common"
25792579 version = "0.18.0"
2580-source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=ec026bc9ea2393fd0cce6212b950d91ab6d36097#ec026bc9ea2393fd0cce6212b950d91ab6d36097"
2580+source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=0f2f982989765b79c39efdc30e86eaafccf69e4a#0f2f982989765b79c39efdc30e86eaafccf69e4a"
25812581 dependencies = [
25822582 "eyeball-im",
25832583 "futures-core",
@@ -2600,7 +2600,7 @@ dependencies = [
26002600 [[package]]
26012601 name = "matrix-sdk-crypto"
26022602 version = "0.18.0"
2603-source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=ec026bc9ea2393fd0cce6212b950d91ab6d36097#ec026bc9ea2393fd0cce6212b950d91ab6d36097"
2603+source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=0f2f982989765b79c39efdc30e86eaafccf69e4a#0f2f982989765b79c39efdc30e86eaafccf69e4a"
26042604 dependencies = [
26052605 "aes",
26062606 "aquamarine",
@@ -2641,7 +2641,7 @@ dependencies = [
26412641 [[package]]
26422642 name = "matrix-sdk-indexeddb"
26432643 version = "0.18.0"
2644-source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=ec026bc9ea2393fd0cce6212b950d91ab6d36097#ec026bc9ea2393fd0cce6212b950d91ab6d36097"
2644+source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=0f2f982989765b79c39efdc30e86eaafccf69e4a#0f2f982989765b79c39efdc30e86eaafccf69e4a"
26452645 dependencies = [
26462646 "async-trait",
26472647 "base64 0.22.1",
@@ -2672,7 +2672,7 @@ dependencies = [
26722672 [[package]]
26732673 name = "matrix-sdk-sqlite"
26742674 version = "0.18.0"
2675-source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=ec026bc9ea2393fd0cce6212b950d91ab6d36097#ec026bc9ea2393fd0cce6212b950d91ab6d36097"
2675+source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=0f2f982989765b79c39efdc30e86eaafccf69e4a#0f2f982989765b79c39efdc30e86eaafccf69e4a"
26762676 dependencies = [
26772677 "as_variant",
26782678 "async-trait",
@@ -2699,7 +2699,7 @@ dependencies = [
26992699 [[package]]
27002700 name = "matrix-sdk-store-encryption"
27012701 version = "0.18.0"
2702-source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=ec026bc9ea2393fd0cce6212b950d91ab6d36097#ec026bc9ea2393fd0cce6212b950d91ab6d36097"
2702+source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=0f2f982989765b79c39efdc30e86eaafccf69e4a#0f2f982989765b79c39efdc30e86eaafccf69e4a"
27032703 dependencies = [
27042704 "base64 0.22.1",
27052705 "blake3",
@@ -2720,7 +2720,7 @@ dependencies = [
27202720 [[package]]
27212721 name = "matrix-sdk-test"
27222722 version = "0.18.0"
2723-source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=ec026bc9ea2393fd0cce6212b950d91ab6d36097#ec026bc9ea2393fd0cce6212b950d91ab6d36097"
2723+source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=0f2f982989765b79c39efdc30e86eaafccf69e4a#0f2f982989765b79c39efdc30e86eaafccf69e4a"
27242724 dependencies = [
27252725 "as_variant",
27262726 "ctor",
@@ -2743,7 +2743,7 @@ dependencies = [
27432743 [[package]]
27442744 name = "matrix-sdk-test-macros"
27452745 version = "0.18.0"
2746-source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=ec026bc9ea2393fd0cce6212b950d91ab6d36097#ec026bc9ea2393fd0cce6212b950d91ab6d36097"
2746+source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=0f2f982989765b79c39efdc30e86eaafccf69e4a#0f2f982989765b79c39efdc30e86eaafccf69e4a"
27472747 dependencies = [
27482748 "quote",
27492749 "syn 2.0.119",
@@ -2752,7 +2752,7 @@ dependencies = [
27522752 [[package]]
27532753 name = "matrix-sdk-ui"
27542754 version = "0.18.0"
2755-source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=ec026bc9ea2393fd0cce6212b950d91ab6d36097#ec026bc9ea2393fd0cce6212b950d91ab6d36097"
2755+source = "git+ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk?rev=0f2f982989765b79c39efdc30e86eaafccf69e4a#0f2f982989765b79c39efdc30e86eaafccf69e4a"
27562756 dependencies = [
27572757 "as_variant",
27582758 "async-rx",
Modified file: Cargo.toml+1 additions−1 deletions
@@ -3,7 +3,7 @@ resolver = "3"
33 members = ["crates/malice-core", "crates/malice-server", "crates/malice-static"]
44
55 [workspace.dependencies]
6-macltok = { git = "ssh://brewery@pls.lobotomise.me:33/atagen/macltok", rev = "417da9e719bcfbb8b60e4ff4f1a09f3d6b0d0160" }
6+macltok = { git = "ssh://brewery@pls.lobotomise.me:33/atagen/macltok", rev = "419c65426a62191a26b47d07a0e0661e047317da" }
77 ruma = { version = "0.16", default-features = false }
88 serde = { version = "1", features = ["derive"] }
99 serde_json = "1"
Modified file: crates/malice-server/Cargo.toml+1 additions−1 deletions
@@ -31,7 +31,7 @@ tracing-subscriber = { version = "0.3", features = ["env-filter"] }
3131 [dev-dependencies]
3232 http-body-util = "0.1"
3333 tower = { version = "0.5", features = ["util"] }
34-matrix-sdk = { git = "ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk", rev = "ec026bc9ea2393fd0cce6212b950d91ab6d36097", default-features = false, features = ["testing"] }
34+matrix-sdk = { git = "ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk", rev = "0f2f982989765b79c39efdc30e86eaafccf69e4a", default-features = false, features = ["testing"] }
3535 reqwest = { version = "0.13", default-features = false, features = ["json", "query", "rustls"] }
3636 tempfile = "3"
3737 wiremock = "0.6"
Modified file: crates/malice-server/src/state.rs+1 additions−1 deletions
@@ -292,7 +292,7 @@ impl AppState {
292292 let user = { self.inner.sessions.read().await.get(sid).cloned() };
293293 if let Some(user) = user {
294294 // answers once the server has let go of the device, and the engine stops itself
295- let _ = timeout(Duration::from_secs(5), user.handle.logout()).await;
295+ let _ = timeout(Duration::from_secs(5), user.handle.logout(Vec::new())).await;
296296 }
297297 self.remove_session(sid, Retain::Nothing).await;
298298 }