diff --git a/Cargo.lock b/Cargo.lock index 149db71..77154c0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -811,7 +811,7 @@ dependencies = [ "rustls-pemfile", "serde_json", "sha2 0.11.0", - "strum", + "strum 0.27.2", "strum_macros", "sysinfo", "tokio", @@ -1264,16 +1264,6 @@ dependencies = [ "ctutils", ] -[[package]] -name = "dispatch2" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e0e367e4e7da84520dedcac1901e4da967309406d1e51017ae1abfb97adbd38" -dependencies = [ - "bitflags 2.13.1", - "objc2", -] - [[package]] name = "displaydoc" version = "0.2.7" @@ -1363,7 +1353,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.61.2", + "windows-sys 0.52.0", ] [[package]] @@ -2244,7 +2234,7 @@ dependencies = [ "rustls-pemfile", "serde_json", "sha2 0.11.0", - "strum", + "strum 0.27.2", "strum_macros", "sysinfo", "tokio", @@ -2301,7 +2291,7 @@ dependencies = [ "serde_json", "serde_yaml", "sha2 0.11.0", - "strum", + "strum 0.27.2", "strum_macros", "sysinfo", "tempfile", @@ -3229,15 +3219,6 @@ dependencies = [ "libc", ] -[[package]] -name = "objc2" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a12a8ed07aefc768292f076dc3ac8c48f3781c8f2d5851dd3d98950e8c5a89f" -dependencies = [ - "objc2-encode", -] - [[package]] name = "objc2-core-foundation" version = "0.3.2" @@ -3245,24 +3226,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" dependencies = [ "bitflags 2.13.1", - "dispatch2", - "objc2", -] - -[[package]] -name = "objc2-encode" -version = "4.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33" - -[[package]] -name = "objc2-foundation" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3e0adef53c21f888deb4fa59fc59f7eb17404926ee8a6f59f5df0fd7f9f3272" -dependencies = [ - "bitflags 2.13.1", - "objc2", ] [[package]] @@ -3275,17 +3238,6 @@ dependencies = [ "objc2-core-foundation", ] -[[package]] -name = "objc2-open-directory" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb82bed227edf5201dfedf072bba4015a33d3d4a98519837295a90f0a23f676d" -dependencies = [ - "objc2", - "objc2-core-foundation", - "objc2-foundation", -] - [[package]] name = "octets" version = "0.3.6" @@ -3444,7 +3396,7 @@ dependencies = [ "rustls-pemfile", "serde_json", "sha2 0.11.0", - "strum", + "strum 0.27.2", "strum_macros", "sysinfo", "tokio", @@ -3901,7 +3853,7 @@ dependencies = [ "once_cell", "socket2 0.6.5", "tracing", - "windows-sys 0.61.2", + "windows-sys 0.52.0", ] [[package]] @@ -4029,7 +3981,7 @@ dependencies = [ "lru", "palette", "serde", - "strum", + "strum 0.28.0", "thiserror 2.0.19", "unicode-segmentation", "unicode-truncate", @@ -4093,7 +4045,7 @@ dependencies = [ "line-clipping", "ratatui-core", "serde", - "strum", + "strum 0.28.0", "time", "unicode-segmentation", "unicode-width", @@ -4269,7 +4221,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys", - "windows-sys 0.61.2", + "windows-sys 0.52.0", ] [[package]] @@ -4337,7 +4289,7 @@ dependencies = [ "security-framework", "security-framework-sys", "webpki-root-certs", - "windows-sys 0.61.2", + "windows-sys 0.52.0", ] [[package]] @@ -4743,6 +4695,12 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" +[[package]] +name = "strum" +version = "0.27.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af23d6f6c1a224baef9d3f61e287d2761385a5b88fdab4eb4c6f11aeb54c4bcf" + [[package]] name = "strum" version = "0.28.0" @@ -4825,16 +4783,15 @@ dependencies = [ [[package]] name = "sysinfo" -version = "0.39.6" +version = "0.38.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2071df9448915b71c4fe6d25deaf1c22f12bd234f01540b77312bb8e41361e6" +checksum = "92ab6a2f8bfe508deb3c6406578252e491d299cbbf3bc0529ecc3313aee4a52f" dependencies = [ "libc", "memchr", "ntapi", "objc2-core-foundation", "objc2-io-kit", - "objc2-open-directory", "windows", ] @@ -4869,7 +4826,7 @@ dependencies = [ "getrandom 0.4.3", "once_cell", "rustix", - "windows-sys 0.61.2", + "windows-sys 0.52.0", ] [[package]] @@ -5558,7 +5515,7 @@ dependencies = [ "rustls-pemfile", "serde_json", "sha2 0.11.0", - "strum", + "strum 0.27.2", "strum_macros", "sysinfo", "tokio", @@ -5674,7 +5631,7 @@ version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.61.2", + "windows-sys 0.52.0", ] [[package]] diff --git a/client/Cargo.toml b/client/Cargo.toml index 79c3ea1..b810b65 100644 --- a/client/Cargo.toml +++ b/client/Cargo.toml @@ -48,9 +48,9 @@ rustls = { version = "0.23.37", features = ["aws-lc-rs"] } rustls-pemfile = "2.2.0" serde_json = "1.0.149" sha2 = "0.11.0" -strum = "0.28.0" +strum = "0.27.2" strum_macros = "0.28.0" -sysinfo = "0.39.0" +sysinfo = "0.38.3" tokio = { version = "1.50.0", features = ["full"] } tokio-tungstenite = { version = "*", features = ["native-tls"] } tungstenite = "*" diff --git a/communities/Cargo.toml b/communities/Cargo.toml index 080cda6..0276496 100644 --- a/communities/Cargo.toml +++ b/communities/Cargo.toml @@ -47,9 +47,9 @@ rustls = { version = "0.23.37", features = ["aws-lc-rs"] } rustls-pemfile = "2.2.0" serde_json = "1.0.149" sha2 = "0.11.0" -strum = "0.28.0" +strum = "0.27.2" strum_macros = "0.28.0" -sysinfo = "0.39.0" +sysinfo = "0.38.3" tokio = { version = "1.50.0", features = ["full"] } tokio-tungstenite = { version = "*", features = ["native-tls"] } tungstenite = "*" diff --git a/iota-auth/Cargo.toml b/iota-auth/Cargo.toml index e53da1b..4d55bac 100644 --- a/iota-auth/Cargo.toml +++ b/iota-auth/Cargo.toml @@ -44,9 +44,9 @@ rustls = { version = "0.23.37", features = ["aws-lc-rs"] } rustls-pemfile = "2.2.0" serde_json = "1.0.149" sha2 = "0.11.0" -strum = "0.28.0" +strum = "0.27.2" strum_macros = "0.28.0" -sysinfo = "0.39.0" +sysinfo = "0.38.3" tokio = { version = "1.50.0", features = ["full"] } tokio-tungstenite = { version = "*", features = ["native-tls"] } tungstenite = "*" diff --git a/iota-cli/Cargo.toml b/iota-cli/Cargo.toml index d757b30..9b0cd33 100644 --- a/iota-cli/Cargo.toml +++ b/iota-cli/Cargo.toml @@ -64,9 +64,9 @@ serde_json = "1.0.149" serde = { version = "1", features = ["derive"] } serde_yaml = "0.9" sha2 = "0.11.0" -strum = "0.28.0" +strum = "0.27.2" strum_macros = "0.28.0" -sysinfo = "0.39.0" +sysinfo = "0.38.3" tokio = { version = "1.50.0", features = ["full"] } tokio-util = { version = "0.7", features = ["rt"] } tokio-tungstenite = { version = "*", features = ["native-tls"] } diff --git a/iota-connection/src/message_handlers.rs b/iota-connection/src/message_handlers.rs index 73244d7..1330ef2 100644 --- a/iota-connection/src/message_handlers.rs +++ b/iota-connection/src/message_handlers.rs @@ -296,45 +296,6 @@ fn contact_value( typed_container(fields) } -fn current_contact_ids(user_id: i64) -> DataValue { - contact_ids_value( - chats_util::get_users(user_id) - .into_iter() - .map(|contact| contact.user_id), - ) -} - -fn contact_ids_value(ids: impl IntoIterator) -> DataValue { - let mut contact_ids = ids.into_iter().collect::>(); - contact_ids.sort_unstable(); - contact_ids.dedup(); - - DataValue::Array( - contact_ids - .into_iter() - .map(|user_id| DataValue::SignedNumber(user_id as i128)) - .collect(), - ) -} - -#[cfg(test)] -mod presence_tests { - use super::contact_ids_value; - use mtp::codec::DataValue; - - #[test] - fn contact_snapshot_is_sorted_and_deduplicated() { - assert_eq!( - contact_ids_value([9, 3, 9, 4, 3]), - DataValue::Array(vec![ - DataValue::SignedNumber(3), - DataValue::SignedNumber(4), - DataValue::SignedNumber(9), - ]) - ); - } -} - fn sync_error(cv: &CommunicationValue) -> CommunicationValue { error_response(cv, CommunicationType::ErrorInvalidData).add_typed_default( DataType::SessionId, @@ -395,6 +356,10 @@ pub fn handle_client_connected(cv: &CommunicationValue) -> CommunicationValue { ), } }; + let all_contact_ids = chats_util::get_users(user_id) + .into_iter() + .map(|contact| DataValue::SignedNumber(contact.user_id as i128)) + .collect(); let message_values = messages .iter() .map(|message| stored_message_value(message, user_id, message.external_user)) @@ -443,7 +408,7 @@ pub fn handle_client_connected(cv: &CommunicationValue) -> CommunicationValue { .collect(), ), ) - .add_typed_default(DataType::UserIds, current_contact_ids(user_id)) + .add_typed_default(DataType::UserIds, DataValue::Array(all_contact_ids)) .add_typed_default(DataType::Calls, DataValue::Array(Vec::new())) } @@ -546,10 +511,6 @@ pub fn handle_get_chats(cv: &CommunicationValue) -> CommunicationValue { pub fn handle_add_conversation(cv: &CommunicationValue) -> CommunicationValue { let user_id = cv.get_sender(); - let session_id = match data_i64(cv, DataType::SessionId) { - Some(id) if id > 0 => id, - _ => return sync_error(cv), - }; let other_id = match cv.get_data(DataType::ChatPartnerId).as_number() { Some(n) => n as i64, None => cv @@ -571,11 +532,6 @@ pub fn handle_add_conversation(cv: &CommunicationValue) -> CommunicationValue { CommunicationValue::new(CommunicationType::AddConversation) .with_id(cv.get_id()) .with_receiver(user_id) - .add_typed_default( - DataType::SessionId, - DataValue::SignedNumber(session_id as i128), - ) - .add_typed_default(DataType::UserIds, current_contact_ids(user_id as i64)) } pub fn handle_add_community(cv: &CommunicationValue) -> CommunicationValue { diff --git a/iota-daemon-lib/Cargo.toml b/iota-daemon-lib/Cargo.toml index 4eb0b7c..5e0c67c 100644 --- a/iota-daemon-lib/Cargo.toml +++ b/iota-daemon-lib/Cargo.toml @@ -15,7 +15,7 @@ omikron-connector = { path = "../omikron-connector" } mtp = { git = "https://git.methanium.net/Methanium/mtp.git" } dashmap = "6.1.0" libc = "0.2" -sysinfo = "0.39.0" +sysinfo = "0.38.3" serde_yaml = "0.9" tokio = { version = "1.50.0", features = ["full"] } tokio-util = { version = "0.7", features = ["rt"] } diff --git a/iota-state/Cargo.toml b/iota-state/Cargo.toml index 8c9ab8a..4275556 100644 --- a/iota-state/Cargo.toml +++ b/iota-state/Cargo.toml @@ -12,6 +12,6 @@ dashmap = "6.1.0" once_cell = "1.21.3" tokio = { version = "1.50.0", features = ["full"] } json = "*" -sysinfo = "0.39.0" +sysinfo = "0.38.3" mtp = { git = "https://git.methanium.net/Methanium/mtp.git" } serde = { version = "1", features = ["derive"] } diff --git a/iota-storage/Cargo.toml b/iota-storage/Cargo.toml index b6835e1..b4b81fb 100644 --- a/iota-storage/Cargo.toml +++ b/iota-storage/Cargo.toml @@ -29,7 +29,7 @@ ratatui = "0.30.0" reqwest = "0.13.2" rusqlite = "0.40.0" sha2 = "0.11.0" -sysinfo = "0.39.0" +sysinfo = "0.38.3" tokio = { version = "1.50.0", features = ["full"] } uuid = { version = "*", features = ["v4"] } walkdir = "2.5.0" diff --git a/iota-updater/Cargo.toml b/iota-updater/Cargo.toml index 0f28357..ac02b50 100644 --- a/iota-updater/Cargo.toml +++ b/iota-updater/Cargo.toml @@ -14,7 +14,7 @@ pnet = "0.35.0" ratatui = "0.30.0" reqwest = "0.13.2" tokio = { version = "1.50.0", features = ["full"] } -sysinfo = "0.39.0" +sysinfo = "0.38.3" uuid = { version = "*", features = ["v4"] } walkdir = "2.5.0" zip = "6.0.0" diff --git a/iota-util/Cargo.toml b/iota-util/Cargo.toml index e9907eb..d61786e 100644 --- a/iota-util/Cargo.toml +++ b/iota-util/Cargo.toml @@ -11,7 +11,7 @@ mtp = { git = "https://git.methanium.net/Methanium/mtp.git", features = [ reqwest = "0.13.2" tokio = { version = "1.50.0", features = ["full"] } -sysinfo = "0.39.0" +sysinfo = "0.38.3" uuid = { version = "*", features = ["v4"] } walkdir = "2.5.0" zip = "6.0.0" diff --git a/mtp-type-maps b/mtp-type-maps index 486541b..f430cd3 160000 --- a/mtp-type-maps +++ b/mtp-type-maps @@ -1 +1 @@ -Subproject commit 486541b9483356ff49ff3ec7016f87d3ecbeaa0e +Subproject commit f430cd358b3d07a4cfd6982eb8917fec80c24a7d diff --git a/other-iota/Cargo.toml b/other-iota/Cargo.toml index 971f5e4..2d38403 100644 --- a/other-iota/Cargo.toml +++ b/other-iota/Cargo.toml @@ -47,9 +47,9 @@ rustls = { version = "0.23.37", features = ["aws-lc-rs"] } rustls-pemfile = "2.2.0" serde_json = "1.0.149" sha2 = "0.11.0" -strum = "0.28.0" +strum = "0.27.2" strum_macros = "0.28.0" -sysinfo = "0.39.0" +sysinfo = "0.38.3" tokio = { version = "1.50.0", features = ["full"] } tokio-tungstenite = { version = "*", features = ["native-tls"] } tungstenite = "*" diff --git a/web-ui/Cargo.toml b/web-ui/Cargo.toml index 822517d..8c3c2c7 100644 --- a/web-ui/Cargo.toml +++ b/web-ui/Cargo.toml @@ -47,9 +47,9 @@ rustls = { version = "0.23.37", features = ["aws-lc-rs"] } rustls-pemfile = "2.2.0" serde_json = "1.0.149" sha2 = "0.11.0" -strum = "0.28.0" +strum = "0.27.2" strum_macros = "0.28.0" -sysinfo = "0.39.0" +sysinfo = "0.38.3" tokio = { version = "1.50.0", features = ["full"] } tokio-tungstenite = { version = "*", features = ["native-tls"] } tungstenite = "*"