diff --git a/Cargo.lock b/Cargo.lock index cfdc7048c..77f342472 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -44,7 +44,7 @@ version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" dependencies = [ - "getrandom 0.2.17", + "getrandom 0.2.16", "once_cell", "version_check", ] @@ -64,9 +64,9 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.1.4" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" dependencies = [ "memchr", ] @@ -101,7 +101,7 @@ dependencies = [ "cssparser 0.35.0", "html5ever 0.35.0", "maplit", - "tendril 0.4.3", + "tendril", "url", ] @@ -122,9 +122,9 @@ checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" [[package]] name = "anstream" -version = "1.0.0" +version = "0.6.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "824a212faf96e9acacdbd09febd34438f8f711fb84e09a8916013cd7815ca28d" +checksum = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a" dependencies = [ "anstyle", "anstyle-parse", @@ -137,15 +137,15 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.14" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000" +checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" [[package]] name = "anstyle-parse" -version = "1.0.0" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52ce7f38b242319f7cabaa6813055467063ecdc9d355bbb4ce0c68908cd8130e" +checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" dependencies = [ "utf8parse", ] @@ -156,7 +156,7 @@ version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" dependencies = [ - "windows-sys 0.61.2", + "windows-sys 0.61.1", ] [[package]] @@ -167,7 +167,7 @@ checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" dependencies = [ "anstyle", "once_cell_polyfill", - "windows-sys 0.61.2", + "windows-sys 0.61.1", ] [[package]] @@ -210,7 +210,7 @@ checksum = "3c3610892ee6e0cbce8ae2700349fcf8f98adb0dbfbee85aec3c9179d29cc072" dependencies = [ "base64ct", "blake2", - "cpufeatures 0.2.17", + "cpufeatures", "password-hash", ] @@ -238,6 +238,27 @@ dependencies = [ "stable_deref_trait", ] +[[package]] +name = "ashpd" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6cbdf310d77fd3aaee6ea2093db7011dc2d35d2eb3481e5607f1f8d942ed99df" +dependencies = [ + "enumflags2", + "futures-channel", + "futures-util", + "rand 0.9.2", + "raw-window-handle", + "serde", + "serde_repr", + "tokio", + "url", + "wayland-backend", + "wayland-client", + "wayland-protocols", + "zbus", +] + [[package]] name = "async-broadcast" version = "0.7.2" @@ -264,9 +285,9 @@ dependencies = [ [[package]] name = "async-executor" -version = "1.14.0" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c96bf972d85afc50bf5ab8fe2d54d1586b4e0b46c97c50a0c9e71e2f7bcd812a" +checksum = "bb812ffb58524bdd10860d7d974e2f01cc0950c2438a74ee5ec2e2280c6c4ffa" dependencies = [ "async-task", "concurrent-queue", @@ -291,14 +312,14 @@ dependencies = [ "polling", "rustix", "slab", - "windows-sys 0.61.2", + "windows-sys 0.61.1", ] [[package]] name = "async-lock" -version = "3.4.2" +version = "3.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290f7f2596bd5b78a9fec8088ccd89180d7f9f55b94b0576823bbbdc72ee8311" +checksum = "5fd03604047cee9b6ce9de9f70c6cd540a0520c813cbd49bae61f33ab80ed1dc" dependencies = [ "event-listener", "event-listener-strategy", @@ -307,9 +328,9 @@ dependencies = [ [[package]] name = "async-process" -version = "2.5.0" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc50921ec0055cdd8a16de48773bfeec5c972598674347252c0399676be7da75" +checksum = "65daa13722ad51e6ab1a1b9c01299142bc75135b337923cfa10e79bbbd669f00" dependencies = [ "async-channel", "async-io", @@ -331,14 +352,14 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.104", ] [[package]] name = "async-signal" -version = "0.2.14" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52b5aaafa020cf5053a01f2a60e8ff5dccf550f0f77ec54a4e47285ac2bab485" +checksum = "f567af260ef69e1d52c2b560ce0ea230763e6fbb9214a85d768760a920e3e3c1" dependencies = [ "async-io", "async-lock", @@ -349,7 +370,7 @@ dependencies = [ "rustix", "signal-hook-registry", "slab", - "windows-sys 0.61.2", + "windows-sys 0.60.2", ] [[package]] @@ -371,7 +392,7 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.104", ] [[package]] @@ -388,7 +409,7 @@ checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.104", ] [[package]] @@ -437,9 +458,9 @@ checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "aws-lc-rs" -version = "1.17.0" +version = "1.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ec2f1fc3ec205783a5da9a7e6c1509cc69dedf09a1949e412c1e18469326d00" +checksum = "94bffc006df10ac2a68c83692d734a465f8ee6c5b384d8545a636f81d858f4bf" dependencies = [ "aws-lc-sys", "untrusted 0.7.1", @@ -448,9 +469,9 @@ dependencies = [ [[package]] name = "aws-lc-sys" -version = "0.41.0" +version = "0.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a2f9779ce85b93ab6170dd940ad0169b5766ff848247aff13bb788b832fe3f4" +checksum = "4321e568ed89bb5a7d291a7f37997c2c0df89809d7b6d12062c81ddb54aa782e" dependencies = [ "cc", "cmake", @@ -487,7 +508,7 @@ dependencies = [ "serde_urlencoded", "sync_wrapper", "tokio", - "tower 0.5.3", + "tower 0.5.2", "tower-layer", "tower-service", "tracing", @@ -495,9 +516,9 @@ dependencies = [ [[package]] name = "axum" -version = "0.8.9" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31b698c5f9a010f6573133b09e0de5408834d0c82f8d7475a89fc1867a71cd90" +checksum = "8b52af3cb4058c895d37317bb27508dccc8e5f2d39454016b297bf4a400597b8" dependencies = [ "axum-core 0.5.6", "bytes", @@ -513,7 +534,7 @@ dependencies = [ "pin-project-lite", "serde_core", "sync_wrapper", - "tower 0.5.3", + "tower 0.5.2", "tower-layer", "tower-service", ] @@ -565,7 +586,7 @@ checksum = "57d123550fa8d071b7255cb0cc04dc302baa6c8c4a79f55701552684d8399bce" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.104", ] [[package]] @@ -588,9 +609,9 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "base64ct" -version = "1.8.3" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2af50177e190e07a26ab74f8b1efbfe2ef87da2116221318cb1c2e82baf7de06" +checksum = "55248b47b0caf0546f7988906588779981c43bb1bc9d0c44087278f80cdb44ba" [[package]] name = "bcrypt" @@ -617,7 +638,7 @@ version = "0.72.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.9.1", "cexpr", "clang-sys", "itertools 0.13.0", @@ -628,7 +649,7 @@ dependencies = [ "regex", "rustc-hash", "shlex", - "syn 2.0.117", + "syn 2.0.104", ] [[package]] @@ -654,11 +675,11 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.11.1" +version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4512299f36f043ab09a583e57bceb5a5aab7a73db1805848e8fef3c9e8c78b3" +checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967" dependencies = [ - "serde_core", + "serde", ] [[package]] @@ -684,16 +705,16 @@ dependencies = [ [[package]] name = "blake3" -version = "1.8.5" +version = "1.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0aa83c34e62843d924f905e0f5c866eb1dd6545fc4d719e803d9ba6030371fce" +checksum = "2468ef7d57b3fb7e16b576e8377cdbde2320c60e1491e961d11da40fc4f02a2d" dependencies = [ "arrayref", "arrayvec", "cc", "cfg-if", "constant_time_eq", - "cpufeatures 0.3.0", + "cpufeatures", ] [[package]] @@ -713,11 +734,20 @@ dependencies = [ [[package]] name = "block2" -version = "0.6.2" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c132eebf10f5cad5289222520a4a058514204aed6d791f1cf4fe8088b82d15f" +dependencies = [ + "objc2 0.5.2", +] + +[[package]] +name = "block2" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdeb9d870516001442e364c5220d3574d2da8dc765554b4a617230d33fa58ef5" +checksum = "340d2f0bdb2a43c1d3cd40513185b2bd7def0aa1052f956455114bc98f82dcf2" dependencies = [ - "objc2", + "objc2 0.6.1", ] [[package]] @@ -751,26 +781,25 @@ checksum = "f781dba93de3a5ef6dc5b17c9958b208f6f3f021623b360fb605ea51ce443f10" [[package]] name = "borsh" -version = "1.6.1" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfd1e3f8955a5d7de9fab72fc8373fade9fb8a703968cb200ae3dc6cf08e185a" +checksum = "ad8646f98db542e39fc66e68a20b2144f6a732636df7c2354e74645faaa433ce" dependencies = [ "borsh-derive", - "bytes", "cfg_aliases", ] [[package]] name = "borsh-derive" -version = "1.6.1" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfcfdc083699101d5a7965e49925975f2f55060f94f9a05e7187be95d530ca59" +checksum = "fdd1d3c0c2f5833f22386f252fe8ed005c7f59fdcddeef025c01b4c3b9fd9ac3" dependencies = [ "once_cell", - "proc-macro-crate 3.5.0", + "proc-macro-crate 3.3.0", "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.104", ] [[package]] @@ -781,9 +810,9 @@ checksum = "36f64beae40a84da1b4b26ff2761a5b895c12adc41dc25aaee1c4f2bbfe97a6e" [[package]] name = "brotli" -version = "8.0.2" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bd8b9603c7aa97359dbd97ecf258968c95f3adddd6db2f7e7a5bef101c84560" +checksum = "9991eea70ea4f293524138648e41ee89b0b2b12ddef3b255effa43c8056e0e0d" dependencies = [ "alloc-no-stdlib", "alloc-stdlib", @@ -800,20 +829,11 @@ dependencies = [ "alloc-stdlib", ] -[[package]] -name = "bs58" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" -dependencies = [ - "tinyvec", -] - [[package]] name = "bumpalo" -version = "3.20.2" +version = "3.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb" +checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" [[package]] name = "bytecheck" @@ -839,9 +859,9 @@ dependencies = [ [[package]] name = "bytemuck" -version = "1.25.0" +version = "1.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +checksum = "5c76a5792e44e4abe34d3abf15636779261d45a7450612059293d1d2cfc63422" [[package]] name = "byteorder" @@ -880,7 +900,7 @@ version = "0.18.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ca26ef0159422fb77631dc9d17b102f253b876fe1586b03b803e63a309b4ee2" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.9.1", "cairo-sys-rs", "glib", "libc", @@ -901,11 +921,11 @@ dependencies = [ [[package]] name = "camino" -version = "1.2.2" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e629a66d692cb9ff1a1c664e41771b3dcaf961985a9774c0eb0bd1b51cf60a48" +checksum = "0da45bc31171d8d6960122e222a67740df867c1dd53b4d51caa297084c185cab" dependencies = [ - "serde_core", + "serde", ] [[package]] @@ -938,7 +958,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "374b7c592d9c00c1f4972ea58390ac6b18cbb6ab79011f3bdc90a0b82ca06b77" dependencies = [ "serde", - "toml 0.9.12+spec-1.1.0", + "toml 0.9.5", ] [[package]] @@ -1024,9 +1044,9 @@ dependencies = [ [[package]] name = "cfg-if" -version = "1.0.4" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" +checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268" [[package]] name = "cfg_aliases" @@ -1045,7 +1065,7 @@ dependencies = [ "num-traits", "serde", "wasm-bindgen", - "windows-link 0.2.1", + "windows-link 0.2.0", ] [[package]] @@ -1098,9 +1118,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.6.1" +version = "4.5.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ddb117e43bbf7dacf0a4190fef4d345b9bad68dfc649cb349e7d17d28428e51" +checksum = "e2134bb3ea021b78629caa971416385309e0131b351b25e01dc16fb54e1b5fae" dependencies = [ "clap_builder", "clap_derive", @@ -1108,9 +1128,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.6.0" +version = "4.5.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "714a53001bf66416adb0e2ef5ac857140e7dc3a0c48fb28b2f10762fc4b5069f" +checksum = "c2ba64afa3c0a6df7fa517765e31314e983f51dda798ffba27b988194fb65dc9" dependencies = [ "anstream", "anstyle", @@ -1120,27 +1140,27 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.6.1" +version = "4.5.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2ce8604710f6733aa641a2b3731eaa1e8b3d9973d5e3565da11800813f997a9" +checksum = "bbfd7eae0b0f1a6e63d4b13c9c478de77c2eb546fba158ad50b4203dc24b9f9c" dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.104", ] [[package]] name = "clap_lex" -version = "1.1.0" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9" +checksum = "b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675" [[package]] name = "cmake" -version = "0.1.58" +version = "0.1.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0f78a02292a74a88ac736019ab962ece0bc380e3f977bf72e376c5d78ff0678" +checksum = "75443c44cd6b379beb8c5b45d85d0773baf31cce901fe7bb252f4eff3008ef7d" dependencies = [ "cc", ] @@ -1167,7 +1187,7 @@ version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ad36507aeb7e16159dfe68db81ccc27571c3ccd4b76fb2fb72fc59e7a4b1b64c" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.9.1", "block", "cocoa-foundation 0.2.1", "core-foundation 0.10.1", @@ -1197,7 +1217,7 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81411967c50ee9a1fc11365f8c585f863a22a9697c89239c452292c40ba79b0d" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.9.1", "block", "core-foundation 0.10.1", "core-graphics-types 0.2.0", @@ -1241,6 +1261,12 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d52eff69cd5e647efe296129160853a42795992097e8af39800e1060caeea9b" +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + [[package]] name = "cookie" version = "0.18.1" @@ -1296,20 +1322,7 @@ version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa95a34622365fa5bbf40b20b75dba8dfa8c94c734aea8ac9a5ca38af14316f1" dependencies = [ - "bitflags 2.11.1", - "core-foundation 0.10.1", - "core-graphics-types 0.2.0", - "foreign-types 0.5.0", - "libc", -] - -[[package]] -name = "core-graphics" -version = "0.25.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "064badf302c3194842cf2c5d61f56cc88e54a759313879cdf03abdd27d0c3b97" -dependencies = [ - "bitflags 2.11.1", + "bitflags 2.9.1", "core-foundation 0.10.1", "core-graphics-types 0.2.0", "foreign-types 0.5.0", @@ -1333,7 +1346,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d44a101f213f6c4cdc1853d4b78aef6db6bdfa3468798cc1d9912f4735013eb" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.9.1", "core-foundation 0.10.1", "libc", ] @@ -1347,15 +1360,6 @@ dependencies = [ "libc", ] -[[package]] -name = "cpufeatures" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201" -dependencies = [ - "libc", -] - [[package]] name = "crc32fast" version = "1.5.0" @@ -1416,7 +1420,7 @@ dependencies = [ "chrono", "once_cell", "phf 0.11.3", - "winnow 0.7.15", + "winnow 0.7.12", ] [[package]] @@ -1495,9 +1499,9 @@ dependencies = [ [[package]] name = "crypto-common" -version = "0.1.7" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ "generic-array 0.14.7", "typenum", @@ -1505,27 +1509,31 @@ dependencies = [ [[package]] name = "cssparser" -version = "0.35.0" +version = "0.29.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e901edd733a1472f944a45116df3f846f54d37e67e68640ac8bb69689aca2aa" +checksum = "f93d03419cb5950ccfd3daf3ff1c7a36ace64609a1a8746d493df1ca0afde0fa" dependencies = [ "cssparser-macros", "dtoa-short", "itoa", - "phf 0.11.3", + "matches", + "phf 0.10.1", + "proc-macro2", + "quote", "smallvec", + "syn 1.0.109", ] [[package]] name = "cssparser" -version = "0.36.0" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dae61cf9c0abb83bd659dab65b7e4e38d8236824c85f0f804f173567bda257d2" +checksum = "4e901edd733a1472f944a45116df3f846f54d37e67e68640ac8bb69689aca2aa" dependencies = [ "cssparser-macros", "dtoa-short", "itoa", - "phf 0.13.1", + "phf 0.11.3", "smallvec", ] @@ -1536,25 +1544,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" dependencies = [ "quote", - "syn 2.0.117", + "syn 2.0.104", ] [[package]] name = "ctor" -version = "0.8.0" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "352d39c2f7bef1d6ad73db6f5160efcaed66d94ef8c6c573a8410c00bf909a98" +checksum = "32a2785755761f3ddc1492979ce1e48d2c00d09311c39e4466429188f3dd6501" dependencies = [ - "ctor-proc-macro", - "dtor", + "quote", + "syn 2.0.104", ] -[[package]] -name = "ctor-proc-macro" -version = "0.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52560adf09603e58c9a7ee1fe1dcb95a16927b17c127f0ac02d6e768a0e25bc1" - [[package]] name = "curve25519-dalek" version = "4.1.3" @@ -1562,7 +1564,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" dependencies = [ "cfg-if", - "cpufeatures 0.2.17", + "cpufeatures", "curve25519-dalek-derive", "digest", "fiat-crypto", @@ -1579,14 +1581,14 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.104", ] [[package]] name = "darling" -version = "0.23.0" +version = "0.20.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25ae13da2f202d56bd7f91c25fba009e7717a1e4a1cc98a76d844b65ae912e9d" +checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" dependencies = [ "darling_core", "darling_macro", @@ -1594,33 +1596,34 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.23.0" +version = "0.20.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9865a50f7c335f53564bb694ef660825eb8610e0a53d3e11bf1b0d3df31e03b0" +checksum = "0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e" dependencies = [ + "fnv", "ident_case", "proc-macro2", "quote", "strsim", - "syn 2.0.117", + "syn 2.0.104", ] [[package]] name = "darling_macro" -version = "0.23.0" +version = "0.20.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d" +checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ "darling_core", "quote", - "syn 2.0.117", + "syn 2.0.104", ] [[package]] name = "dashmap" -version = "6.2.1" +version = "6.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6361d5c062261c78a176addb82d4c821ae42bed6089de0e12603cd25de2059c" +checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" dependencies = [ "cfg-if", "crossbeam-utils", @@ -1632,20 +1635,9 @@ dependencies = [ [[package]] name = "data-encoding" -version = "2.11.0" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4ae5f15dda3c708c0ade84bfee31ccab44a3da4f88015ed22f63732abe300c8" - -[[package]] -name = "dbus" -version = "0.9.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b942602992bb7acfd1f51c49811c58a610ef9181b6e66f3e519d79b540a3bf73" -dependencies = [ - "libc", - "libdbus-sys", - "windows-sys 0.61.2", -] +checksum = "d7a1e2f27636f116493b8b860f5546edb47c8d8f8ea73e1d2a20be88e28d1fea" [[package]] name = "der" @@ -1660,33 +1652,25 @@ dependencies = [ [[package]] name = "deranged" -version = "0.5.8" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c" +checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e" dependencies = [ "powerfmt", - "serde_core", + "serde", ] [[package]] name = "derive_more" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d751e9e49156b02b44f9c1815bcb94b984cdcc4396ecc32521c739452808b134" -dependencies = [ - "derive_more-impl", -] - -[[package]] -name = "derive_more-impl" -version = "2.1.1" +version = "0.99.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "799a97264921d8623a957f6c3b9011f3b5492f557bbb7a5a19b7fa6d06ba8dcb" +checksum = "6edb4b64a43d977b8e99788fe3a04d483834fba1215a7e02caa415b626497f7f" dependencies = [ + "convert_case", "proc-macro2", "quote", "rustc_version", - "syn 2.0.117", + "syn 2.0.104", ] [[package]] @@ -1746,7 +1730,7 @@ dependencies = [ "libc", "option-ext", "redox_users 0.5.2", - "windows-sys 0.61.2", + "windows-sys 0.61.1", ] [[package]] @@ -1757,14 +1741,14 @@ checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" [[package]] name = "dispatch2" -version = "0.3.1" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e0e367e4e7da84520dedcac1901e4da967309406d1e51017ae1abfb97adbd38" +checksum = "89a09f22a6c6069a18470eb92d2298acf25463f14256d24778e1230d789a2aec" dependencies = [ - "bitflags 2.11.1", - "block2", + "bitflags 2.9.1", + "block2 0.6.1", "libc", - "objc2", + "objc2 0.6.1", ] [[package]] @@ -1775,26 +1759,23 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.104", ] [[package]] -name = "dlopen2" -version = "0.7.0" +name = "dlib" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1297103d2bbaea85724fcee6294c2d50b1081f9ad47d0f6f6f61eda65315a6" +checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412" dependencies = [ - "dlopen2_derive", - "libc", - "once_cell", - "winapi", + "libloading 0.8.9", ] [[package]] name = "dlopen2" -version = "0.8.2" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e2c5bd4158e66d1e215c49b837e11d62f3267b30c92f1d171c4d3105e3dc4d4" +checksum = "9e1297103d2bbaea85724fcee6294c2d50b1081f9ad47d0f6f6f61eda65315a6" dependencies = [ "dlopen2_derive", "libc", @@ -1804,13 +1785,13 @@ dependencies = [ [[package]] name = "dlopen2_derive" -version = "0.4.3" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fbbb781877580993a8707ec48672673ec7b81eeba04cfd2310bd28c08e47c8f" +checksum = "788160fb30de9cdd857af31c6a2675904b16ece8fc2737b2c7127ba368c9d0f4" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.104", ] [[package]] @@ -1819,7 +1800,7 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68df3f2b690c1b86e65ef7830956aededf3cb0a16f898f79b9a6f421a7b6211b" dependencies = [ - "rand 0.8.6", + "rand 0.8.5", ] [[package]] @@ -1832,21 +1813,6 @@ dependencies = [ "urlencoding", ] -[[package]] -name = "dom_query" -version = "0.27.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "521e380c0c8afb8d9a1e83a1822ee03556fc3e3e7dbc1fd30be14e37f9cb3f89" -dependencies = [ - "bit-set", - "cssparser 0.36.0", - "foldhash 0.2.0", - "html5ever 0.38.0", - "precomputed-hash", - "selectors", - "tendril 0.5.0", -] - [[package]] name = "downcast-rs" version = "1.2.1" @@ -1864,9 +1830,9 @@ dependencies = [ [[package]] name = "dtoa" -version = "1.0.11" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c3cf4824e2d5f025c7b531afcb2325364084a16806f6d47fbc1f5fbd9960590" +checksum = "d6add3b8cff394282be81f3fc1a0605db594ed69890078ca6e2cab1c408bcf04" [[package]] name = "dtoa-short" @@ -1877,21 +1843,6 @@ dependencies = [ "dtoa", ] -[[package]] -name = "dtor" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1057d6c64987086ff8ed0fd3fbf377a6b7d205cc7715868cd401705f715cbe4" -dependencies = [ - "dtor-proc-macro", -] - -[[package]] -name = "dtor-proc-macro" -version = "0.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f678cf4a922c215c63e0de95eb1ff08a958a81d47e485cf9da1e27bf6305cfa5" - [[package]] name = "dunce" version = "1.0.5" @@ -1981,14 +1932,14 @@ dependencies = [ [[package]] name = "embed-resource" -version = "3.0.9" +version = "3.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31a88c8d26de40ed18fe748c547845aa39de1db3afd958f8cb91579f3644bcb" +checksum = "4c6d81016d6c977deefb2ef8d8290da019e27cc26167e102185da528e6c0ab38" dependencies = [ "cc", "memchr", "rustc_version", - "toml 1.1.2+spec-1.1.0", + "toml 0.9.5", "vswhom", "winreg 0.55.0", ] @@ -2010,9 +1961,9 @@ dependencies = [ [[package]] name = "endi" -version = "1.1.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66b7e2430c6dff6a955451e2cfc438f09cea1965a9d6f87f7e3b90decc014099" +checksum = "a3d8a32ae18130a3c84dd492d4215c3d913c3b07c6b63c2eb3eb7ff1101ab7bf" [[package]] name = "endian-type" @@ -2051,7 +2002,7 @@ checksum = "67c78a4d8fdf9953a5c9d458f9efe940fd97a0cab0941c075a813ac594733827" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.104", ] [[package]] @@ -2068,23 +2019,22 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "erased-serde" -version = "0.4.10" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2add8a07dd6a8d93ff627029c51de145e12686fbc36ecb298ac22e74cf02dec" +checksum = "e004d887f51fcb9fef17317a2f3525c887d8aa3f4f50fed920816a688284a5b7" dependencies = [ "serde", - "serde_core", "typeid", ] [[package]] name = "errno" -version = "0.3.14" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" +checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad" dependencies = [ "libc", - "windows-sys 0.61.2", + "windows-sys 0.60.2", ] [[package]] @@ -2134,9 +2084,9 @@ dependencies = [ [[package]] name = "fastrand" -version = "2.4.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" [[package]] name = "fdeflate" @@ -2175,9 +2125,9 @@ dependencies = [ [[package]] name = "file-locker" -version = "1.1.4" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75ae8b5984a4863d8a32109a848d038bd6d914f20f010cc141375f7a183c41cf" +checksum = "d6c3e69656680c6c3d76750b46dfa64bf07626bd2130c540d6cf2d306ba595a8" dependencies = [ "nix 0.29.0", ] @@ -2220,16 +2170,16 @@ version = "25.12.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "35f6839d7b3b98adde531effaf34f0c2badc6f4735d26fe74709d8e513a96ef3" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.9.1", "rustc_version", "serde", ] [[package]] name = "flate2" -version = "1.1.9" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c" +checksum = "4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d" dependencies = [ "crc32fast", "miniz_oxide", @@ -2253,12 +2203,6 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" -[[package]] -name = "foldhash" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" - [[package]] name = "foreign-types" version = "0.3.2" @@ -2286,7 +2230,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.104", ] [[package]] @@ -2350,9 +2294,9 @@ dependencies = [ [[package]] name = "futures" -version = "0.3.32" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b147ee9d1f6d097cef9ce628cd2ee62288d963e16fb287bd9286455b241382d" +checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" dependencies = [ "futures-channel", "futures-core", @@ -2365,9 +2309,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.32" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07bbe89c50d7a535e539b8c17bc0b49bdb77747034daa8087407d655f3f7cc1d" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" dependencies = [ "futures-core", "futures-sink", @@ -2375,15 +2319,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.32" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" [[package]] name = "futures-executor" -version = "0.3.32" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf29c38818342a3b26b5b923639e7b1f4a61fc5e76102d4b1981c6dc7a7579d" +checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" dependencies = [ "futures-core", "futures-task", @@ -2392,9 +2336,9 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.32" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" [[package]] name = "futures-lite" @@ -2411,26 +2355,26 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.32" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.104", ] [[package]] name = "futures-sink" -version = "0.3.32" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c39754e157331b013978ec91992bde1ac089843443c49cbc7f46150b0fad0893" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" [[package]] name = "futures-task" -version = "0.3.32" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" [[package]] name = "futures-timer" @@ -2440,9 +2384,9 @@ checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" [[package]] name = "futures-util" -version = "0.3.32" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" dependencies = [ "futures-channel", "futures-core", @@ -2452,6 +2396,7 @@ dependencies = [ "futures-task", "memchr", "pin-project-lite", + "pin-utils", "slab", ] @@ -2464,6 +2409,15 @@ dependencies = [ "thread_local", ] +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + [[package]] name = "gdk" version = "0.18.2" @@ -2624,7 +2578,7 @@ dependencies = [ "i_overlay", "log", "num-traits", - "rand 0.8.6", + "rand 0.8.5", "robust", "rstar 0.12.2", "serde", @@ -2634,9 +2588,9 @@ dependencies = [ [[package]] name = "geo-types" -version = "0.7.19" +version = "0.7.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94776032c45f950d30a13af6113c2ad5625316c9abfbccee4dd5a6695f8fe0f5" +checksum = "24f8647af4005fa11da47cd56252c6ef030be8fa97bdbf355e7dfb6348f0a82c" dependencies = [ "approx", "num-traits", @@ -2651,9 +2605,9 @@ dependencies = [ [[package]] name = "geographiclib-rs" -version = "0.2.7" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5a7f08910fd98737a6eda7568e7c5e645093e073328eeef49758cfe8b0489c7" +checksum = "f611040a2bb37eaa29a78a128d1e92a378a03e0b6e66ae27398d42b1ba9a7841" dependencies = [ "libm", ] @@ -2669,14 +2623,25 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.17" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" +checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" dependencies = [ "cfg-if", "js-sys", "libc", - "wasi", + "wasi 0.11.1+wasi-snapshot-preview1", "wasm-bindgen", ] @@ -2745,7 +2710,7 @@ version = "0.18.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "233daaf6e83ae6a12a52055f568f9d7cf4671dabb78ff9560ab6da230ce00ee5" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.9.1", "futures-channel", "futures-core", "futures-executor", @@ -2769,11 +2734,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0bb0228f477c0900c880fd78c8759b95c7636dbd7842707f49e132378aa2acdc" dependencies = [ "heck 0.4.1", - "proc-macro-crate 2.0.2", + "proc-macro-crate 2.0.0", "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.104", ] [[package]] @@ -2863,14 +2828,14 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.104", ] [[package]] name = "h2" -version = "0.4.14" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "171fefbc92fe4a4de27e0698d6a5b392d6a0e333506bc49133760b3bcf948733" +checksum = "2f44da3a8150a6703ed5d34e164b875fd14c2cdab9af1252a9a1020bde2bdc54" dependencies = [ "atomic-waker", "bytes", @@ -2878,7 +2843,7 @@ dependencies = [ "futures-core", "futures-sink", "http", - "indexmap 2.14.0", + "indexmap 2.13.0", "slab", "tokio", "tokio-util", @@ -2887,13 +2852,12 @@ dependencies = [ [[package]] name = "half" -version = "2.7.1" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" +checksum = "459196ed295495a68f7d7fe1d84f6c4b7ff0e21fe3017b2f283c6fac3ad803c9" dependencies = [ "cfg-if", "crunchy", - "zerocopy", ] [[package]] @@ -2949,13 +2913,13 @@ checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" [[package]] name = "hashbrown" -version = "0.15.5" +version = "0.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +checksum = "5971ac85611da7067dbfcabef3c70ebb5606018acd9e2a3903a0da507521e0d5" dependencies = [ "allocator-api2", "equivalent", - "foldhash 0.1.5", + "foldhash", ] [[package]] @@ -2963,17 +2927,6 @@ name = "hashbrown" version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" -dependencies = [ - "allocator-api2", - "equivalent", - "foldhash 0.2.0", -] - -[[package]] -name = "hashbrown" -version = "0.17.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" [[package]] name = "headers" @@ -3078,23 +3031,25 @@ dependencies = [ [[package]] name = "html5ever" -version = "0.35.0" +version = "0.29.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55d958c2f74b664487a2035fe1dadb032c48718a03b63f3ab0b8537db8549ed4" +checksum = "3b7410cae13cbc75623c98ac4cbfd1f0bedddf3227afc24f370cf0f50a44a11c" dependencies = [ "log", - "markup5ever 0.35.0", - "match_token", + "mac", + "markup5ever 0.14.1", + "match_token 0.1.0", ] [[package]] name = "html5ever" -version = "0.38.0" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1054432bae2f14e0061e33d23402fbaa67a921d319d56adc6bcf887ddad1cbc2" +checksum = "55d958c2f74b664487a2035fe1dadb032c48718a03b63f3ab0b8537db8549ed4" dependencies = [ "log", - "markup5ever 0.38.0", + "markup5ever 0.35.0", + "match_token 0.35.0", ] [[package]] @@ -3150,14 +3105,13 @@ checksum = "135b12329e5e3ce057a9f972339ea52bc954fe1e9358ef27f95e89716fbc5424" [[package]] name = "hyper" -version = "1.9.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6299f016b246a94207e63da54dbe807655bf9e00044f73ded42c3ac5305fbcca" +checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80" dependencies = [ - "atomic-waker", "bytes", "futures-channel", - "futures-core", + "futures-util", "h2", "http", "http-body", @@ -3172,14 +3126,15 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.27.9" +version = "0.27.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33ca68d021ef39cf6463ab54c1d0f5daf03377b70561305bb89a8f83aab66e0f" +checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" dependencies = [ "http", "hyper", "hyper-util", "rustls", + "rustls-pki-types", "tokio", "tokio-rustls", "tower-service", @@ -3216,13 +3171,14 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.20" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0" +checksum = "8d9b05277c7e8da2c93a568989bb6207bef0112e8d17df7a6eda4a3cf143bc5e" dependencies = [ "base64 0.22.1", "bytes", "futures-channel", + "futures-core", "futures-util", "http", "http-body", @@ -3231,7 +3187,7 @@ dependencies = [ "libc", "percent-encoding", "pin-project-lite", - "socket2 0.6.3", + "socket2 0.6.0", "system-configuration", "tokio", "tower-service", @@ -3284,9 +3240,9 @@ checksum = "35e6d558e6d4c7b82bc51d9c771e7a927862a161a7d87bf2b0541450e0e20915" [[package]] name = "iana-time-zone" -version = "0.1.65" +version = "0.1.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470" +checksum = "b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -3294,7 +3250,7 @@ dependencies = [ "js-sys", "log", "wasm-bindgen", - "windows-core 0.62.2", + "windows-core 0.61.2", ] [[package]] @@ -3308,9 +3264,9 @@ dependencies = [ [[package]] name = "ico" -version = "0.5.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e795dff5605e0f04bff85ca41b51a96b83e80b281e96231bcaaf1ac35103371" +checksum = "cc50b891e4acf8fe0e71ef88ec43ad82ee07b3810ad09de10f1d01f072ed4b98" dependencies = [ "byteorder", "png 0.17.16", @@ -3318,13 +3274,12 @@ dependencies = [ [[package]] name = "icu_collections" -version = "2.2.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2984d1cd16c883d7935b9e07e44071dca8d917fd52ecc02c04d5fa0b5a3f191c" +checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" dependencies = [ "displaydoc", "potential_utf", - "utf8_iter", "yoke", "zerofrom", "zerovec", @@ -3332,9 +3287,9 @@ dependencies = [ [[package]] name = "icu_locale_core" -version = "2.2.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92219b62b3e2b4d88ac5119f8904c10f8f61bf7e95b640d25ba3075e6cac2c29" +checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" dependencies = [ "displaydoc", "litemap", @@ -3345,10 +3300,11 @@ dependencies = [ [[package]] name = "icu_normalizer" -version = "2.2.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c56e5ee99d6e3d33bd91c5d85458b6005a22140021cc324cea84dd0e72cff3b4" +checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" dependencies = [ + "displaydoc", "icu_collections", "icu_normalizer_data", "icu_properties", @@ -3359,38 +3315,42 @@ dependencies = [ [[package]] name = "icu_normalizer_data" -version = "2.2.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da3be0ae77ea334f4da67c12f149704f19f81d1adf7c51cf482943e84a2bad38" +checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" [[package]] name = "icu_properties" -version = "2.2.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bee3b67d0ea5c2cca5003417989af8996f8604e34fb9ddf96208a033901e70de" +checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" dependencies = [ + "displaydoc", "icu_collections", "icu_locale_core", "icu_properties_data", "icu_provider", + "potential_utf", "zerotrie", "zerovec", ] [[package]] name = "icu_properties_data" -version = "2.2.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e2bbb201e0c04f7b4b3e14382af113e17ba4f63e2c9d2ee626b720cbce54a14" +checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" [[package]] name = "icu_provider" -version = "2.2.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "139c4cf31c8b5f33d7e199446eff9c1e02decfc2f0eec2c8d71f65befa45b421" +checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" dependencies = [ "displaydoc", "icu_locale_core", + "stable_deref_trait", + "tinystr", "writeable", "yoke", "zerofrom", @@ -3423,9 +3383,9 @@ dependencies = [ [[package]] name = "idna_adapter" -version = "1.2.2" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb68373c0d6620ef8105e855e7745e18b0d00d3bdb07fb532e434244cdb9a714" +checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" dependencies = [ "icu_normalizer", "icu_properties", @@ -3457,12 +3417,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.14.0" +version = "2.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" +checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" dependencies = [ "equivalent", - "hashbrown 0.17.1", + "hashbrown 0.16.1", "serde", "serde_core", ] @@ -3496,9 +3456,19 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.12.0" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d98f6fed1fde3f8c21bc40a1abb88dd75e67924f9cffc3ef95607bad8017f8e2" +checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" + +[[package]] +name = "iri-string" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2" +dependencies = [ + "memchr", + "serde", +] [[package]] name = "is-docker" @@ -3511,13 +3481,13 @@ dependencies = [ [[package]] name = "is-terminal" -version = "0.4.17" +version = "0.4.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3640c1c38b8e4e43584d8df18be5fc6b0aa314ce6ebf51b53313d4306cca8e46" +checksum = "e04d7f318608d35d4b61ddd75cbdaee86b023ebe2bd5a66ee0915f0bf93095a9" dependencies = [ "hermit-abi", "libc", - "windows-sys 0.61.2", + "windows-sys 0.59.0", ] [[package]] @@ -3574,9 +3544,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.18" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "javascriptcore-rs" @@ -3610,7 +3580,7 @@ dependencies = [ "cesu8", "cfg-if", "combine", - "jni-sys 0.3.1", + "jni-sys", "log", "thiserror 1.0.69", "walkdir", @@ -3619,31 +3589,9 @@ dependencies = [ [[package]] name = "jni-sys" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41a652e1f9b6e0275df1f15b32661cf0d4b78d4d87ddec5e0c3c20f097433258" -dependencies = [ - "jni-sys 0.4.1", -] - -[[package]] -name = "jni-sys" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6377a88cb3910bee9b0fa88d4f42e1d2da8e79915598f65fb0c7ee14c878af2" -dependencies = [ - "jni-sys-macros", -] - -[[package]] -name = "jni-sys-macros" -version = "0.4.1" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38c0b942f458fe50cdac086d2f946512305e5631e720728f2a61aabcd47a6264" -dependencies = [ - "quote", - "syn 2.0.117", -] +checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" [[package]] name = "jobserver" @@ -3657,12 +3605,10 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.98" +version = "0.3.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67df7112613f8bfd9150013a0314e196f4800d3201ae742489d999db2f979f08" +checksum = "b49715b7073f385ba4bc528e5747d02e66cb39c6146efb66b781f131f0fb399c" dependencies = [ - "cfg-if", - "futures-util", "once_cell", "wasm-bindgen", ] @@ -3691,27 +3637,26 @@ dependencies = [ [[package]] name = "jsonwebtoken" -version = "10.4.0" +version = "10.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eba32bfb4ffdeaca3e34431072faf01745c9b26d25504aa7a6cf5684334fc4fc" +checksum = "0529410abe238729a60b108898784df8984c87f6054c9c4fcacc47e4803c1ce1" dependencies = [ "aws-lc-rs", "base64 0.22.1", "ed25519-dalek", - "getrandom 0.2.17", + "getrandom 0.2.16", "hmac", "js-sys", "p256", "p384", "pem", - "rand 0.8.6", + "rand 0.8.5", "rsa", "serde", "serde_json", "sha2", "signature", "simple_asn1", - "zeroize", ] [[package]] @@ -3720,11 +3665,23 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b750dcadc39a09dbadd74e118f6dd6598df77fa01df0cfcdc52c28dece74528a" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.9.1", "serde", "unicode-segmentation", ] +[[package]] +name = "kuchikiki" +version = "0.8.8-speedreader" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02cb977175687f33fa4afa0c95c112b987ea1443e5a51c8f8ff27dc618270cc2" +dependencies = [ + "cssparser 0.29.6", + "html5ever 0.29.1", + "indexmap 2.13.0", + "selectors", +] + [[package]] name = "lazy_static" version = "1.5.0" @@ -3775,18 +3732,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.186" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" - -[[package]] -name = "libdbus-sys" -version = "0.2.7" +version = "0.2.182" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "328c4789d42200f1eeec05bd86c9c13c7f091d2ba9a6ea35acdf51f31bc0f043" -dependencies = [ - "pkg-config", -] +checksum = "6800badb6cb2082ffd7b6a67e6125bb39f18782f793520caee8cb8846be06112" [[package]] name = "libloading" @@ -3805,21 +3753,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55" dependencies = [ "cfg-if", - "windows-link 0.2.1", + "windows-link 0.2.0", ] [[package]] name = "libm" -version = "0.2.16" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" +checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" [[package]] name = "libredox" -version = "0.1.16" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e02f3bb43d335493c96bf3fd3a321600bf6bd07ed34bc64118e9293bdffea46c" +checksum = "391290121bad3d37fbddad76d8f5d1c1c314cfc646d143d7e07a3086ddff0ce3" dependencies = [ + "bitflags 2.9.1", "libc", ] @@ -3844,9 +3793,9 @@ dependencies = [ [[package]] name = "libz-sys" -version = "1.1.28" +version = "1.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc3a226e576f50782b3305c5ccf458698f92798987f551c6a02efe8276721e22" +checksum = "15d118bbf3771060e7311cc7bb0545b01d08a8b4a7de949198dec1fa0ca1c0f7" dependencies = [ "cc", "pkg-config", @@ -3884,9 +3833,9 @@ checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" [[package]] name = "litemap" -version = "0.8.2" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92daf443525c4cce67b150400bc2316076100ce0b3686209eb8cf3c31612e6f0" +checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" [[package]] name = "llama-cpp-2" @@ -3927,9 +3876,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.29" +version = "0.4.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" +checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" [[package]] name = "lru" @@ -3937,7 +3886,7 @@ version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" dependencies = [ - "hashbrown 0.15.5", + "hashbrown 0.15.4", ] [[package]] @@ -3973,24 +3922,38 @@ checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" [[package]] name = "markup5ever" -version = "0.35.0" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "311fe69c934650f8f19652b3946075f0fc41ad8757dbb68f1ca14e7900ecc1c3" +checksum = "c7a7213d12e1864c0f002f52c2923d4556935a43dec5e71355c2760e0f6e7a18" dependencies = [ "log", - "tendril 0.4.3", - "web_atoms 0.1.3", + "phf 0.11.3", + "phf_codegen 0.11.3", + "string_cache", + "string_cache_codegen", + "tendril", ] [[package]] name = "markup5ever" -version = "0.38.0" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8983d30f2915feeaaab2d6babdd6bc7e9ed1a00b66b5e6d74df19aa9c0e91862" +checksum = "311fe69c934650f8f19652b3946075f0fc41ad8757dbb68f1ca14e7900ecc1c3" dependencies = [ "log", - "tendril 0.5.0", - "web_atoms 0.2.4", + "tendril", + "web_atoms", +] + +[[package]] +name = "match_token" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88a9689d8d44bf9964484516275f5cd4c9b59457a6940c1d5d0ecbb94510a36b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", ] [[package]] @@ -4001,7 +3964,7 @@ checksum = "ac84fd3f360fcc43dc5f5d186f02a94192761a080e8bc58621ad4d12296a58cf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.104", ] [[package]] @@ -4013,6 +3976,12 @@ dependencies = [ "regex-automata", ] +[[package]] +name = "matches" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" + [[package]] name = "matchit" version = "0.7.3" @@ -4047,9 +4016,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.8.0" +version = "2.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" +checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" [[package]] name = "memmap2" @@ -4128,13 +4097,13 @@ dependencies = [ [[package]] name = "mio" -version = "1.2.0" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50b7e5b27aa02a74bac8c3f23f448f8d87ff11f92d3aac1a6ed369ee08cc56c1" +checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" dependencies = [ "libc", - "wasi", - "windows-sys 0.61.2", + "wasi 0.11.1+wasi-snapshot-preview1", + "windows-sys 0.59.0", ] [[package]] @@ -4149,44 +4118,24 @@ dependencies = [ [[package]] name = "muda" -version = "0.17.2" +version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c9fec5a4e89860383d778d10563a605838f8f0b2f9303868937e5ff32e86177" +checksum = "01c1738382f66ed56b3b9c8119e794a2e23148ac8ea214eda86622d4cb9d415a" dependencies = [ "crossbeam-channel", "dpi", "gtk", "keyboard-types", "libxdo", - "objc2", + "objc2 0.6.1", "objc2-app-kit", "objc2-core-foundation", - "objc2-foundation", + "objc2-foundation 0.3.1", "once_cell", "png 0.17.16", - "thiserror 2.0.18", - "windows-sys 0.60.2", -] - -[[package]] -name = "muda" -version = "0.19.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ae8844f63b5b118e334e205585b8c5c17b984121dbdb179d44aeb087ffad3cb" -dependencies = [ - "crossbeam-channel", - "dpi", - "gtk", - "keyboard-types", - "objc2", - "objc2-app-kit", - "objc2-core-foundation", - "objc2-foundation", - "once_cell", - "png 0.18.1", "serde", "thiserror 2.0.18", - "windows-sys 0.61.2", + "windows-sys 0.60.2", ] [[package]] @@ -4242,13 +4191,13 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b6e54a8b65764f71827a90ca1d56965ec0c67f069f996477bd493402a901d1f" dependencies = [ - "indexmap 2.14.0", + "indexmap 2.13.0", "itertools 0.13.0", "ndarray", "noisy_float", "num-integer", "num-traits", - "rand 0.8.6", + "rand 0.8.5", ] [[package]] @@ -4257,8 +4206,8 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" dependencies = [ - "bitflags 2.11.1", - "jni-sys 0.3.1", + "bitflags 2.9.1", + "jni-sys", "log", "ndk-sys", "num_enum", @@ -4278,7 +4227,7 @@ version = "0.6.0+11769913" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ee6cda3051665f1fb8d9e08fc35c96d5a244fb1be711a03b71118828afc9a873" dependencies = [ - "jni-sys 0.3.1", + "jni-sys", ] [[package]] @@ -4316,10 +4265,23 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.9.1", + "cfg-if", + "cfg_aliases", + "libc", +] + +[[package]] +name = "nix" +version = "0.30.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" +dependencies = [ + "bitflags 2.9.1", "cfg-if", "cfg_aliases", "libc", + "memoffset 0.9.1", ] [[package]] @@ -4337,7 +4299,7 @@ dependencies = [ "nodespace-nlp-engine", "portable-pty", "regex", - "reqwest 0.12.28", + "reqwest 0.12.22", "serde", "serde_json", "sha2", @@ -4427,7 +4389,7 @@ dependencies = [ "tokio", "tokio-stream", "tokio-test", - "tower 0.5.3", + "tower 0.5.2", "tower-http", "tracing", "tracing-subscriber", @@ -4443,6 +4405,7 @@ dependencies = [ "async-trait", "chrono", "image", + "nodespace-agent", "nodespace-core", "prost 0.13.5", "protoc-bin-vendored", @@ -4453,10 +4416,11 @@ dependencies = [ "tokio-stream", "tonic 0.12.3", "tonic-build", - "tower 0.5.3", + "tower 0.5.2", "tracing", "tracing-subscriber", - "tray-icon 0.21.3", + "tray-icon", + "uuid", ] [[package]] @@ -4502,11 +4466,17 @@ dependencies = [ "tracing", ] +[[package]] +name = "nodrop" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" + [[package]] name = "noisy_float" -version = "0.2.1" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c16843be85dd410c6a12251c4eca0dd1d3ee8c5725f746c4d5e0fdcec0a864b2" +checksum = "978fe6e6ebc0bf53de533cd456ca2d9de13de13856eda1518a285d7705a213af" dependencies = [ "num-traits", ] @@ -4523,9 +4493,9 @@ dependencies = [ [[package]] name = "ntapi" -version = "0.4.3" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3b335231dfd352ffb0f8017f3b6027a4917f7df785ea2143d8af2adc66980ae" +checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4" dependencies = [ "winapi", ] @@ -4536,7 +4506,7 @@ version = "0.50.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" dependencies = [ - "windows-sys 0.61.2", + "windows-sys 0.61.1", ] [[package]] @@ -4560,7 +4530,7 @@ dependencies = [ "num-integer", "num-iter", "num-traits", - "rand 0.8.6", + "rand 0.8.5", "smallvec", "zeroize", ] @@ -4576,9 +4546,9 @@ dependencies = [ [[package]] name = "num-conv" -version = "0.2.1" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6673768db2d862beb9b39a78fdcb1a69439615d5794a1be50caa9bc92c81967" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" [[package]] name = "num-integer" @@ -4622,9 +4592,9 @@ dependencies = [ [[package]] name = "num_enum" -version = "0.7.6" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d0bca838442ec211fa11de3a8b0e0e8f3a4522575b5c4c06ed722e005036f26" +checksum = "a973b4e44ce6cad84ce69d797acf9a044532e4184c4f267913d1b546a0727b7a" dependencies = [ "num_enum_derive", "rustversion", @@ -4632,14 +4602,14 @@ dependencies = [ [[package]] name = "num_enum_derive" -version = "0.7.6" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "680998035259dcfcafe653688bf2aa6d3e2dc05e98be6ab46afb089dc84f1df8" +checksum = "77e878c846a8abae00dd069496dbe8751b16ac1c3d6bd2a7283a938e8228f90d" dependencies = [ - "proc-macro-crate 3.5.0", + "proc-macro-crate 3.3.0", "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.104", ] [[package]] @@ -4651,11 +4621,27 @@ dependencies = [ "malloc_buf", ] +[[package]] +name = "objc-sys" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdb91bdd390c7ce1a8607f35f3ca7151b65afc0ff5ff3b34fa350f7d7c7e4310" + [[package]] name = "objc2" -version = "0.6.4" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46a785d4eeff09c14c487497c162e92766fbb3e4059a71840cecc03d9a50b804" +dependencies = [ + "objc-sys", + "objc2-encode", +] + +[[package]] +name = "objc2" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a12a8ed07aefc768292f076dc3ac8c48f3781c8f2d5851dd3d98950e8c5a89f" +checksum = "88c6597e14493ab2e44ce58f2fdecf095a51f12ca57bec060a11c57332520551" dependencies = [ "objc2-encode", "objc2-exception-helper", @@ -4663,92 +4649,77 @@ dependencies = [ [[package]] name = "objc2-app-kit" -version = "0.3.2" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d49e936b501e5c5bf01fda3a9452ff86dc3ea98ad5f283e1455153142d97518c" +checksum = "e6f29f568bec459b0ddff777cec4fe3fd8666d82d5a40ebd0ff7e66134f89bcc" dependencies = [ - "bitflags 2.11.1", - "block2", - "objc2", + "bitflags 2.9.1", + "block2 0.6.1", + "libc", + "objc2 0.6.1", + "objc2-cloud-kit", + "objc2-core-data", "objc2-core-foundation", - "objc2-foundation", + "objc2-core-graphics", + "objc2-core-image", + "objc2-foundation 0.3.1", + "objc2-quartz-core 0.3.1", ] [[package]] name = "objc2-cloud-kit" -version = "0.3.2" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73ad74d880bb43877038da939b7427bba67e9dd42004a18b809ba7d87cee241c" +checksum = "17614fdcd9b411e6ff1117dfb1d0150f908ba83a7df81b1f118005fe0a8ea15d" dependencies = [ - "bitflags 2.11.1", - "objc2", - "objc2-foundation", + "bitflags 2.9.1", + "objc2 0.6.1", + "objc2-foundation 0.3.1", ] [[package]] name = "objc2-core-data" -version = "0.3.2" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b402a653efbb5e82ce4df10683b6b28027616a2715e90009947d50b8dd298fa" +checksum = "291fbbf7d29287518e8686417cf7239c74700fd4b607623140a7d4a3c834329d" dependencies = [ - "objc2", - "objc2-foundation", + "bitflags 2.9.1", + "objc2 0.6.1", + "objc2-foundation 0.3.1", ] [[package]] name = "objc2-core-foundation" -version = "0.3.2" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" +checksum = "1c10c2894a6fed806ade6027bcd50662746363a9589d3ec9d9bef30a4e4bc166" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.9.1", "dispatch2", - "objc2", + "objc2 0.6.1", ] [[package]] name = "objc2-core-graphics" -version = "0.3.2" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e022c9d066895efa1345f8e33e584b9f958da2fd4cd116792e15e07e4720a807" +checksum = "989c6c68c13021b5c2d6b71456ebb0f9dc78d752e86a98da7c716f4f9470f5a4" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.9.1", "dispatch2", - "objc2", + "objc2 0.6.1", "objc2-core-foundation", "objc2-io-surface", ] [[package]] name = "objc2-core-image" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5d563b38d2b97209f8e861173de434bd0214cf020e3423a52624cd1d989f006" -dependencies = [ - "objc2", - "objc2-foundation", -] - -[[package]] -name = "objc2-core-location" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca347214e24bc973fc025fd0d36ebb179ff30536ed1f80252706db19ee452009" -dependencies = [ - "objc2", - "objc2-foundation", -] - -[[package]] -name = "objc2-core-text" -version = "0.3.2" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cde0dfb48d25d2b4862161a4d5fcc0e3c24367869ad306b0c9ec0073bfed92d" +checksum = "79b3dc0cc4386b6ccf21c157591b34a7f44c8e75b064f85502901ab2188c007e" dependencies = [ - "bitflags 2.11.1", - "objc2", - "objc2-core-foundation", - "objc2-core-graphics", + "objc2 0.6.1", + "objc2-foundation 0.3.1", ] [[package]] @@ -4768,22 +4739,34 @@ dependencies = [ [[package]] name = "objc2-foundation" -version = "0.3.2" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" +dependencies = [ + "bitflags 2.9.1", + "block2 0.5.1", + "libc", + "objc2 0.5.2", +] + +[[package]] +name = "objc2-foundation" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3e0adef53c21f888deb4fa59fc59f7eb17404926ee8a6f59f5df0fd7f9f3272" +checksum = "900831247d2fe1a09a683278e5384cfb8c80c79fe6b166f9d14bfdde0ea1b03c" dependencies = [ - "bitflags 2.11.1", - "block2", + "bitflags 2.9.1", + "block2 0.6.1", "libc", - "objc2", + "objc2 0.6.1", "objc2-core-foundation", ] [[package]] name = "objc2-io-kit" -version = "0.3.2" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33fafba39597d6dc1fb709123dfa8289d39406734be322956a69f0931c73bb15" +checksum = "71c1c64d6120e51cd86033f67176b1cb66780c2efe34dec55176f77befd93c0a" dependencies = [ "libc", "objc2-core-foundation", @@ -4791,84 +4774,87 @@ dependencies = [ [[package]] name = "objc2-io-surface" -version = "0.3.2" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "180788110936d59bab6bd83b6060ffdfffb3b922ba1396b312ae795e1de9d81d" +checksum = "7282e9ac92529fa3457ce90ebb15f4ecbc383e8338060960760fa2cf75420c3c" dependencies = [ - "bitflags 2.11.1", - "objc2", + "bitflags 2.9.1", + "objc2 0.6.1", "objc2-core-foundation", ] +[[package]] +name = "objc2-metal" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6" +dependencies = [ + "bitflags 2.9.1", + "block2 0.5.1", + "objc2 0.5.2", + "objc2-foundation 0.2.2", +] + [[package]] name = "objc2-quartz-core" -version = "0.3.2" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96c1358452b371bf9f104e21ec536d37a650eb10f7ee379fff67d2e08d537f1f" +checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a" dependencies = [ - "bitflags 2.11.1", - "objc2", - "objc2-core-foundation", - "objc2-foundation", + "bitflags 2.9.1", + "block2 0.5.1", + "objc2 0.5.2", + "objc2-foundation 0.2.2", + "objc2-metal", ] [[package]] -name = "objc2-ui-kit" -version = "0.3.2" +name = "objc2-quartz-core" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d87d638e33c06f577498cbcc50491496a3ed4246998a7fbba7ccb98b1e7eab22" +checksum = "90ffb6a0cd5f182dc964334388560b12a57f7b74b3e2dec5e2722aa2dfb2ccd5" dependencies = [ - "bitflags 2.11.1", - "block2", - "objc2", - "objc2-cloud-kit", - "objc2-core-data", - "objc2-core-foundation", - "objc2-core-graphics", - "objc2-core-image", - "objc2-core-location", - "objc2-core-text", - "objc2-foundation", - "objc2-quartz-core", - "objc2-user-notifications", + "bitflags 2.9.1", + "objc2 0.6.1", + "objc2-foundation 0.3.1", ] [[package]] -name = "objc2-user-notifications" -version = "0.3.2" +name = "objc2-ui-kit" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9df9128cbbfef73cda168416ccf7f837b62737d748333bfe9ab71c245d76613e" +checksum = "25b1312ad7bc8a0e92adae17aa10f90aae1fb618832f9b993b022b591027daed" dependencies = [ - "objc2", - "objc2-foundation", + "bitflags 2.9.1", + "objc2 0.6.1", + "objc2-core-foundation", + "objc2-foundation 0.3.1", ] [[package]] name = "objc2-web-kit" -version = "0.3.2" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2e5aaab980c433cf470df9d7af96a7b46a9d892d521a2cbbb2f8a4c16751e7f" +checksum = "91672909de8b1ce1c2252e95bbee8c1649c9ad9d14b9248b3d7b4c47903c47ad" dependencies = [ - "bitflags 2.11.1", - "block2", - "objc2", + "bitflags 2.9.1", + "block2 0.6.1", + "objc2 0.6.1", "objc2-app-kit", "objc2-core-foundation", - "objc2-foundation", + "objc2-foundation 0.3.1", ] [[package]] name = "object_store" -version = "0.13.2" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "622acbc9100d3c10e2ee15804b0caa40e55c933d5aa53814cd520805b7958a49" +checksum = "c2858065e55c148d294a9f3aae3b0fa9458edadb41a108397094566f4e3c0dfb" dependencies = [ "async-trait", "bytes", "chrono", - "futures-channel", - "futures-core", - "futures-util", + "futures", "http", "humantime", "itertools 0.14.0", @@ -4885,9 +4871,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.21.4" +version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" [[package]] name = "once_cell_polyfill" @@ -4903,9 +4889,9 @@ checksum = "d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e" [[package]] name = "open" -version = "5.3.5" +version = "5.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fbaa89d2ddc8473c78a3adf69eea8cffa28c483b8e02a971ef31527cd0fc92c" +checksum = "e2483562e62ea94312f3576a7aca397306df7990b8d89033e18766744377ef95" dependencies = [ "dunce", "is-wsl", @@ -4915,14 +4901,15 @@ dependencies = [ [[package]] name = "openssl" -version = "0.10.80" +version = "0.10.76" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a45fa2aa886c42762255da344f0a0d313e254066c46aad76f300c3d3da62d967" +checksum = "951c002c75e16ea2c65b8c7e4d3d51d5530d8dfa7d060b4776828c88cfb18ecf" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.9.1", "cfg-if", "foreign-types 0.3.2", "libc", + "once_cell", "openssl-macros", "openssl-sys", ] @@ -4935,7 +4922,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.104", ] [[package]] @@ -4946,9 +4933,9 @@ checksum = "7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe" [[package]] name = "openssl-sys" -version = "0.9.116" +version = "0.9.112" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f28a22dc7140cda5f096e5e7724a6962ca81a7f8bfd2979f9b18c11af56318c4" +checksum = "57d55af3b3e226502be1526dfdba67ab0e9c96fc293004e79576b2b9edb0dbdb" dependencies = [ "cc", "libc", @@ -5033,9 +5020,9 @@ dependencies = [ [[package]] name = "papaya" -version = "0.2.4" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "997ee03cd38c01469a7046643714f0ad28880bcb9e6679ff0666e24817ca19b7" +checksum = "f92dd0b07c53a0a0c764db2ace8c541dc47320dad97c2200c2a637ab9dd2328f" dependencies = [ "equivalent", "seize", @@ -5067,7 +5054,7 @@ dependencies = [ "libc", "redox_syscall", "smallvec", - "windows-link 0.2.1", + "windows-link 0.2.0", ] [[package]] @@ -5149,7 +5136,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772" dependencies = [ "fixedbitset", - "indexmap 2.14.0", + "indexmap 2.13.0", +] + +[[package]] +name = "phf" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12" +dependencies = [ + "phf_shared 0.8.0", +] + +[[package]] +name = "phf" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259" +dependencies = [ + "phf_macros 0.10.0", + "phf_shared 0.10.0", + "proc-macro-hack", ] [[package]] @@ -5173,6 +5180,16 @@ dependencies = [ "serde", ] +[[package]] +name = "phf_codegen" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815" +dependencies = [ + "phf_generator 0.8.0", + "phf_shared 0.8.0", +] + [[package]] name = "phf_codegen" version = "0.11.3" @@ -5184,13 +5201,23 @@ dependencies = [ ] [[package]] -name = "phf_codegen" -version = "0.13.1" +name = "phf_generator" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49aa7f9d80421bca176ca8dbfebe668cc7a2684708594ec9f3c0db0805d5d6e1" +checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526" dependencies = [ - "phf_generator 0.13.1", - "phf_shared 0.13.1", + "phf_shared 0.8.0", + "rand 0.7.3", +] + +[[package]] +name = "phf_generator" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6" +dependencies = [ + "phf_shared 0.10.0", + "rand 0.8.5", ] [[package]] @@ -5200,7 +5227,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" dependencies = [ "phf_shared 0.11.3", - "rand 0.8.6", + "rand 0.8.5", ] [[package]] @@ -5213,6 +5240,20 @@ dependencies = [ "phf_shared 0.13.1", ] +[[package]] +name = "phf_macros" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58fdf3184dd560f160dd73922bea2d5cd6e8f064bf4b13110abd81b03697b4e0" +dependencies = [ + "phf_generator 0.10.0", + "phf_shared 0.10.0", + "proc-macro-hack", + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "phf_macros" version = "0.11.3" @@ -5223,7 +5264,7 @@ dependencies = [ "phf_shared 0.11.3", "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.104", ] [[package]] @@ -5236,17 +5277,35 @@ dependencies = [ "phf_shared 0.13.1", "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.104", "unicase", ] +[[package]] +name = "phf_shared" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7" +dependencies = [ + "siphasher 0.3.11", +] + +[[package]] +name = "phf_shared" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" +dependencies = [ + "siphasher 0.3.11", +] + [[package]] name = "phf_shared" version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" dependencies = [ - "siphasher", + "siphasher 1.0.1", ] [[package]] @@ -5255,35 +5314,35 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266" dependencies = [ - "siphasher", + "siphasher 1.0.1", "unicase", ] [[package]] name = "pin-project" -version = "1.1.13" +version = "1.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2466b2336ed02bcdca6b294417127b90ec92038d1d5c4fbeac971a922e0e0924" +checksum = "f1749c7ed4bcaf4c3d0a3efc28538844fb29bcdd7d2b67b2be7e20ba861ff517" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.13" +version = "1.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c96395f0a926bc13b1c17622aaddda1ecb55d49c8f1bf9777e4d877800a43f8b" +checksum = "d9b20ed30f105399776b9c883e68e536ef602a16ae6f596d2c473591d6ad64c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.104", ] [[package]] name = "pin-project-lite" -version = "0.2.17" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" [[package]] name = "pin-utils" @@ -5293,9 +5352,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "piper" -version = "0.2.5" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c835479a4443ded371d6c535cbfd8d31ad92c5d23ae9770a61bc155e4992a3c1" +checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066" dependencies = [ "atomic-waker", "fastrand", @@ -5325,19 +5384,19 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.33" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19f132c84eca552bf34cab8ec81f1c1dcc229b811638f9d283dceabe58c5569e" +checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" [[package]] name = "plist" -version = "1.9.0" +version = "1.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "092791278e026273c1b65bbdcfbba3a300f2994c896bd01ab01da613c29c46f1" +checksum = "3af6b589e163c5a788fab00ce0c0366f6efbb9959c2f9874b224936af7fce7e1" dependencies = [ "base64 0.22.1", - "indexmap 2.14.0", - "quick-xml", + "indexmap 2.13.0", + "quick-xml 0.38.1", "serde", "time", ] @@ -5389,7 +5448,7 @@ version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "60769b8b31b2a9f263dae2776c37b1b28ae246943cf719eb6946a1db05128a61" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.9.1", "crc32fast", "fdeflate", "flate2", @@ -5398,16 +5457,16 @@ dependencies = [ [[package]] name = "polling" -version = "3.11.0" +version = "3.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d0e4f59085d47d8241c88ead0f274e8a0cb551f3625263c05eb8dd897c34218" +checksum = "b5bd19146350fe804f7cb2669c851c03d69da628803dab0d98018142aaa5d829" dependencies = [ "cfg-if", "concurrent-queue", "hermit-abi", "pin-project-lite", "rustix", - "windows-sys 0.61.2", + "windows-sys 0.60.2", ] [[package]] @@ -5418,9 +5477,9 @@ checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49" [[package]] name = "portable-atomic-util" -version = "0.2.7" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2a106d1259c23fac8e543272398ae0e3c0b8d33c88ed73d0cc71b0f1d902618" +checksum = "7a9db96d7fa8782dd8c15ce32ffe8680bbd1e978a43bf51a34d39483540495f5" dependencies = [ "portable-atomic", ] @@ -5448,9 +5507,9 @@ dependencies = [ [[package]] name = "potential_utf" -version = "0.1.5" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0103b1cef7ec0cf76490e969665504990193874ea05c85ff9bab8b911d0a0564" +checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585" dependencies = [ "zerovec", ] @@ -5478,12 +5537,12 @@ checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" [[package]] name = "prettyplease" -version = "0.2.37" +version = "0.2.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" +checksum = "ff24dfcda44452b9816fff4cd4227e1bb73ff5a2f1bc1105aa92fb8565ce44d2" dependencies = [ "proc-macro2", - "syn 2.0.117", + "syn 2.0.104", ] [[package]] @@ -5507,21 +5566,20 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "2.0.2" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b00f26d3400549137f92511a46ac1cd8ce37cb5598a96d382381458b992a5d24" +checksum = "7e8366a6159044a37876a2b9817124296703c586a5c92e2c53751fa06d8d43e8" dependencies = [ - "toml_datetime 0.6.3", - "toml_edit 0.20.2", + "toml_edit 0.20.7", ] [[package]] name = "proc-macro-crate" -version = "3.5.0" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" +checksum = "edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35" dependencies = [ - "toml_edit 0.25.11+spec-1.1.0", + "toml_edit 0.22.27", ] [[package]] @@ -5548,11 +5606,17 @@ dependencies = [ "version_check", ] +[[package]] +name = "proc-macro-hack" +version = "0.5.20+deprecated" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" + [[package]] name = "proc-macro2" -version = "1.0.106" +version = "1.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" +checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" dependencies = [ "unicode-ident", ] @@ -5593,7 +5657,7 @@ dependencies = [ "prost 0.13.5", "prost-types 0.13.5", "regex", - "syn 2.0.117", + "syn 2.0.104", "tempfile", ] @@ -5607,7 +5671,7 @@ dependencies = [ "itertools 0.14.0", "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.104", ] [[package]] @@ -5620,7 +5684,7 @@ dependencies = [ "itertools 0.14.0", "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.104", ] [[package]] @@ -5737,7 +5801,7 @@ version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "679341d22c78c6c649893cbd6c3278dcbe9fc4faa62fea3a9296ae2b50c14625" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.9.1", "getopts", "memchr", "pulldown-cmark-escape", @@ -5758,18 +5822,27 @@ checksum = "e0c5ccf5294c6ccd63a74f1565028353830a9c2f5eb0c682c355c471726a6e3f" [[package]] name = "quick-xml" -version = "0.39.4" +version = "0.37.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "331e97a1af0bf59823e6eadffe373d7b27f485be8748f71471c662c1f269b7fb" +dependencies = [ + "memchr", +] + +[[package]] +name = "quick-xml" +version = "0.38.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdcc8dd4e2f670d309a5f0e83fe36dfdc05af317008fea29144da1a2ac858e5e" +checksum = "9845d9dccf565065824e69f9f235fafba1587031eda353c1f1561cd6a6be78f4" dependencies = [ "memchr", ] [[package]] name = "quick_cache" -version = "0.6.22" +version = "0.6.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1c821816e9b928e20e92ed59bb3ac4aab321d16ca2316871c9fe7ca739cd477" +checksum = "530e84778a55de0f52645a51d4e3b9554978acd6a1e7cd50b6a6784692b3029e" dependencies = [ "ahash 0.8.12", "equivalent", @@ -5779,9 +5852,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.45" +version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" +checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" dependencies = [ "proc-macro2", ] @@ -5817,9 +5890,23 @@ dependencies = [ [[package]] name = "rand" -version = "0.8.6" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +dependencies = [ + "getrandom 0.1.16", + "libc", + "rand_chacha 0.2.2", + "rand_core 0.5.1", + "rand_hc", + "rand_pcg", +] + +[[package]] +name = "rand" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ca0ecfa931c29007047d1bc58e623ab12e5590e8c7cc53200d5202b69266d8a" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", "rand_chacha 0.3.1", @@ -5828,12 +5915,22 @@ dependencies = [ [[package]] name = "rand" -version = "0.9.4" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44c5af06bb1b7d3216d91932aed5265164bf384dc89cd6ba05cf59a35f5f76ea" +checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" dependencies = [ "rand_chacha 0.9.0", - "rand_core 0.9.5", + "rand_core 0.9.3", +] + +[[package]] +name = "rand_chacha" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +dependencies = [ + "ppv-lite86", + "rand_core 0.5.1", ] [[package]] @@ -5853,7 +5950,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" dependencies = [ "ppv-lite86", - "rand_core 0.9.5", + "rand_core 0.9.3", +] + +[[package]] +name = "rand_core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +dependencies = [ + "getrandom 0.1.16", ] [[package]] @@ -5862,18 +5968,36 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.17", + "getrandom 0.2.16", ] [[package]] name = "rand_core" -version = "0.9.5" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" +checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" dependencies = [ "getrandom 0.3.4", ] +[[package]] +name = "rand_hc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "rand_pcg" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429" +dependencies = [ + "rand_core 0.5.1", +] + [[package]] name = "raw-window-handle" version = "0.6.2" @@ -5888,9 +6012,9 @@ checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" [[package]] name = "rayon" -version = "1.12.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb39b166781f92d482534ef4b4b1b2568f42613b53e5b6c160e24cfbfa30926d" +checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" dependencies = [ "either", "rayon-core", @@ -5914,11 +6038,11 @@ checksum = "bbc4a4ea2a66a41a1152c4b3d86e8954dc087bdf33af35446e6e176db4e73c8c" [[package]] name = "redox_syscall" -version = "0.5.18" +version = "0.5.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" +checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.9.1", ] [[package]] @@ -5927,7 +6051,7 @@ version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ - "getrandom 0.2.17", + "getrandom 0.2.16", "libredox", "thiserror 1.0.69", ] @@ -5938,29 +6062,29 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" dependencies = [ - "getrandom 0.2.17", + "getrandom 0.2.16", "libredox", "thiserror 2.0.18", ] [[package]] name = "ref-cast" -version = "1.0.25" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d" +checksum = "4a0ae411dbe946a674d89546582cea4ba2bb8defac896622d6496f14c23ba5cf" dependencies = [ "ref-cast-impl", ] [[package]] name = "ref-cast-impl" -version = "1.0.25" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" +checksum = "1165225c21bff1f3bbce98f5a1f889949bc902d3575308cc7b0de30b4f6d27c7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.104", ] [[package]] @@ -5988,9 +6112,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.10" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "relative-path" @@ -6009,9 +6133,9 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.12.28" +version = "0.12.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147" +checksum = "cbc931937e6ca3a06e3b6c0aa7841849b160a90351d6ab467a8b9b9959767531" dependencies = [ "base64 0.22.1", "bytes", @@ -6040,7 +6164,7 @@ dependencies = [ "tokio", "tokio-native-tls", "tokio-util", - "tower 0.5.3", + "tower 0.5.2", "tower-http", "tower-service", "url", @@ -6052,9 +6176,9 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.13.3" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62e0021ea2c22aed41653bc7e1419abb2c97e038ff2c33d0e1309e49a97deec0" +checksum = "ab3f43e3283ab1488b624b44b0e988d0acea0b3214e694730a055cb6b2efa801" dependencies = [ "base64 0.22.1", "bytes", @@ -6075,7 +6199,7 @@ dependencies = [ "sync_wrapper", "tokio", "tokio-util", - "tower 0.5.3", + "tower 0.5.2", "tower-http", "tower-service", "url", @@ -6087,9 +6211,9 @@ dependencies = [ [[package]] name = "revision" -version = "0.17.1" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b66f44139d1fe8e1b6c21bf1a855f12df38517aab94e21cea2a077e9753f216" +checksum = "11c3c8ec8b2be254beb5f8acdd80cdd57b7b5d40988c2ec3d0b7cdb6f7c2829b" dependencies = [ "bytes", "chrono", @@ -6103,13 +6227,13 @@ dependencies = [ [[package]] name = "revision-derive" -version = "0.17.1" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "696cbf6f9d0bdeb7d75ef3a037c8295ea9fb665c89c6b70c23022f5918713353" +checksum = "76be63634a8b1809e663bc0b975d78f6883c0fadbcce9c52e19b9e421f423357" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.104", ] [[package]] @@ -6124,26 +6248,27 @@ dependencies = [ [[package]] name = "rfd" -version = "0.16.0" +version = "0.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a15ad77d9e70a92437d8f74c35d99b4e4691128df018833e99f90bcd36152672" +checksum = "ef2bee61e6cffa4635c72d7d81a84294e28f0930db0ddcb0f66d10244674ebed" dependencies = [ - "block2", + "ashpd", + "block2 0.6.1", "dispatch2", "glib-sys", "gobject-sys", "gtk-sys", "js-sys", "log", - "objc2", + "objc2 0.6.1", "objc2-app-kit", "objc2-core-foundation", - "objc2-foundation", + "objc2-foundation 0.3.1", "raw-window-handle", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "windows-sys 0.60.2", + "windows-sys 0.59.0", ] [[package]] @@ -6154,7 +6279,7 @@ checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" dependencies = [ "cc", "cfg-if", - "getrandom 0.2.17", + "getrandom 0.2.16", "libc", "untrusted 0.9.0", "windows-sys 0.52.0", @@ -6191,28 +6316,31 @@ dependencies = [ [[package]] name = "rmp" -version = "0.8.15" +version = "0.8.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ba8be72d372b2c9b35542551678538b562e7cf86c3315773cae48dfbfe7790c" +checksum = "228ed7c16fa39782c3b3468e974aec2795e9089153cd08ee2e9aefb3613334c4" dependencies = [ + "byteorder", "num-traits", + "paste", ] [[package]] name = "rmp-serde" -version = "1.3.1" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72f81bee8c8ef9b577d1681a70ebbc962c232461e397b22c208c43c04b67a155" +checksum = "52e599a477cf9840e92f2cde9a7189e67b42c57532749bf90aea6ec10facd4db" dependencies = [ + "byteorder", "rmp", "serde", ] [[package]] name = "roaring" -version = "0.11.4" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dedc5658c6ecb3bdb5ef5f3295bb9253f42dcf3fd1402c03f6b1f7659c3c4a9" +checksum = "8ba9ce64a8f45d7fc86358410bb1a82e8c987504c0d4900e9141d69a9f26c885" dependencies = [ "bytemuck", "byteorder", @@ -6325,13 +6453,13 @@ checksum = "9c845311f0ff7951c5506121a9ad75aec44d083c31583b2ea5a30bcb0b0abba0" dependencies = [ "cfg-if", "glob", - "proc-macro-crate 3.5.0", + "proc-macro-crate 3.3.0", "proc-macro2", "quote", "regex", "relative-path", "rustc_version", - "syn 2.0.117", + "syn 2.0.104", "unicode-ident", ] @@ -6357,26 +6485,25 @@ dependencies = [ [[package]] name = "rust_decimal" -version = "1.42.0" +version = "1.40.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c5108e3d4d903e21aac27f12ba5377b6b34f9f44b325e4894c7924169d06995" +checksum = "61f703d19852dbf87cbc513643fa81428361eb6940f1ac14fd58155d295a3eb0" dependencies = [ "arrayvec", "borsh", "bytes", "num-traits", - "rand 0.8.6", + "rand 0.8.5", "rkyv", "serde", "serde_json", - "wasm-bindgen", ] [[package]] name = "rustc-hash" -version = "2.1.2" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94300abf3f1ae2e2b8ffb7b58043de3d399c73fa6f4b73826402a5c457614dbe" +checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" [[package]] name = "rustc_version" @@ -6393,18 +6520,18 @@ version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.9.1", "errno", "libc", "linux-raw-sys", - "windows-sys 0.61.2", + "windows-sys 0.61.1", ] [[package]] name = "rustls" -version = "0.23.40" +version = "0.23.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef86cd5876211988985292b91c96a8f2d298df24e75989a43a3c73f2d4d8168b" +checksum = "758025cb5fccfd3bc2fd74708fd4682be41d99e5dff73c377c0646c6012c73a4" dependencies = [ "once_cell", "rustls-pki-types", @@ -6415,9 +6542,9 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.14.1" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30a7197ae7eb376e574fe940d068c30fe0462554a3ddbe4eca7838e049c937a9" +checksum = "be040f8b0a225e40375822a563fa9524378b9d63112f53e19ffff34df5d33fdd" dependencies = [ "web-time", "zeroize", @@ -6425,9 +6552,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.103.13" +version = "0.103.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61c429a8649f110dddef65e2a5ad240f747e85f7758a6bccc7e5777bd33f756e" +checksum = "df33b2b81ac578cabaf06b89b0631153a3f416b0a886e8a7a1707fb51abbd1ef" dependencies = [ "ring", "rustls-pki-types", @@ -6436,15 +6563,15 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.22" +version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" +checksum = "8a0d197bd2c9dc6e53b84da9556a69ba4cdfab8619eb41a8bd1cc2027a0f6b1d" [[package]] name = "ryu" -version = "1.0.23" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" +checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" [[package]] name = "salsa20" @@ -6479,7 +6606,7 @@ version = "0.1.29" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91c1b7e4904c873ef0710c1f407dde2e6287de2bebc1bbbf7d430bb7cbffd939" dependencies = [ - "windows-sys 0.61.2", + "windows-sys 0.61.1", ] [[package]] @@ -6511,9 +6638,9 @@ dependencies = [ [[package]] name = "schemars" -version = "1.2.1" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2b42f36aa1cd011945615b92222f6bf73c599a102a300334cd7f8dbeec726cc" +checksum = "82d20c4491bc164fa2f6c5d44565947a52ad80b9505d8e36f8d54c27c739fcd0" dependencies = [ "dyn-clone", "ref-cast", @@ -6530,9 +6657,15 @@ dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn 2.0.117", + "syn 2.0.104", ] +[[package]] +name = "scoped-tls" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" + [[package]] name = "scopeguard" version = "1.2.0" @@ -6579,11 +6712,11 @@ dependencies = [ [[package]] name = "security-framework" -version = "3.7.0" +version = "3.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7f4bc775c73d9a02cde8bf7b2ec4c9d12743edf609006c7facc23998404cd1d" +checksum = "d17b898a6d6948c3a8ee4372c17cb384f90d2e6e912ef00895b14fd7ab54ec38" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.9.1", "core-foundation 0.10.1", "core-foundation-sys", "libc", @@ -6607,33 +6740,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b55fb86dfd3a2f5f76ea78310a88f96c4ea21a3031f8d212443d56123fd0521" dependencies = [ "libc", - "windows-sys 0.61.2", + "windows-sys 0.61.1", ] [[package]] name = "selectors" -version = "0.36.1" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5d9c0c92a92d33f08817311cf3f2c29a3538a8240e94a6a3c622ce652d7e00c" +checksum = "0c37578180969d00692904465fb7f6b3d50b9a2b952b87c23d0e2e5cb5013416" dependencies = [ - "bitflags 2.11.1", - "cssparser 0.36.0", + "bitflags 1.3.2", + "cssparser 0.29.6", "derive_more", + "fxhash", "log", - "new_debug_unreachable", - "phf 0.13.1", - "phf_codegen 0.13.1", + "phf 0.8.0", + "phf_codegen 0.8.0", "precomputed-hash", - "rustc-hash", "servo_arc", "smallvec", ] [[package]] name = "semver" -version = "1.0.28" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" +checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" dependencies = [ "serde", "serde_core", @@ -6651,13 +6783,12 @@ dependencies = [ [[package]] name = "serde-untagged" -version = "0.1.9" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9faf48a4a2d2693be24c6289dbe26552776eb7737074e6722891fadbe6c5058" +checksum = "299d9c19d7d466db4ab10addd5703e4c615dec2a5a16dbbafe191045e87ee66e" dependencies = [ "erased-serde", "serde", - "serde_core", "typeid", ] @@ -6678,7 +6809,7 @@ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.104", ] [[package]] @@ -6689,7 +6820,7 @@ checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.104", ] [[package]] @@ -6724,7 +6855,7 @@ checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.104", ] [[package]] @@ -6738,11 +6869,11 @@ dependencies = [ [[package]] name = "serde_spanned" -version = "1.1.1" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6662b5879511e06e8999a8a235d848113e942c9124f211511b16466ee2995f26" +checksum = "40734c41988f7306bb04f0ecf60ec0f3f1caa34290e4e8ea471dcd3346483b83" dependencies = [ - "serde_core", + "serde", ] [[package]] @@ -6759,19 +6890,19 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.20.0" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e72c1c2cb7b223fafb600a619537a871c2818583d619401b785e7c0b746ccde2" +checksum = "f2c45cd61fefa9db6f254525d46e392b852e0e61d9a1fd36e5bd183450a556d5" dependencies = [ "base64 0.22.1", - "bs58", "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.14.0", + "indexmap 2.13.0", "schemars 0.9.0", - "schemars 1.2.1", - "serde_core", + "schemars 1.0.4", + "serde", + "serde_derive", "serde_json", "serde_with_macros", "time", @@ -6779,14 +6910,14 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.20.0" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b90c488738ecb4fb0262f41f43bc40efc5868d9fb744319ddf5f5317f417bfac" +checksum = "de90945e6565ce0d9a25098082ed4ee4002e047cb59892c318d66821e14bb30f" dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.104", ] [[package]] @@ -6833,9 +6964,9 @@ dependencies = [ [[package]] name = "serial_test" -version = "3.4.0" +version = "3.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "911bd979bf1070a3f3aa7b691a3b3e9968f339ceeec89e08c280a8a22207a32f" +checksum = "0d0b343e184fc3b7bb44dff0705fffcf4b3756ba6aff420dddd8b24ca145e555" dependencies = [ "futures-executor", "futures-util", @@ -6848,20 +6979,20 @@ dependencies = [ [[package]] name = "serial_test_derive" -version = "3.4.0" +version = "3.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a7d91949b85b0d2fb687445e448b40d322b6b3e4af6b44a29b21d9a5f33e6d9" +checksum = "6f50427f258fb77356e4cd4aa0e87e2bd2c66dbcee41dc405282cae2bfc26c83" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.104", ] [[package]] name = "serialize-to-javascript" -version = "0.1.2" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04f3666a07a197cdb77cdf306c32be9b7f598d7060d50cfd4d5aa04bfd92f6c5" +checksum = "c9823f2d3b6a81d98228151fdeaf848206a7855a7a042bbf9bf870449a66cafb" dependencies = [ "serde", "serde_json", @@ -6870,21 +7001,22 @@ dependencies = [ [[package]] name = "serialize-to-javascript-impl" -version = "0.1.2" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "772ee033c0916d670af7860b6e1ef7d658a4629a6d0b4c8c3e67f09b3765b75d" +checksum = "74064874e9f6a15f04c1f3cb627902d0e6b410abbf36668afa873c61889f1763" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 1.0.109", ] [[package]] name = "servo_arc" -version = "0.4.3" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "170fb83ab34de17dc69aa7c67482b22218ddb85da56546f9bd6b929e32a05930" +checksum = "d52aa42f8fdf0fed91e5ce7f23d8138441002fa31dca008acf47e6fd4721f741" dependencies = [ + "nodrop", "stable_deref_trait", ] @@ -6895,7 +7027,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" dependencies = [ "cfg-if", - "cpufeatures 0.2.17", + "cpufeatures", "digest", ] @@ -6906,7 +7038,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ "cfg-if", - "cpufeatures 0.2.17", + "cpufeatures", "digest", ] @@ -6949,11 +7081,10 @@ checksum = "d7f45b8998ced5134fb1d75732c77842a3e888f19c1ff98481822e8fbfbf930b" [[package]] name = "signal-hook-registry" -version = "1.4.8" +version = "1.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b" +checksum = "b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b" dependencies = [ - "errno", "libc", ] @@ -6969,9 +7100,9 @@ dependencies = [ [[package]] name = "simd-adler32" -version = "0.3.9" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "703d5c7ef118737c72f1af64ad2f6f8c5e1921f818cdcb97b8fe6fc69bf66214" +checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" [[package]] name = "simdutf8" @@ -6981,9 +7112,9 @@ checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" [[package]] name = "simple_asn1" -version = "0.6.4" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d585997b0ac10be3c5ee635f1bab02d512760d14b7c468801ac8a01d9ae5f1d" +checksum = "297f631f50729c8c99b84667867963997ec0b50f32b2a7dbcab828ef0541e8bb" dependencies = [ "num-bigint", "num-traits", @@ -6993,15 +7124,21 @@ dependencies = [ [[package]] name = "siphasher" -version = "1.0.3" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ee5873ec9cce0195efcb7a4e9507a04cd49aec9c83d0389df45b1ef7ba2e649" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + +[[package]] +name = "siphasher" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" [[package]] name = "slab" -version = "0.4.12" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" +checksum = "04dc19736151f35336d325007ac991178d504a119863a2fcb3758cdb5e52c50d" [[package]] name = "smallvec" @@ -7021,34 +7158,34 @@ dependencies = [ [[package]] name = "socket2" -version = "0.6.3" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e" +checksum = "233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807" dependencies = [ "libc", - "windows-sys 0.61.2", + "windows-sys 0.59.0", ] [[package]] name = "softbuffer" -version = "0.4.8" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aac18da81ebbf05109ab275b157c22a653bb3c12cf884450179942f81bcbf6c3" +checksum = "18051cdd562e792cad055119e0cdb2cfc137e44e3987532e0f9659a77931bb08" dependencies = [ "bytemuck", + "cfg_aliases", + "core-graphics 0.24.0", + "foreign-types 0.5.0", "js-sys", - "ndk", - "objc2", - "objc2-core-foundation", - "objc2-core-graphics", - "objc2-foundation", - "objc2-quartz-core", + "log", + "objc2 0.5.2", + "objc2-foundation 0.2.2", + "objc2-quartz-core 0.2.2", "raw-window-handle", "redox_syscall", - "tracing", "wasm-bindgen", "web-sys", - "windows-sys 0.61.2", + "windows-sys 0.59.0", ] [[package]] @@ -7079,11 +7216,11 @@ dependencies = [ [[package]] name = "spade" -version = "2.15.1" +version = "2.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9699399fd9349b00b184f5635b074f9ec93afffef30c853f8c875b32c0f8c7fa" +checksum = "a14e31a007e9f85c32784b04f89e6e194bb252a4d41b4a8ccd9e77245d901c8c" dependencies = [ - "hashbrown 0.16.1", + "hashbrown 0.15.4", "num-traits", "robust", "smallvec", @@ -7110,9 +7247,15 @@ dependencies = [ [[package]] name = "stable_deref_trait" -version = "1.2.1" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "static_assertions" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "storekey" @@ -7133,7 +7276,7 @@ checksum = "6079d53242246522ec982de613c5c952cc7b1380ef2f8622fcdab9bfe73c0098" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.104", ] [[package]] @@ -7149,18 +7292,6 @@ dependencies = [ "serde", ] -[[package]] -name = "string_cache" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a18596f8c785a729f2819c0f6a7eae6ebeebdfffbfe4214ae6b087f690e31901" -dependencies = [ - "new_debug_unreachable", - "parking_lot", - "phf_shared 0.13.1", - "precomputed-hash", -] - [[package]] name = "string_cache_codegen" version = "0.5.4" @@ -7173,18 +7304,6 @@ dependencies = [ "quote", ] -[[package]] -name = "string_cache_codegen" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "585635e46db231059f76c5849798146164652513eb9e8ab2685939dd90f29b69" -dependencies = [ - "phf_generator 0.13.1", - "phf_shared 0.13.1", - "proc-macro2", - "quote", -] - [[package]] name = "strsim" version = "0.11.1" @@ -7199,9 +7318,9 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "surrealdb" -version = "3.0.5" +version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "504a96b55e86ef8653a03b6b97e771f49c954e26bcc0308160b0134d94f334fd" +checksum = "b19f5232640cfe8b1423b49582f36bc4c867dac9e85ad87f9a81b5fd1633621f" dependencies = [ "anyhow", "async-channel", @@ -7209,10 +7328,10 @@ dependencies = [ "chrono", "futures", "getrandom 0.3.4", - "indexmap 2.14.0", + "indexmap 2.13.0", "js-sys", "path-clean", - "reqwest 0.13.3", + "reqwest 0.13.2", "ring", "rustls-pki-types", "semver", @@ -7235,9 +7354,9 @@ dependencies = [ [[package]] name = "surrealdb-core" -version = "3.0.5" +version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3e6a7f248c958fd5000c4fab5759503663bf93c622be10a6d7bf7d2d676b8fc" +checksum = "089a8dc4b88097a84ca3663ad0c152ae53d2e23ffc8b636dac7f65aa86ba3766" dependencies = [ "addr", "affinitypool", @@ -7286,7 +7405,7 @@ dependencies = [ "pin-project-lite", "quick_cache", "radix_trie", - "rand 0.8.6", + "rand 0.8.5", "rayon", "reblessive", "regex", @@ -7325,9 +7444,9 @@ dependencies = [ [[package]] name = "surrealdb-librocksdb-sys" -version = "0.18.3+11.0.0-4" +version = "0.17.3+10.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25b82a18c7fa4b57206784a1a31e7b942ae1d3e24493e0c733019a409b2b4bea" +checksum = "db194f1cf601bb6f2d0f4cbf0931bc3e5a602bac41ef2e9a87eccdfb28b7fed2" dependencies = [ "bindgen", "bzip2-sys", @@ -7357,16 +7476,16 @@ dependencies = [ "semver", "serde", "serde_json", - "tonic 0.14.6", + "tonic 0.14.5", "tonic-prost", "uuid", ] [[package]] name = "surrealdb-rocksdb" -version = "0.24.0-surreal.5" +version = "0.24.0-surreal.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02e8c3a004982458af159bcbf369e41663d538cd4a291a49c0d4a2fb373cbb7e" +checksum = "057727f56d48825ddbe45e4e7401cda6e99d864fbc004e7474b4689a5e72c86d" dependencies = [ "libc", "surrealdb-librocksdb-sys", @@ -7374,9 +7493,9 @@ dependencies = [ [[package]] name = "surrealdb-types" -version = "3.0.5" +version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c79e71d035367b933cf528c09b7ed186bc17dea58c66a1bca84d22f9abf167db" +checksum = "69a8277f923a20960c82cd7d133524fb2c5d0a73d5f52abd74f28d8d83a8b6fa" dependencies = [ "anyhow", "bytes", @@ -7386,7 +7505,7 @@ dependencies = [ "hex", "http", "papaya", - "rand 0.8.6", + "rand 0.8.5", "regex", "rstest", "rust_decimal", @@ -7400,13 +7519,13 @@ dependencies = [ [[package]] name = "surrealdb-types-derive" -version = "3.0.5" +version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a76abdbfc597e062daae5269251e18a84553f9090cfff423591f57c8c6765aa8" +checksum = "491b1457e76011c800818421d814472e0a9a4d3c690ae1edb44381678e97a554" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.104", ] [[package]] @@ -7433,9 +7552,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.117" +version = "2.0.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" +checksum = "17b6f705963418cdb9927482fa304bc562ece2fdd4f616084c50b7023b435a40" dependencies = [ "proc-macro2", "quote", @@ -7459,7 +7578,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.104", ] [[package]] @@ -7492,11 +7611,11 @@ dependencies = [ [[package]] name = "system-configuration" -version = "0.7.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a13f3d0daba03132c0aa9767f98351b3488edc2c100cda2d2ec2b04f3d8d3c8b" +checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.9.1", "core-foundation 0.9.4", "system-configuration-sys", ] @@ -7520,7 +7639,7 @@ dependencies = [ "cfg-expr", "heck 0.5.0", "pkg-config", - "toml 0.8.2", + "toml 0.8.23", "version-compare", ] @@ -7530,13 +7649,13 @@ version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3731d04d4ac210cd5f344087733943b9bfb1a32654387dad4d1c70de21aee2c9" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.9.1", "cocoa 0.26.1", "core-foundation 0.10.1", "core-graphics 0.24.0", "crossbeam-channel", "dispatch", - "dlopen2 0.7.0", + "dlopen2", "dpi", "gdkwayland-sys", "gdkx11-sys", @@ -7564,35 +7683,34 @@ dependencies = [ [[package]] name = "tao" -version = "0.35.2" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a33f7f9e486ade65fcf1e45c440f9236c904f5c1002cdc7fc6ae582777345ce4" +checksum = "49c380ca75a231b87b6c9dd86948f035012e7171d1a7c40a9c2890489a7ffd8a" dependencies = [ - "bitflags 2.11.1", - "block2", + "bitflags 2.9.1", "core-foundation 0.10.1", - "core-graphics 0.25.0", + "core-graphics 0.24.0", "crossbeam-channel", - "dbus", - "dispatch2", - "dlopen2 0.8.2", + "dispatch", + "dlopen2", "dpi", "gdkwayland-sys", "gdkx11-sys", "gtk", "jni", + "lazy_static", "libc", "log", "ndk", + "ndk-context", "ndk-sys", - "objc2", + "objc2 0.6.1", "objc2-app-kit", - "objc2-foundation", - "objc2-ui-kit", + "objc2-foundation 0.3.1", "once_cell", "parking_lot", - "percent-encoding", "raw-window-handle", + "scopeguard", "tao-macros", "unicode-segmentation", "url", @@ -7610,7 +7728,7 @@ checksum = "f4e16beb8b2ac17db28eab8bca40e62dbfbb34c0fcdc6d9826b11b7b5d047dfd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.104", ] [[package]] @@ -7627,13 +7745,12 @@ checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" [[package]] name = "tauri" -version = "2.11.2" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "437404997acf375d85f1177afa7e11bb971f274ed6a7b83a2a3e339015f4cc28" +checksum = "352a4bc7bf6c25f5624227e3641adf475a6535707451b09bb83271df8b7a6ac7" dependencies = [ "anyhow", "bytes", - "cookie", "dirs 6.0.0", "dunce", "embed_plist", @@ -7646,16 +7763,15 @@ dependencies = [ "libc", "log", "mime", - "muda 0.19.1", - "objc2", + "muda", + "objc2 0.6.1", "objc2-app-kit", - "objc2-foundation", + "objc2-foundation 0.3.1", "objc2-ui-kit", - "objc2-web-kit", "percent-encoding", "plist", "raw-window-handle", - "reqwest 0.13.3", + "reqwest 0.12.22", "serde", "serde_json", "serde_repr", @@ -7668,8 +7784,9 @@ dependencies = [ "tauri-utils", "thiserror 2.0.18", "tokio", - "tray-icon 0.23.1", + "tray-icon", "url", + "urlpattern", "webkit2gtk", "webview2-com", "window-vibrancy", @@ -7678,9 +7795,9 @@ dependencies = [ [[package]] name = "tauri-build" -version = "2.6.2" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4aa1f9055fc23919a54e4e125052bed16ed04aef0487086e758fe01a67b451c7" +checksum = "182d688496c06bf08ea896459bf483eb29cdff35c1c4c115fb14053514303064" dependencies = [ "anyhow", "cargo_toml", @@ -7694,14 +7811,15 @@ dependencies = [ "serde_json", "tauri-utils", "tauri-winres", + "toml 0.8.23", "walkdir", ] [[package]] name = "tauri-codegen" -version = "2.6.2" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4a0319528a025a38c4078e7dae2c446f4e63620ddb0659a643ede1cb38f90e9" +checksum = "b54a99a6cd8e01abcfa61508177e6096a4fe2681efecee9214e962f2f073ae4a" dependencies = [ "base64 0.22.1", "brotli", @@ -7715,7 +7833,7 @@ dependencies = [ "serde", "serde_json", "sha2", - "syn 2.0.117", + "syn 2.0.104", "tauri-utils", "thiserror 2.0.18", "time", @@ -7726,23 +7844,23 @@ dependencies = [ [[package]] name = "tauri-macros" -version = "2.6.2" +version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae6cb4e3896c21d2f6da5b31251d2faea0153bba56ed0e970f918115dbee4924" +checksum = "7945b14dc45e23532f2ded6e120170bbdd4af5ceaa45784a6b33d250fbce3f9e" dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.104", "tauri-codegen", "tauri-utils", ] [[package]] name = "tauri-plugin" -version = "2.6.2" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e126abc9e84e35cdfd01596140a73a1850cdb0df0a23acf0185776c30b469a6e" +checksum = "5bd5c1e56990c70a906ef67a9851bbdba9136d26075ee9a2b19c8b46986b3e02" dependencies = [ "anyhow", "glob", @@ -7751,6 +7869,7 @@ dependencies = [ "serde", "serde_json", "tauri-utils", + "toml 0.8.23", "walkdir", ] @@ -7765,7 +7884,7 @@ dependencies = [ "enigo", "linicon", "objc", - "rand 0.8.6", + "rand 0.8.5", "serde", "tauri", "tauri-plugin", @@ -7773,9 +7892,9 @@ dependencies = [ [[package]] name = "tauri-plugin-dialog" -version = "2.7.1" +version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65981abb771e74e571a38196c3baa11c459379164791eba0e67abc1a5fac9884" +checksum = "37e5858cc7b455a73ab4ea2ebc08b5be33682c00ff1bf4cad5537d4fb62499d9" dependencies = [ "log", "raw-window-handle", @@ -7791,15 +7910,13 @@ dependencies = [ [[package]] name = "tauri-plugin-fs" -version = "2.5.1" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7ecc274121aca0c036a2b42d1cbe83d368d348f54e0bb8a735c2b1548e8f371" +checksum = "8c6ef84ee2f2094ce093e55106d90d763ba343fad57566992962e8f76d113f99" dependencies = [ "anyhow", "dunce", "glob", - "log", - "objc2-foundation", "percent-encoding", "schemars 0.8.22", "serde", @@ -7809,20 +7926,20 @@ dependencies = [ "tauri-plugin", "tauri-utils", "thiserror 2.0.18", - "toml 1.1.2+spec-1.1.0", + "toml 0.8.23", "url", ] [[package]] name = "tauri-plugin-opener" -version = "2.5.4" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17e1bea14edce6b793a04e2417e3fd924b9bc4faae83cdee7d714156cceeed29" +checksum = "ecee219f11cdac713ab32959db5d0cceec4810ba4f4458da992292ecf9660321" dependencies = [ "dunce", "glob", "objc2-app-kit", - "objc2-foundation", + "objc2-foundation 0.3.1", "open", "schemars 0.8.22", "serde", @@ -7837,46 +7954,44 @@ dependencies = [ [[package]] name = "tauri-runtime" -version = "2.11.2" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48222d7116c8807eaa6fe2f372e023fae125084e61e6eca6d70b7961cdf129ef" +checksum = "2b1cc885be806ea15ff7b0eb47098a7b16323d9228876afda329e34e2d6c4676" dependencies = [ "cookie", "dpi", "gtk", "http", "jni", - "objc2", + "objc2 0.6.1", "objc2-ui-kit", - "objc2-web-kit", "raw-window-handle", "serde", "serde_json", "tauri-utils", "thiserror 2.0.18", "url", - "webkit2gtk", - "webview2-com", "windows 0.61.3", ] [[package]] name = "tauri-runtime-wry" -version = "2.11.2" +version = "2.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b83849ee63ecb27a8e8d0fe51915ca215076914aca43f96db1179f0f415f6cd9" +checksum = "fe653a2fbbef19fe898efc774bc52c8742576342a33d3d028c189b57eb1d2439" dependencies = [ "gtk", "http", "jni", "log", - "objc2", + "objc2 0.6.1", "objc2-app-kit", + "objc2-foundation 0.3.1", "once_cell", "percent-encoding", "raw-window-handle", "softbuffer", - "tao 0.35.2", + "tao 0.34.0", "tauri-runtime", "tauri-utils", "url", @@ -7888,24 +8003,24 @@ dependencies = [ [[package]] name = "tauri-utils" -version = "2.9.2" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "092379df9a707631978e6c56b1bc2401d387f01e2d4a3c123360d167bbb9aa95" +checksum = "9330c15cabfe1d9f213478c9e8ec2b0c76dab26bb6f314b8ad1c8a568c1d186e" dependencies = [ "anyhow", "brotli", "cargo_metadata", "ctor", - "dom_query", "dunce", "glob", + "html5ever 0.29.1", "http", "infer", "json-patch", + "kuchikiki", "log", "memchr", - "phf 0.13.1", - "plist", + "phf 0.11.3", "proc-macro2", "quote", "regex", @@ -7917,7 +8032,7 @@ dependencies = [ "serde_with", "swift-rs", "thiserror 2.0.18", - "toml 1.1.2+spec-1.1.0", + "toml 0.8.23", "url", "urlpattern", "uuid", @@ -7926,26 +8041,26 @@ dependencies = [ [[package]] name = "tauri-winres" -version = "0.3.6" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc65d45c68858bfe420dd29e834b5d15dbecf8a07a8a16cf4d532c7b1f69d4b6" +checksum = "7c6d9028d41d4de835e3c482c677a8cb88137ac435d6ff9a71f392d4421576c9" dependencies = [ - "dunce", "embed-resource", - "toml 1.1.2+spec-1.1.0", + "indexmap 2.13.0", + "toml 0.9.5", ] [[package]] name = "tempfile" -version = "3.27.0" +version = "3.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" +checksum = "82a72c767771b47409d2345987fda8628641887d5466101319899796367354a0" dependencies = [ "fastrand", "getrandom 0.4.2", "once_cell", "rustix", - "windows-sys 0.61.2", + "windows-sys 0.61.1", ] [[package]] @@ -7959,16 +8074,6 @@ dependencies = [ "utf-8", ] -[[package]] -name = "tendril" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4790fc369d5a530f4b544b094e31388b9b3a37c0f4652ade4505945f5660d24" -dependencies = [ - "new_debug_unreachable", - "utf-8", -] - [[package]] name = "termios" version = "0.2.2" @@ -8004,7 +8109,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.104", ] [[package]] @@ -8015,7 +8120,7 @@ checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.104", ] [[package]] @@ -8029,30 +8134,30 @@ dependencies = [ [[package]] name = "time" -version = "0.3.47" +version = "0.3.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "743bd48c283afc0388f9b8827b976905fb217ad9e647fae3a379a9283c4def2c" +checksum = "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40" dependencies = [ "deranged", "itoa", "num-conv", "powerfmt", - "serde_core", + "serde", "time-core", "time-macros", ] [[package]] name = "time-core" -version = "0.1.8" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca" +checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c" [[package]] name = "time-macros" -version = "0.2.27" +version = "0.2.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e70e4c5a0e0a8a4823ad65dfe1a6930e4f4d756dcd9dd7939022b5e8c501215" +checksum = "3526739392ec93fd8b359c8e98514cb3e8e021beb4e5f597b00a0221f8ed8a49" dependencies = [ "num-conv", "time-core", @@ -8060,9 +8165,9 @@ dependencies = [ [[package]] name = "tinystr" -version = "0.8.3" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8323304221c2a851516f22236c5722a72eaa19749016521d6dff0824447d96d" +checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" dependencies = [ "displaydoc", "zerovec", @@ -8080,9 +8185,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.11.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e61e67053d25a4e82c844e8424039d9745781b3fc4f32b8d55ed50f5f667ef3" +checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" dependencies = [ "tinyvec_macros", ] @@ -8095,9 +8200,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.52.3" +version = "1.50.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc7f01b389ac15039e4dc9531aa973a135d7a4135281b12d7c1bc79fd57fffe" +checksum = "27ad5e34374e03cfffefc301becb44e9dc3c17584f414349ebe29ed26661822d" dependencies = [ "bytes", "libc", @@ -8105,20 +8210,21 @@ dependencies = [ "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2 0.6.3", + "socket2 0.6.0", "tokio-macros", - "windows-sys 0.61.2", + "tracing", + "windows-sys 0.61.1", ] [[package]] name = "tokio-macros" -version = "2.7.0" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "385a6cb71ab9ab790c5fe8d67f1645e6c450a7ce006a33de03daa956cf70a496" +checksum = "5c55a2eff8b69ce66c84f85e1da1c233edc36ceb85a2058d11b0d6a3c7e7569c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.104", ] [[package]] @@ -8143,9 +8249,9 @@ dependencies = [ [[package]] name = "tokio-stream" -version = "0.1.18" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32da49809aab5c3bc678af03902d4ccddea2a87d028d86392a4b1560c6906c70" +checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" dependencies = [ "futures-core", "pin-project-lite", @@ -8155,10 +8261,12 @@ dependencies = [ [[package]] name = "tokio-test" -version = "0.4.5" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f6d24790a10a7af737693a3e8f1d03faef7e6ca0cc99aae5066f533766de545" +checksum = "2468baabc3311435b55dd935f702f42cd1b8abb7e754fb7dfb16bd36aa88f9f7" dependencies = [ + "async-stream", + "bytes", "futures-core", "tokio", "tokio-stream", @@ -8211,71 +8319,47 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.2" +version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d" +checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" dependencies = [ "serde", "serde_spanned 0.6.9", - "toml_datetime 0.6.3", - "toml_edit 0.20.2", -] - -[[package]] -name = "toml" -version = "0.9.12+spec-1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf92845e79fc2e2def6a5d828f0801e29a2f8acc037becc5ab08595c7d5e9863" -dependencies = [ - "indexmap 2.14.0", - "serde_core", - "serde_spanned 1.1.1", - "toml_datetime 0.7.5+spec-1.1.0", - "toml_parser", - "toml_writer", - "winnow 0.7.15", + "toml_datetime 0.6.11", + "toml_edit 0.22.27", ] [[package]] name = "toml" -version = "1.1.2+spec-1.1.0" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81f3d15e84cbcd896376e6730314d59fb5a87f31e4b038454184435cd57defee" +checksum = "75129e1dc5000bfbaa9fee9d1b21f974f9fbad9daec557a521ee6e080825f6e8" dependencies = [ - "indexmap 2.14.0", - "serde_core", - "serde_spanned 1.1.1", - "toml_datetime 1.1.1+spec-1.1.0", + "indexmap 2.13.0", + "serde", + "serde_spanned 1.0.0", + "toml_datetime 0.7.0", "toml_parser", "toml_writer", - "winnow 1.0.3", + "winnow 0.7.12", ] [[package]] name = "toml_datetime" -version = "0.6.3" +version = "0.6.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" +checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" dependencies = [ "serde", ] [[package]] name = "toml_datetime" -version = "0.7.5+spec-1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347" -dependencies = [ - "serde_core", -] - -[[package]] -name = "toml_datetime" -version = "1.1.1+spec-1.1.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7" +checksum = "bade1c3e902f58d73d3f294cd7f20391c1cb2fbcb643b73566bc773971df91e3" dependencies = [ - "serde_core", + "serde", ] [[package]] @@ -8284,50 +8368,56 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.14.0", - "toml_datetime 0.6.3", + "indexmap 2.13.0", + "toml_datetime 0.6.11", "winnow 0.5.40", ] [[package]] name = "toml_edit" -version = "0.20.2" +version = "0.20.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" +checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81" dependencies = [ - "indexmap 2.14.0", - "serde", - "serde_spanned 0.6.9", - "toml_datetime 0.6.3", + "indexmap 2.13.0", + "toml_datetime 0.6.11", "winnow 0.5.40", ] [[package]] name = "toml_edit" -version = "0.25.11+spec-1.1.0" +version = "0.22.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b59c4d22ed448339746c59b905d24568fcbb3ab65a500494f7b8c3e97739f2b" +checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" dependencies = [ - "indexmap 2.14.0", - "toml_datetime 1.1.1+spec-1.1.0", - "toml_parser", - "winnow 1.0.3", + "indexmap 2.13.0", + "serde", + "serde_spanned 0.6.9", + "toml_datetime 0.6.11", + "toml_write", + "winnow 0.7.12", ] [[package]] name = "toml_parser" -version = "1.1.2+spec-1.1.0" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526" +checksum = "b551886f449aa90d4fe2bdaa9f4a2577ad2dde302c61ecf262d80b116db95c10" dependencies = [ - "winnow 1.0.3", + "winnow 0.7.12", ] +[[package]] +name = "toml_write" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" + [[package]] name = "toml_writer" -version = "1.1.1+spec-1.1.0" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "756daf9b1013ebe47a8776667b466417e2d4c5679d441c26230efd9ef78692db" +checksum = "fcc842091f2def52017664b53082ecbbeb5c7731092bad69d2c63050401dfd64" [[package]] name = "tonic" @@ -8361,12 +8451,12 @@ dependencies = [ [[package]] name = "tonic" -version = "0.14.6" +version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac2a5518c70fa84342385732db33fb3f44bc4cc748936eb5833d2df34d6445ef" +checksum = "fec7c61a0695dc1887c1b53952990f3ad2e3a31453e1f49f10e75424943a93ec" dependencies = [ "async-trait", - "axum 0.8.9", + "axum 0.8.8", "base64 0.22.1", "bytes", "h2", @@ -8378,11 +8468,11 @@ dependencies = [ "hyper-util", "percent-encoding", "pin-project", - "socket2 0.6.3", + "socket2 0.6.0", "sync_wrapper", "tokio", "tokio-stream", - "tower 0.5.3", + "tower 0.5.2", "tower-layer", "tower-service", "tracing", @@ -8399,18 +8489,18 @@ dependencies = [ "prost-build", "prost-types 0.13.5", "quote", - "syn 2.0.117", + "syn 2.0.104", ] [[package]] name = "tonic-prost" -version = "0.14.6" +version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50849f68853be452acf590cde0b146665b8d507b3b8af17261df47e02c209ea0" +checksum = "a55376a0bbaa4975a3f10d009ad763d8f4108f067c7c2e74f3001fb49778d309" dependencies = [ "bytes", "prost 0.14.3", - "tonic 0.14.6", + "tonic 0.14.5", ] [[package]] @@ -8424,7 +8514,7 @@ dependencies = [ "indexmap 1.9.3", "pin-project", "pin-project-lite", - "rand 0.8.6", + "rand 0.8.5", "slab", "tokio", "tokio-util", @@ -8435,13 +8525,13 @@ dependencies = [ [[package]] name = "tower" -version = "0.5.3" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4" +checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" dependencies = [ "futures-core", "futures-util", - "indexmap 2.14.0", + "indexmap 2.13.0", "pin-project-lite", "slab", "sync_wrapper", @@ -8454,21 +8544,21 @@ dependencies = [ [[package]] name = "tower-http" -version = "0.6.10" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68d6fdd9f81c2819c9a8b0e0cd91660e7746a8e6ea2ba7c6b2b057985f6bcb51" +checksum = "d4e6559d53cc268e5031cd8429d05415bc4cb4aefc4aa5d6cc35fbf5b924a1f8" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.9.1", "bytes", "futures-util", "http", "http-body", + "iri-string", "pin-project-lite", - "tower 0.5.3", + "tower 0.5.2", "tower-layer", "tower-service", "tracing", - "url", ] [[package]] @@ -8503,7 +8593,7 @@ checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.104", ] [[package]] @@ -8529,9 +8619,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.23" +version = "0.3.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7f578e5945fb242538965c2d0b04418d38ec25c79d160cd279bf0731c8d319" +checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5" dependencies = [ "matchers", "nu-ansi-term", @@ -8547,45 +8637,24 @@ dependencies = [ [[package]] name = "tray-icon" -version = "0.21.3" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5e85aa143ceb072062fc4d6356c1b520a51d636e7bc8e77ec94be3608e5e80c" +checksum = "a0d92153331e7d02ec09137538996a7786fe679c629c279e82a6be762b7e6fe2" dependencies = [ "crossbeam-channel", "dirs 6.0.0", "libappindicator", - "muda 0.17.2", - "objc2", + "muda", + "objc2 0.6.1", "objc2-app-kit", "objc2-core-foundation", "objc2-core-graphics", - "objc2-foundation", + "objc2-foundation 0.3.1", "once_cell", "png 0.17.16", - "thiserror 2.0.18", - "windows-sys 0.60.2", -] - -[[package]] -name = "tray-icon" -version = "0.23.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15edbb0d80583e85ee8df283410038e17314df5cba30da2087a54a85216c0773" -dependencies = [ - "crossbeam-channel", - "dirs 6.0.0", - "libappindicator", - "muda 0.19.1", - "objc2", - "objc2-app-kit", - "objc2-core-foundation", - "objc2-core-graphics", - "objc2-foundation", - "once_cell", - "png 0.18.1", "serde", "thiserror 2.0.18", - "windows-sys 0.61.2", + "windows-sys 0.59.0", ] [[package]] @@ -8616,7 +8685,7 @@ dependencies = [ "http", "httparse", "log", - "rand 0.9.4", + "rand 0.9.2", "sha1", "thiserror 2.0.18", "utf-8", @@ -8636,19 +8705,19 @@ checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" [[package]] name = "typenum" -version = "1.20.0" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40ce102ab67701b8526c123c1bab5cbe42d7040ccfd0f64af1a385808d2f43de" +checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" [[package]] name = "uds_windows" -version = "1.2.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2f6fb2847f6742cd76af783a2a2c49e9375d0a111c7bef6f71cd9e738c72d6e" +checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9" dependencies = [ "memoffset 0.9.1", "tempfile", - "windows-sys 0.61.2", + "winapi", ] [[package]] @@ -8657,7 +8726,7 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "470dbf6591da1b39d43c14523b2b469c86879a53e8b758c8e090a470fe7b1fbe" dependencies = [ - "rand 0.9.4", + "rand 0.9.2", "serde", "web-time", ] @@ -8711,15 +8780,15 @@ checksum = "dbc4bc3a9f746d862c45cb89d705aa10f187bb96c76001afab07a0d35ce60142" [[package]] name = "unicode-ident" -version = "1.0.24" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" +checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" [[package]] name = "unicode-segmentation" -version = "1.13.2" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9629274872b2bfaf8d66f5f15725007f635594914870f65218920345aa11aa8c" +checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" [[package]] name = "unicode-width" @@ -8796,9 +8865,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.23.1" +version = "1.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddd74a9687298c6858e9b88ec8935ec45d22e8fd5e6394fa1bd4e99a87789c76" +checksum = "a68d3c8f01c0cfa54a75291d83601161799e4a89a39e0929f4b0354d88757a37" dependencies = [ "getrandom 0.4.2", "js-sys", @@ -8826,9 +8895,9 @@ checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" [[package]] name = "version-compare" -version = "0.2.1" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03c2856837ef78f57382f06b2b8563a2f512f7185d732608fd9176cb3b8edf0e" +checksum = "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b" [[package]] name = "version_check" @@ -8875,6 +8944,12 @@ dependencies = [ "try-lock", ] +[[package]] +name = "wasi" +version = "0.9.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" + [[package]] name = "wasi" version = "0.11.1+wasi-snapshot-preview1" @@ -8883,11 +8958,11 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasip2" -version = "1.0.3+wasi-0.2.9" +version = "1.0.2+wasi-0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20064672db26d7cdc89c7798c48a0fdfac8213434a1186e5ef29fd560ae223d6" +checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" dependencies = [ - "wit-bindgen 0.57.1", + "wit-bindgen", ] [[package]] @@ -8896,38 +8971,41 @@ version = "0.4.0+wasi-0.3.0-rc-2026-01-06" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" dependencies = [ - "wit-bindgen 0.51.0", + "wit-bindgen", ] [[package]] name = "wasm-bindgen" -version = "0.2.121" +version = "0.2.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49ace1d07c165b0864824eee619580c4689389afa9dc9ed3a4c75040d82e6790" +checksum = "6532f9a5c1ece3798cb1c2cfdba640b9b3ba884f5db45973a6f442510a87d38e" dependencies = [ "cfg-if", "once_cell", "rustversion", - "serde", "wasm-bindgen-macro", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.71" +version = "0.4.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96492d0d3ffba25305a7dc88720d250b1401d7edca02cc3bcd50633b424673b8" +checksum = "e9c5522b3a28661442748e09d40924dfb9ca614b21c00d3fd135720e48b67db8" dependencies = [ + "cfg-if", + "futures-util", "js-sys", + "once_cell", "wasm-bindgen", + "web-sys", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.121" +version = "0.2.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e68e6f4afd367a562002c05637acb8578ff2dea1943df76afb9e83d177c8578" +checksum = "18a2d50fcf105fb33bb15f00e7a77b772945a2ee45dcf454961fd843e74c18e6" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -8935,22 +9013,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.121" +version = "0.2.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d95a9ec35c64b2a7cb35d3fead40c4238d0940c86d107136999567a4703259f2" +checksum = "03ce4caeaac547cdf713d280eda22a730824dd11e6b8c3ca9e42247b25c631e3" dependencies = [ "bumpalo", "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.104", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.121" +version = "0.2.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4e0100b01e9f0d03189a92b96772a1fb998639d981193d7dbab487302513441" +checksum = "75a326b8c223ee17883a4251907455a2431acc2791c98c26279376490c378c16" dependencies = [ "unicode-ident", ] @@ -8972,7 +9050,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" dependencies = [ "anyhow", - "indexmap 2.14.0", + "indexmap 2.13.0", "wasm-encoder", "wasmparser", ] @@ -9009,9 +9087,9 @@ version = "0.244.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" dependencies = [ - "bitflags 2.11.1", - "hashbrown 0.15.5", - "indexmap 2.14.0", + "bitflags 2.9.1", + "hashbrown 0.15.4", + "indexmap 2.13.0", "semver", ] @@ -9028,11 +9106,71 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "wayland-backend" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "673a33c33048a5ade91a6b139580fa174e19fb0d23f396dca9fa15f2e1e49b35" +dependencies = [ + "cc", + "downcast-rs", + "rustix", + "scoped-tls", + "smallvec", + "wayland-sys", +] + +[[package]] +name = "wayland-client" +version = "0.31.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c66a47e840dc20793f2264eb4b3e4ecb4b75d91c0dd4af04b456128e0bdd449d" +dependencies = [ + "bitflags 2.9.1", + "rustix", + "wayland-backend", + "wayland-scanner", +] + +[[package]] +name = "wayland-protocols" +version = "0.32.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efa790ed75fbfd71283bd2521a1cfdc022aabcc28bdcff00851f9e4ae88d9901" +dependencies = [ + "bitflags 2.9.1", + "wayland-backend", + "wayland-client", + "wayland-scanner", +] + +[[package]] +name = "wayland-scanner" +version = "0.31.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54cb1e9dc49da91950bdfd8b848c49330536d9d1fb03d4bfec8cae50caa50ae3" +dependencies = [ + "proc-macro2", + "quick-xml 0.37.5", + "quote", +] + +[[package]] +name = "wayland-sys" +version = "0.31.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34949b42822155826b41db8e5d0c1be3a2bd296c747577a43a3e6daefc296142" +dependencies = [ + "dlib", + "log", + "pkg-config", +] + [[package]] name = "web-sys" -version = "0.3.98" +version = "0.3.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b572dff8bcf38bad0fa19729c89bb5748b2b9b1d8be70cf90df697e3a8f32aa" +checksum = "854ba17bb104abfb26ba36da9729addc7ce7f06f5c0f90f3c391f8461cca21f9" dependencies = [ "js-sys", "wasm-bindgen", @@ -9056,27 +9194,15 @@ checksum = "57ffde1dc01240bdf9992e3205668b235e59421fd085e8a317ed98da0178d414" dependencies = [ "phf 0.11.3", "phf_codegen 0.11.3", - "string_cache 0.8.9", - "string_cache_codegen 0.5.4", -] - -[[package]] -name = "web_atoms" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7cff6eef815df1834fd250e3a2ff436044d82a9f1bc1980ca1dbdf07effc538" -dependencies = [ - "phf 0.13.1", - "phf_codegen 0.13.1", - "string_cache 0.9.0", - "string_cache_codegen 0.6.1", + "string_cache", + "string_cache_codegen", ] [[package]] name = "webkit2gtk" -version = "2.0.2" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1027150013530fb2eaf806408df88461ae4815a45c541c8975e61d6f2fc4793" +checksum = "76b1bc1e54c581da1e9f179d0b38512ba358fb1af2d634a1affe42e37172361a" dependencies = [ "bitflags 1.3.2", "cairo-rs", @@ -9098,9 +9224,9 @@ dependencies = [ [[package]] name = "webkit2gtk-sys" -version = "2.0.2" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "916a5f65c2ef0dfe12fff695960a2ec3d4565359fdbb2e9943c974e06c734ea5" +checksum = "62daa38afc514d1f8f12b8693d30d5993ff77ced33ce30cd04deebc267a6d57c" dependencies = [ "bitflags 1.3.2", "cairo-sys-rs", @@ -9118,34 +9244,34 @@ dependencies = [ [[package]] name = "webview2-com" -version = "0.38.2" +version = "0.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7130243a7a5b33c54a444e54842e6a9e133de08b5ad7b5861cd8ed9a6a5bc96a" +checksum = "d4ba622a989277ef3886dd5afb3e280e3dd6d974b766118950a08f8f678ad6a4" dependencies = [ "webview2-com-macros", "webview2-com-sys", "windows 0.61.3", "windows-core 0.61.2", - "windows-implement 0.60.2", - "windows-interface 0.59.3", + "windows-implement 0.60.0", + "windows-interface 0.59.1", ] [[package]] name = "webview2-com-macros" -version = "0.8.1" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67a921c1b6914c367b2b823cd4cde6f96beec77d30a939c8199bb377cf9b9b54" +checksum = "1d228f15bba3b9d56dde8bddbee66fa24545bd17b48d5128ccf4a8742b18e431" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.104", ] [[package]] name = "webview2-com-sys" -version = "0.38.2" +version = "0.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "381336cfffd772377d291702245447a5251a2ffa5bad679c99e61bc48bacbf9c" +checksum = "36695906a1b53a3bf5c4289621efedac12b73eeb0b89e7e1a89b517302d5d75c" dependencies = [ "thiserror 2.0.18", "windows 0.61.3", @@ -9182,11 +9308,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.11" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ - "windows-sys 0.61.2", + "windows-sys 0.59.0", ] [[package]] @@ -9201,10 +9327,10 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9bec5a31f3f9362f2258fd0e9c9dd61a9ca432e7306cc78c444258f0dce9a9c" dependencies = [ - "objc2", + "objc2 0.6.1", "objc2-app-kit", "objc2-core-foundation", - "objc2-foundation", + "objc2-foundation 0.3.1", "raw-window-handle", "windows-sys 0.59.0", "windows-version", @@ -9302,26 +9428,13 @@ version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" dependencies = [ - "windows-implement 0.60.2", - "windows-interface 0.59.3", + "windows-implement 0.60.0", + "windows-interface 0.59.1", "windows-link 0.1.3", "windows-result 0.3.4", "windows-strings 0.4.2", ] -[[package]] -name = "windows-core" -version = "0.62.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" -dependencies = [ - "windows-implement 0.60.2", - "windows-interface 0.59.3", - "windows-link 0.2.1", - "windows-result 0.4.1", - "windows-strings 0.5.1", -] - [[package]] name = "windows-future" version = "0.2.1" @@ -9341,7 +9454,7 @@ checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.104", ] [[package]] @@ -9352,18 +9465,18 @@ checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.104", ] [[package]] name = "windows-implement" -version = "0.60.2" +version = "0.60.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" +checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.104", ] [[package]] @@ -9374,7 +9487,7 @@ checksum = "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.104", ] [[package]] @@ -9385,18 +9498,18 @@ checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.104", ] [[package]] name = "windows-interface" -version = "0.59.3" +version = "0.59.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" +checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.104", ] [[package]] @@ -9407,9 +9520,9 @@ checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" [[package]] name = "windows-link" -version = "0.2.1" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" +checksum = "45e46c0661abb7180e7b9c281db115305d49ca1709ab8242adf09666d2173c65" [[package]] name = "windows-numerics" @@ -9423,13 +9536,13 @@ dependencies = [ [[package]] name = "windows-registry" -version = "0.6.1" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02752bf7fbdcce7f2a27a742f798510f3e5ad88dbe84871e5168e2120c3d5720" +checksum = "5b8a9ed28765efc97bbc954883f4e6796c33a06546ebafacbabee9696967499e" dependencies = [ - "windows-link 0.2.1", - "windows-result 0.4.1", - "windows-strings 0.5.1", + "windows-link 0.1.3", + "windows-result 0.3.4", + "windows-strings 0.4.2", ] [[package]] @@ -9459,15 +9572,6 @@ dependencies = [ "windows-link 0.1.3", ] -[[package]] -name = "windows-result" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" -dependencies = [ - "windows-link 0.2.1", -] - [[package]] name = "windows-strings" version = "0.1.0" @@ -9487,15 +9591,6 @@ dependencies = [ "windows-link 0.1.3", ] -[[package]] -name = "windows-strings" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" -dependencies = [ - "windows-link 0.2.1", -] - [[package]] name = "windows-sys" version = "0.45.0" @@ -9538,16 +9633,16 @@ version = "0.60.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" dependencies = [ - "windows-targets 0.53.5", + "windows-targets 0.53.3", ] [[package]] name = "windows-sys" -version = "0.61.2" +version = "0.61.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" +checksum = "6f109e41dd4a3c848907eb83d5a42ea98b3769495597450cf6d153507b166f0f" dependencies = [ - "windows-link 0.2.1", + "windows-link 0.2.0", ] [[package]] @@ -9598,19 +9693,19 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.53.5" +version = "0.53.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" +checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91" dependencies = [ - "windows-link 0.2.1", - "windows_aarch64_gnullvm 0.53.1", - "windows_aarch64_msvc 0.53.1", - "windows_i686_gnu 0.53.1", - "windows_i686_gnullvm 0.53.1", - "windows_i686_msvc 0.53.1", - "windows_x86_64_gnu 0.53.1", - "windows_x86_64_gnullvm 0.53.1", - "windows_x86_64_msvc 0.53.1", + "windows-link 0.1.3", + "windows_aarch64_gnullvm 0.53.0", + "windows_aarch64_msvc 0.53.0", + "windows_i686_gnu 0.53.0", + "windows_i686_gnullvm 0.53.0", + "windows_i686_msvc 0.53.0", + "windows_x86_64_gnu 0.53.0", + "windows_x86_64_gnullvm 0.53.0", + "windows_x86_64_msvc 0.53.0", ] [[package]] @@ -9624,11 +9719,11 @@ dependencies = [ [[package]] name = "windows-version" -version = "0.1.7" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4060a1da109b9d0326b7262c8e12c84df67cc0dbc9e33cf49e01ccc2eb63631" +checksum = "e04a5c6627e310a23ad2358483286c7df260c964eb2d003d8efd6d0f4e79265c" dependencies = [ - "windows-link 0.2.1", + "windows-link 0.1.3", ] [[package]] @@ -9651,9 +9746,9 @@ checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] name = "windows_aarch64_gnullvm" -version = "0.53.1" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" +checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" [[package]] name = "windows_aarch64_msvc" @@ -9675,9 +9770,9 @@ checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] name = "windows_aarch64_msvc" -version = "0.53.1" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" +checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" [[package]] name = "windows_i686_gnu" @@ -9699,9 +9794,9 @@ checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" [[package]] name = "windows_i686_gnu" -version = "0.53.1" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" +checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" [[package]] name = "windows_i686_gnullvm" @@ -9711,9 +9806,9 @@ checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] name = "windows_i686_gnullvm" -version = "0.53.1" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" +checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" [[package]] name = "windows_i686_msvc" @@ -9735,9 +9830,9 @@ checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] name = "windows_i686_msvc" -version = "0.53.1" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" +checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" [[package]] name = "windows_x86_64_gnu" @@ -9759,9 +9854,9 @@ checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] name = "windows_x86_64_gnu" -version = "0.53.1" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" +checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" [[package]] name = "windows_x86_64_gnullvm" @@ -9783,9 +9878,9 @@ checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] name = "windows_x86_64_gnullvm" -version = "0.53.1" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" +checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" [[package]] name = "windows_x86_64_msvc" @@ -9807,9 +9902,9 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "windows_x86_64_msvc" -version = "0.53.1" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" +checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" [[package]] name = "winnow" @@ -9822,18 +9917,9 @@ dependencies = [ [[package]] name = "winnow" -version = "0.7.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945" -dependencies = [ - "memchr", -] - -[[package]] -name = "winnow" -version = "1.0.3" +version = "0.7.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0592e1c9d151f854e6fd382574c3a0855250e1d9b2f99d9281c6e6391af352f1" +checksum = "f3edebf492c8125044983378ecb5766203ad3b4c2f7a922bd7dd207f6d443e95" dependencies = [ "memchr", ] @@ -9872,12 +9958,6 @@ dependencies = [ "wit-bindgen-rust-macro", ] -[[package]] -name = "wit-bindgen" -version = "0.57.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" - [[package]] name = "wit-bindgen-core" version = "0.51.0" @@ -9897,9 +9977,9 @@ checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" dependencies = [ "anyhow", "heck 0.5.0", - "indexmap 2.14.0", + "indexmap 2.13.0", "prettyplease", - "syn 2.0.117", + "syn 2.0.104", "wasm-metadata", "wit-bindgen-core", "wit-component", @@ -9915,7 +9995,7 @@ dependencies = [ "prettyplease", "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.104", "wit-bindgen-core", "wit-bindgen-rust", ] @@ -9927,8 +10007,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" dependencies = [ "anyhow", - "bitflags 2.11.1", - "indexmap 2.14.0", + "bitflags 2.9.1", + "indexmap 2.13.0", "log", "serde", "serde_derive", @@ -9947,7 +10027,7 @@ checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" dependencies = [ "anyhow", "id-arena", - "indexmap 2.14.0", + "indexmap 2.13.0", "log", "semver", "serde", @@ -9959,35 +10039,35 @@ dependencies = [ [[package]] name = "writeable" -version = "0.6.3" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ffae5123b2d3fc086436f8834ae3ab053a283cfac8fe0a0b8eaae044768a4c4" +checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" [[package]] name = "wry" -version = "0.55.1" +version = "0.52.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "186f9871daa55fd9c016578b810d149de58367113db7fb72b462d2323ce19514" +checksum = "12a714d9ba7075aae04a6e50229d6109e3d584774b99a6a8c60de1698ca111b9" dependencies = [ "base64 0.22.1", - "block2", + "block2 0.6.1", "cookie", "crossbeam-channel", - "dirs 6.0.0", - "dom_query", "dpi", "dunce", "gdkx11", "gtk", + "html5ever 0.29.1", "http", "javascriptcore-rs", "jni", + "kuchikiki", "libc", "ndk", - "objc2", + "objc2 0.6.1", "objc2-app-kit", "objc2-core-foundation", - "objc2-foundation", + "objc2-foundation 0.3.1", "objc2-ui-kit", "objc2-web-kit", "once_cell", @@ -10039,10 +10119,11 @@ dependencies = [ [[package]] name = "yoke" -version = "0.8.2" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abe8c5fda708d9ca3df187cae8bfb9ceda00dd96231bed36e445a1a48e66f9ca" +checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" dependencies = [ + "serde", "stable_deref_trait", "yoke-derive", "zerofrom", @@ -10050,21 +10131,21 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.8.2" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de844c262c8848816172cef550288e7dc6c7b7814b4ee56b3e1553f275f1858e" +checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.104", "synstructure", ] [[package]] name = "zbus" -version = "5.15.0" +version = "5.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3bcbf15c8708d7fc1be0c993622e0a5cbd5e8b52bfa40afa4c3e0cd8d724ac1" +checksum = "4bb4f9a464286d42851d18a605f7193b8febaf5b0919d71c6399b7b26e5b0aad" dependencies = [ "async-broadcast", "async-executor", @@ -10080,16 +10161,15 @@ dependencies = [ "futures-core", "futures-lite", "hex", - "libc", + "nix 0.30.1", "ordered-stream", - "rustix", "serde", "serde_repr", + "tokio", "tracing", "uds_windows", - "uuid", - "windows-sys 0.61.2", - "winnow 1.0.3", + "windows-sys 0.59.0", + "winnow 0.7.12", "zbus_macros", "zbus_names", "zvariant", @@ -10097,14 +10177,14 @@ dependencies = [ [[package]] name = "zbus_macros" -version = "5.15.0" +version = "5.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51fa5406ad9175a8c825a931f8cf347116b531b3634fcb0b627c290f1f2516ff" +checksum = "ef9859f68ee0c4ee2e8cde84737c78e3f4c54f946f2a38645d0d4c7a95327659" dependencies = [ - "proc-macro-crate 3.5.0", + "proc-macro-crate 3.3.0", "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.104", "zbus_names", "zvariant", "zvariant_utils", @@ -10112,53 +10192,54 @@ dependencies = [ [[package]] name = "zbus_names" -version = "4.3.2" +version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7074f3e50b894eac91750142016d30d0a89be8e67dbfd9704fb875825760e52d" +checksum = "7be68e64bf6ce8db94f63e72f0c7eb9a60d733f7e0499e628dfab0f84d6bcb97" dependencies = [ "serde", - "winnow 1.0.3", + "static_assertions", + "winnow 0.7.12", "zvariant", ] [[package]] name = "zerocopy" -version = "0.8.48" +version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eed437bf9d6692032087e337407a86f04cd8d6a16a37199ed57949d415bd68e9" +checksum = "1039dd0d3c310cf05de012d8a39ff557cb0d23087fd44cad61df08fc31907a2f" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.48" +version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70e3cd084b1788766f53af483dd21f93881ff30d7320490ec3ef7526d203bad4" +checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.104", ] [[package]] name = "zerofrom" -version = "0.1.8" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ec05a11813ea801ff6d75110ad09cd0824ddba17dfe17128ea0d5f68e6c5272" +checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" dependencies = [ "zerofrom-derive", ] [[package]] name = "zerofrom-derive" -version = "0.1.7" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11532158c46691caf0f2593ea8358fed6bbf68a0315e80aae9bd41fbade684a1" +checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.104", "synstructure", ] @@ -10167,26 +10248,12 @@ name = "zeroize" version = "1.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" -dependencies = [ - "zeroize_derive", -] - -[[package]] -name = "zeroize_derive" -version = "1.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85a5b4158499876c763cb03bc4e49185d3cccbabb15b33c627f7884f43db852e" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] [[package]] name = "zerotrie" -version = "0.2.4" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f9152d31db0792fa83f70fb2f83148effb5c1f5b8c7686c3459e361d9bc20bf" +checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" dependencies = [ "displaydoc", "yoke", @@ -10195,9 +10262,9 @@ dependencies = [ [[package]] name = "zerovec" -version = "0.11.6" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90f911cbc359ab6af17377d242225f4d75119aec87ea711a880987b18cd7b239" +checksum = "bdbb9122ea75b11bf96e7492afb723e8a7fbe12c67417aa95e7e3d18144d37cd" dependencies = [ "yoke", "zerofrom", @@ -10206,13 +10273,13 @@ dependencies = [ [[package]] name = "zerovec-derive" -version = "0.11.3" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "625dc425cab0dca6dc3c3319506e6593dcb08a9f387ea3b284dbd52a92c40555" +checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.104", ] [[package]] @@ -10233,40 +10300,42 @@ dependencies = [ [[package]] name = "zvariant" -version = "5.11.0" +version = "5.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c1567a6ec68df868cbbfde844cfc6d81649fe5109a62b116b19fabd53e618ee" +checksum = "d91b3680bb339216abd84714172b5138a4edac677e641ef17e1d8cb1b3ca6e6f" dependencies = [ "endi", "enumflags2", "serde", - "winnow 1.0.3", + "url", + "winnow 0.7.12", "zvariant_derive", "zvariant_utils", ] [[package]] name = "zvariant_derive" -version = "5.11.0" +version = "5.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7d5b780599bbde114e39d9a0799577fad1ced5105d38515745f7b3099d8ceda" +checksum = "3a8c68501be459a8dbfffbe5d792acdd23b4959940fc87785fb013b32edbc208" dependencies = [ - "proc-macro-crate 3.5.0", + "proc-macro-crate 3.3.0", "proc-macro2", "quote", - "syn 2.0.117", + "syn 2.0.104", "zvariant_utils", ] [[package]] name = "zvariant_utils" -version = "3.3.1" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d464f5733ffa07a3164d656f18533caace9d0638596721355d73256a410d691" +checksum = "e16edfee43e5d7b553b77872d99bc36afdda75c223ca7ad5e3fbecd82ca5fc34" dependencies = [ "proc-macro2", "quote", "serde", - "syn 2.0.117", - "winnow 1.0.3", + "static_assertions", + "syn 2.0.104", + "winnow 0.7.12", ] diff --git a/packages/agent/Cargo.toml b/packages/agent/Cargo.toml index f2b31ddf5..56b39bd55 100644 --- a/packages/agent/Cargo.toml +++ b/packages/agent/Cargo.toml @@ -34,12 +34,26 @@ tempfile = "3" libc = "0.2" [features] -# Exposes test-only hooks (e.g. `LocalAgentService::set_system_prompt` and -# `AgentSession::system_prompt_override`) so integration tests in `tests/` -# can inject prebuilt prompts without a live database. The `tests/` binaries -# link against the library in non-test mode, so `#[cfg(test)]` alone is not -# enough — this feature gate is what keeps the hook out of production builds -# while making it visible to integration tests run with `--features testing`. +# Exposes test-only hooks (e.g. `LocalAgentService::set_system_prompt`, +# `AgentSession::system_prompt_override`, `PtySession::launch_for_test`) so +# integration tests in `tests/` can inject prebuilt prompts and spawn shell +# utilities without a real agent binary on PATH. The `tests/` binaries link +# against the library in non-test mode, so `#[cfg(test)]` alone is not +# enough — this feature gate is what keeps the hooks out of production +# builds while making them visible to integration tests run with +# `--features testing`. +# +# Footgun: Cargo unifies features across dep/dev-dep within a single +# downstream package. If a sibling crate (e.g. nodespace-daemon) depends on +# nodespace-agent as a regular dependency *and* as a dev-dependency with +# `features = ["testing"]`, then during `cargo test -p that-crate` the +# downstream's *production* code links against this crate with the +# `testing` feature enabled. That is currently safe — every gate behind +# `testing` only widens visibility (pub(crate) → pub) without changing +# runtime behavior. Keep it that way: do not put `#[cfg(feature = +# "testing")]` on code that mutates state, swaps implementations, or skips +# safety checks. Test-only stubs belong in test-only modules in the +# downstream crate, not behind this feature flag. testing = [] [dev-dependencies] diff --git a/packages/agent/src/pty/manager.rs b/packages/agent/src/pty/manager.rs index 83c47c0ca..bfd47c00a 100644 --- a/packages/agent/src/pty/manager.rs +++ b/packages/agent/src/pty/manager.rs @@ -237,8 +237,7 @@ mod tests { for _ in 0..10 { // `true` exits with status 0 essentially immediately. The watcher // very plausibly fires before the manager's auto-prune subscribes. - let session = - PtySession::launch_for_test("true", vec![]).expect("launch true session"); + let session = PtySession::launch_for_test("true", vec![]).expect("launch true session"); manager.insert(session).await; } wait_for_len(&manager, 0, Duration::from_secs(3)).await; diff --git a/packages/agent/src/pty/session.rs b/packages/agent/src/pty/session.rs index 043124a5d..2eba38c34 100644 --- a/packages/agent/src/pty/session.rs +++ b/packages/agent/src/pty/session.rs @@ -358,12 +358,16 @@ fn spawn_reader_task(mut reader: Box, output_tx: broadcast::Sen }); } -#[cfg(test)] +#[cfg(any(test, feature = "testing"))] impl PtySession { /// Test-only constructor: spawn an arbitrary binary in a PTY without /// going through [`GraphContextAssembler`]. Lets tests use shell utilities /// (`cat`, `sh -c '...'`) instead of depending on a real agent binary. - pub(crate) fn launch_for_test(binary: &str, args: Vec) -> anyhow::Result { + /// + /// Gated by the `testing` feature so it is reachable from integration + /// tests in sibling crates (e.g. `nodespace-daemon`) without being part + /// of the production surface. + pub fn launch_for_test(binary: &str, args: Vec) -> anyhow::Result { let session_dir = tempfile::tempdir()?; let binary_path = which::which(binary) .map_err(|e| anyhow::anyhow!("test binary '{}' not on PATH: {}", binary, e))?; @@ -415,7 +419,7 @@ impl PtySession { } /// Test-only accessor: where this session's temp dir lives. - pub(crate) fn session_dir_path(&self) -> &std::path::Path { + pub fn session_dir_path(&self) -> &std::path::Path { self._session_dir.path() } } diff --git a/packages/cli/src/commands/node.rs b/packages/cli/src/commands/node.rs index ad949dd83..1d9606aee 100644 --- a/packages/cli/src/commands/node.rs +++ b/packages/cli/src/commands/node.rs @@ -102,6 +102,8 @@ async fn create( properties: String::new(), collection: String::new(), lifecycle_status: String::new(), + id: String::new(), + insert_after_node_id: String::new(), }) .await .context("CreateNode RPC failed")? diff --git a/packages/cli/tests/cli_integration.rs b/packages/cli/tests/cli_integration.rs index 8823553b8..1afda48f1 100644 --- a/packages/cli/tests/cli_integration.rs +++ b/packages/cli/tests/cli_integration.rs @@ -108,6 +108,8 @@ async fn create_get_update_children_delete_round_trip() { properties: String::new(), collection: String::new(), lifecycle_status: String::new(), + id: String::new(), + insert_after_node_id: String::new(), }) .await .expect("seed parent") diff --git a/packages/daemon/Cargo.toml b/packages/daemon/Cargo.toml index 9b8c3304e..2de729492 100644 --- a/packages/daemon/Cargo.toml +++ b/packages/daemon/Cargo.toml @@ -23,6 +23,8 @@ serde_json = { workspace = true } async-trait = { workspace = true } chrono = { workspace = true } nodespace-core = { workspace = true } +nodespace-agent = { workspace = true } +uuid = { workspace = true } # System tray (ADR-031): the daemon owns the tray icon, not the Tauri app. # tray-icon ships an event loop via `tao`; we run it on the main thread on @@ -39,3 +41,10 @@ protoc-bin-vendored = "3" [dev-dependencies] tempfile = "3.0" +# Integration tests need PtySession::launch_for_test to spawn shell utilities +# (echo, cat) without a real agent binary. The `testing` feature exposes that +# helper as part of the agent crate's public surface. +nodespace-agent = { workspace = true, features = ["testing"] } +tokio = { workspace = true, features = ["full", "test-util"] } +tokio-stream = "0.1" +tonic = "0.12" diff --git a/packages/daemon/proto/agent_session_service.proto b/packages/daemon/proto/agent_session_service.proto index cdc0e7f40..3df092326 100644 --- a/packages/daemon/proto/agent_session_service.proto +++ b/packages/daemon/proto/agent_session_service.proto @@ -4,9 +4,10 @@ package nodespace; // AgentSessionService manages PTY/terminal-style agent sessions. // -// A session represents a running agent process with a pseudo-terminal attached. -// Clients can launch sessions, stream output, write input, resize the terminal, -// and terminate sessions. +// A session represents an external agent CLI (Claude Code, Codex, Gemini CLI, +// Pi, OpenCode) running inside a pseudo-terminal. Clients can launch sessions, +// stream output, write input, resize the terminal, list active sessions, and +// terminate sessions. service AgentSessionService { rpc LaunchSession(LaunchSessionRequest) returns (LaunchSessionResponse); rpc StreamOutput(StreamOutputRequest) returns (stream OutputChunk); @@ -20,29 +21,28 @@ service AgentSessionService { // LaunchSession // --------------------------------------------------------------------------- -// EnvVar is a single environment variable key-value pair. -message EnvVar { - string key = 1; - string value = 2; -} - message LaunchSessionRequest { - // Command to execute, e.g. "/usr/bin/python3" or "node" - string command = 1; - // Arguments passed to the command - repeated string args = 2; - // Working directory for the process; empty = server default - string cwd = 3; - // Additional environment variables merged with the server's environment - repeated EnvVar env = 4; - // Initial terminal dimensions - uint32 cols = 5; - uint32 rows = 6; + // Catalogued agent identifier (kebab-case): "claude-code" | "codex" | + // "gemini-cli" | "pi" | "open-code". Matches the AgentType enum's serde + // form in packages/agent/src/agent_types.rs. + string agent_type = 1; + // Initial prompt passed as a CLI argument when the agent supports it + // (e.g. `claude ""`). Omit to launch the agent in its default + // interactive mode. + optional string prompt = 2; + // Initial terminal dimensions. Valid range: [1, 65535]. Zero on either + // axis falls back to the engine default (80x24); callers are expected to + // call ResizeTerminal as soon as they know the real terminal geometry. + // (ResizeTerminal, by contrast, rejects zero — its semantics are "apply + // exactly this size", not "use the default".) + uint32 cols = 3; + uint32 rows = 4; } message LaunchSessionResponse { + // UUID assigned to the new session. string session_id = 1; - // Unix timestamp (seconds) when the session was created + // Unix timestamp (seconds) when the session was created. int64 created_at = 2; } @@ -54,19 +54,17 @@ message StreamOutputRequest { string session_id = 1; } -// StreamKind distinguishes the output channel. -enum StreamKind { - STREAM_KIND_UNSPECIFIED = 0; - STREAM_KIND_STDOUT = 1; - STREAM_KIND_STDERR = 2; -} - +// OutputChunk is one slice of raw bytes read from the PTY master. +// +// PTYs merge stdout and stderr into a single byte stream — there is no way to +// distinguish them at this layer. The bytes may contain partial UTF-8 sequences +// and terminal escape codes; consumers are expected to render them the way a +// terminal would. message OutputChunk { - // Raw bytes from the PTY (may contain ANSI escape sequences) + // Raw bytes read from the PTY (may include ANSI escape sequences). bytes data = 1; - StreamKind stream_kind = 2; - // Unix timestamp in milliseconds when this chunk was produced - int64 timestamp_ms = 3; + // Unix timestamp in milliseconds when this chunk was produced. + int64 timestamp_ms = 2; } // --------------------------------------------------------------------------- @@ -75,13 +73,18 @@ message OutputChunk { message WriteInputRequest { string session_id = 1; - // Raw bytes to write (keystrokes, commands, etc.) + // Raw bytes to write (keystrokes, commands, etc.). May include control + // characters (Ctrl-C as 0x03, etc.) — they pass through to the PTY verbatim. bytes data = 2; } message WriteInputResponse { - // Number of bytes actually written - int32 bytes_written = 1; + // Number of bytes accepted by the PTY writer. The PTY engine writes the + // entire buffer atomically and flushes, so this always equals + // `data.len()` on success. `int64` because `data` is unbounded and a + // `usize → int32` cast could wrap on a 2 GiB+ payload (unlikely for a + // PTY, but the contract is the contract). + int64 bytes_written = 1; } // --------------------------------------------------------------------------- @@ -90,15 +93,14 @@ message WriteInputResponse { message ResizeRequest { string session_id = 1; + // Terminal dimensions. Valid range: [1, 65535] (the underlying PTY uses + // u16). Zero is rejected with InvalidArgument — unlike LaunchSession, + // ResizeTerminal has no "default" semantic. uint32 cols = 2; uint32 rows = 3; } -message ResizeResponse { - // Echoed dimensions after resize - uint32 cols = 1; - uint32 rows = 2; -} +message ResizeResponse {} // --------------------------------------------------------------------------- // TerminateSession @@ -106,13 +108,12 @@ message ResizeResponse { message TerminateSessionRequest { string session_id = 1; - // Signal number to send (e.g. 15 = SIGTERM, 9 = SIGKILL). - // Defaults to SIGTERM (15) when 0. - int32 signal = 2; } message TerminateSessionResponse { string session_id = 1; + // False when the session was not in the manager (already cleaned up by the + // natural-exit watcher); true when the handler actively terminated it. bool was_running = 2; } @@ -120,36 +121,17 @@ message TerminateSessionResponse { // ListSessions // --------------------------------------------------------------------------- -message ListSessionsRequest { - // Filter by status. Empty string = all sessions. - // Valid values: "running", "exited", "all" - string status_filter = 1; -} - -// SessionStatus represents the current state of an agent session. -enum SessionStatus { - SESSION_STATUS_UNSPECIFIED = 0; - SESSION_STATUS_RUNNING = 1; - SESSION_STATUS_EXITED = 2; -} +message ListSessionsRequest {} message SessionInfo { string session_id = 1; - string command = 2; - repeated string args = 3; - string cwd = 4; - SessionStatus status = 5; - // exit_code is unset while the session is still running; set to the process - // exit code once status = SESSION_STATUS_EXITED. optional int32 lets callers - // distinguish "running, no exit code yet" from "exited with code 0". - optional int32 exit_code = 6; - int64 created_at = 7; // Unix timestamp (seconds) - int64 exited_at = 8; // Unix timestamp (seconds); 0 if still running - uint32 cols = 9; - uint32 rows = 10; + // Catalogued agent identifier (kebab-case), e.g. "claude-code". + string agent_type = 2; + // Unix timestamp (seconds) when the session was started. + int64 started_at = 3; } message ListSessionsResponse { repeated SessionInfo sessions = 1; - int32 count = 2; + uint32 count = 2; } diff --git a/packages/daemon/src/lib.rs b/packages/daemon/src/lib.rs index 6efeef879..010e7e256 100644 --- a/packages/daemon/src/lib.rs +++ b/packages/daemon/src/lib.rs @@ -30,4 +30,4 @@ pub use nodespace::node_service_client::NodeServiceClient; pub use nodespace::node_service_server::NodeServiceServer; pub use nodespace::{NodeData, SessionInfo}; -pub use services::NodeServiceImpl; +pub use services::{AgentSessionHandler, NodeServiceImpl}; diff --git a/packages/daemon/src/main.rs b/packages/daemon/src/main.rs index c573fdc85..a71a7644a 100644 --- a/packages/daemon/src/main.rs +++ b/packages/daemon/src/main.rs @@ -16,9 +16,13 @@ use std::path::PathBuf; use std::sync::Arc; use anyhow::{Context, Result}; +use nodespace_agent::acp::context_assembly::GraphContextAssembler; +use nodespace_agent::pty::PtySessionManager; use nodespace_core::{NodeService as CoreNodeService, SurrealStore}; use nodespace_daemon::tray::layer::TrayMetricsLayer; -use nodespace_daemon::{tray, NodeServiceImpl, NodeServiceServer}; +use nodespace_daemon::{ + tray, AgentSessionHandler, AgentSessionServiceServer, NodeServiceImpl, NodeServiceServer, +}; use tonic::transport::Server; /// Default address the daemon binds to. ADR-031 standardizes on @@ -106,11 +110,12 @@ async fn serve_headless() -> Result<()> { tracing::info!(db_path = %db_path.display(), %addr, "Starting nodespaced (headless)"); let shutdown = install_shutdown_handler().context("Failed to install signal handlers")?; - let service = build_node_service(&db_path).await?; + let services = build_services(&db_path).await?; tracing::info!(%addr, "gRPC server listening"); Server::builder() - .add_service(NodeServiceServer::new(service)) + .add_service(NodeServiceServer::new(services.node)) + .add_service(AgentSessionServiceServer::new(services.agent_session)) .serve_with_shutdown(addr, shutdown) .await .context("gRPC server terminated with error")?; @@ -128,7 +133,7 @@ async fn serve_grpc(controller: tray::TrayController) -> Result<()> { let signal_shutdown = install_shutdown_handler().context("Failed to install signal handlers")?; - let service = build_node_service(&db_path).await?; + let services = build_services(&db_path).await?; // `TrayController` is `Clone`; one copy goes to the metrics layer, the // other drives the shutdown future. @@ -143,15 +148,23 @@ async fn serve_grpc(controller: tray::TrayController) -> Result<()> { tracing::info!(%addr, "gRPC server listening"); Server::builder() .layer(TrayMetricsLayer::new(controller)) - .add_service(NodeServiceServer::new(service)) + .add_service(NodeServiceServer::new(services.node)) + .add_service(AgentSessionServiceServer::new(services.agent_session)) .serve_with_shutdown(addr, combined_shutdown) .await .context("gRPC server terminated with error")?; Ok(()) } -/// Open the database and assemble the gRPC service implementation. -async fn build_node_service(db_path: &std::path::Path) -> Result { +/// Bundle of gRPC service implementations registered by both server loops. +struct DaemonServices { + node: NodeServiceImpl, + agent_session: AgentSessionHandler, +} + +/// Open the database and assemble every gRPC service implementation the +/// daemon exposes. +async fn build_services(db_path: &std::path::Path) -> Result { if let Some(parent) = db_path.parent() { tokio::fs::create_dir_all(parent).await.with_context(|| { format!("Failed to create database parent dir: {}", parent.display()) @@ -171,8 +184,25 @@ async fn build_node_service(db_path: &std::path::Path) -> Result, + assembler: Arc, +} + +impl AgentSessionHandler { + pub fn new(manager: Arc, assembler: Arc) -> Self { + Self { manager, assembler } + } +} + +#[tonic::async_trait] +impl AgentSessionService for AgentSessionHandler { + async fn launch_session( + &self, + request: Request, + ) -> Result, Status> { + let req = request.into_inner(); + + let agent_type = parse_agent_type(&req.agent_type).map_err(Status::invalid_argument)?; + let id = self + .manager + .launch(agent_type, req.prompt, &self.assembler) + .await + .map_err(|e| Status::internal(format!("launch session failed: {e}")))?; + + // Pin the session via one lookup so (a) `started_at` comes from the + // authoritative PtySession value (matching what ListSessions reports) + // and (b) the optional initial resize cannot race the auto-prune + // watcher into a spurious NotFound for a session we just created. + // `unwrap_or` fallback covers the vanishingly unlikely case where the + // spawned child has already exited and the auto-prune watcher has + // already removed the entry. + let session = self.manager.get(&id).await; + let created_at = session + .as_ref() + .map(|s| s.started_at.timestamp()) + .unwrap_or_else(current_unix_secs); + + // Apply requested dimensions when the caller passed non-zero values. + // Zero on either axis means "keep the engine default" (80x24); + // ResizeTerminal, in contrast, rejects zero outright — see its proto + // comment. + // + // If the auto-prune race removed the entry between launch() and get() + // above, the resize is silently skipped — the response is still Ok + // because the launch itself succeeded; the next RPC against this id + // will naturally return NotFound. Log at warn so the dropped resize is + // visible in server-side traces. + if req.cols != 0 && req.rows != 0 { + match session { + Some(session) => resize_session(&session, req.cols, req.rows).await?, + None => tracing::warn!( + session_id = %id, + cols = req.cols, + rows = req.rows, + "LaunchSession: session auto-pruned before initial resize could apply" + ), + } + } + + Ok(Response::new(LaunchSessionResponse { + session_id: id.to_string(), + created_at, + })) + } + + type StreamOutputStream = + Pin> + Send + 'static>>; + + async fn stream_output( + &self, + request: Request, + ) -> Result, Status> { + let id = + parse_session_id(&request.into_inner().session_id).map_err(Status::invalid_argument)?; + let session = self + .manager + .get(&id) + .await + .ok_or_else(|| Status::not_found(format!("session not found: {id}")))?; + + let mut rx = session.subscribe_output(); + + let stream = async_stream::stream! { + loop { + match rx.recv().await { + Ok(chunk) => { + let timestamp_ms = chunk.timestamp.timestamp_millis(); + yield Ok(OutputChunk { + data: chunk.data, + timestamp_ms, + }); + } + Err(RecvError::Lagged(skipped)) => { + // Client (or this handler) fell behind the broadcast + // buffer. Continue draining rather than tearing the + // stream down — losing a render frame is preferable + // to losing the whole session view. + // + // TODO(#1119 review): Lag is invisible to the client + // today (only a server-side tracing::warn). Options + // for surfacing it: a sentinel OutputChunk with an + // in-band "[N bytes dropped]" notice, or a session- + // level metric on ListSessions. Deferred — current + // behavior matches what a real terminal does when + // the kernel buffer overflows (silent drop). + debug_assert!(skipped > 0, "RecvError::Lagged with zero skipped chunks"); + tracing::warn!( + session_id = %id, + skipped, + "StreamOutput subscriber lagged; some chunks dropped" + ); + continue; + } + Err(RecvError::Closed) => break, + } + } + }; + + Ok(Response::new(Box::pin(stream))) + } + + async fn write_input( + &self, + request: Request, + ) -> Result, Status> { + let req = request.into_inner(); + let id = parse_session_id(&req.session_id).map_err(Status::invalid_argument)?; + let session = self + .manager + .get(&id) + .await + .ok_or_else(|| Status::not_found(format!("session not found: {id}")))?; + + let len = req.data.len(); + session + .write_input(&req.data) + .await + .map_err(|e| Status::internal(format!("write_input failed: {e}")))?; + + // PtySession::write_input writes the entire buffer atomically and + // flushes, so on success bytes_written always equals the input length. + // The proto field is int64 (widened from int32 during PR #1119 review) + // so a 64-bit `usize` cannot truncate — fits the full `data.len()` + // range on every realistic platform. + Ok(Response::new(WriteInputResponse { + bytes_written: len as i64, + })) + } + + async fn resize_terminal( + &self, + request: Request, + ) -> Result, Status> { + let req = request.into_inner(); + let id = parse_session_id(&req.session_id).map_err(Status::invalid_argument)?; + + // Unlike LaunchSession, ResizeTerminal has no "0 means default" + // semantic. Reject zero at the API boundary so the underlying + // portable_pty call never sees PtySize { rows: 0, cols: 0, .. } + // (which is platform-dependent and reliably surprising). + if req.cols == 0 || req.rows == 0 { + return Err(Status::invalid_argument(format!( + "ResizeTerminal requires non-zero dimensions; got cols={}, rows={}", + req.cols, req.rows + ))); + } + + let session = self + .manager + .get(&id) + .await + .ok_or_else(|| Status::not_found(format!("session not found: {id}")))?; + resize_session(&session, req.cols, req.rows).await?; + Ok(Response::new(ResizeResponse {})) + } + + async fn terminate_session( + &self, + request: Request, + ) -> Result, Status> { + let req = request.into_inner(); + let id = parse_session_id(&req.session_id).map_err(Status::invalid_argument)?; + + let was_running = self + .manager + .terminate(&id) + .await + .map_err(|e| Status::internal(format!("terminate failed: {e}")))?; + + Ok(Response::new(TerminateSessionResponse { + session_id: id.to_string(), + was_running, + })) + } + + async fn list_sessions( + &self, + _request: Request, + ) -> Result, Status> { + let metas = self.manager.list().await; + let sessions: Vec = metas + .into_iter() + .map(|m| SessionInfo { + session_id: m.id.to_string(), + agent_type: agent_type_to_string(m.agent_type), + started_at: m.started_at.timestamp(), + }) + .collect(); + + // Saturating cast: the manager's HashMap is `usize`-keyed, but `u32` + // (~4.2B) is well above any realistic session count for a single + // daemon. Saturating instead of wrapping keeps the count monotonic + // for clients that compare snapshots. + let count = u32::try_from(sessions.len()).unwrap_or(u32::MAX); + Ok(Response::new(ListSessionsResponse { sessions, count })) + } +} + +// --------------------------------------------------------------------------- +// Helpers +// --------------------------------------------------------------------------- +// +// The parsers below return `Result` rather than `Result` +// so the small-Ok variants don't trip `clippy::result_large_err` (tonic::Status +// is ~176 bytes and dwarfs `Uuid` / `AgentType`). Call sites map the string +// into the appropriate gRPC status code in one line, keeping the parser logic +// status-agnostic and trivially unit-testable. + +fn parse_session_id(raw: &str) -> Result { + Uuid::from_str(raw).map_err(|e| format!("invalid session_id '{raw}': {e}")) +} + +/// Convert the proto's `agent_type` string into the canonical [`AgentType`]. +/// +/// The only accepted form is the kebab-case serde representation of +/// [`AgentType`] (`"claude-code"`, `"codex"`, `"gemini-cli"`, `"pi"`, +/// `"open-code"`). Snake-case is rejected — CLAUDE.md is explicit that +/// greenfield code carries no backward-compat aliases. +fn parse_agent_type(raw: &str) -> Result { + serde_json::from_value::(serde_json::Value::String(raw.to_string())).map_err(|_| { + format!( + "unknown agent_type '{raw}'; expected one of: claude-code, codex, gemini-cli, pi, open-code" + ) + }) +} + +fn agent_type_to_string(agent_type: AgentType) -> String { + // serde serialization mirrors the kebab-case form parse_agent_type accepts. + // `AgentType` is in-workspace and closed, so the debug-format fallback + // is genuinely unreachable today — it exists as defense-in-depth, not as + // a graceful-degradation path. The right way to add a new variant is to + // extend parse_agent_type / agent_type_to_string together; do NOT rely + // on the fallback to ship a new variant. + serde_json::to_value(agent_type) + .ok() + .and_then(|v| v.as_str().map(str::to_string)) + .unwrap_or_else(|| format!("{agent_type:?}")) +} + +/// Apply a resize to an already-located [`PtySession`]. +/// +/// Takes an `&Arc` rather than a session id so callers that +/// already hold the session (e.g. `launch_session` after its initial +/// lookup) don't take the manager's lock a second time. The `Arc` also +/// guarantees the underlying session can't be auto-pruned between this +/// call and the actual resize — eliminating a small race that would +/// otherwise return `NotFound` for a session we just created. +async fn resize_session(session: &Arc, cols: u32, rows: u32) -> Result<(), Status> { + let cols = u16::try_from(cols) + .map_err(|_| Status::invalid_argument(format!("cols {cols} exceeds u16 range")))?; + let rows = u16::try_from(rows) + .map_err(|_| Status::invalid_argument(format!("rows {rows} exceeds u16 range")))?; + + session + .resize(cols, rows) + .await + .map_err(|e| Status::internal(format!("resize failed: {e}"))) +} + +fn current_unix_secs() -> i64 { + chrono::Utc::now().timestamp() +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn parse_agent_type_accepts_kebab_case() { + assert_eq!( + parse_agent_type("claude-code").unwrap(), + AgentType::ClaudeCode + ); + assert_eq!(parse_agent_type("codex").unwrap(), AgentType::Codex); + assert_eq!( + parse_agent_type("gemini-cli").unwrap(), + AgentType::GeminiCli + ); + assert_eq!(parse_agent_type("pi").unwrap(), AgentType::Pi); + assert_eq!(parse_agent_type("open-code").unwrap(), AgentType::OpenCode); + } + + #[test] + fn parse_agent_type_rejects_snake_case() { + // Snake-case is the proto-comment form from the original #1111 spec + // but was dropped in the #1119 review per CLAUDE.md's no-backwards- + // compat directive. Pin the rejection so a future refactor can't + // silently restore the dual-accept path. + for snake in ["claude_code", "gemini_cli", "open_code"] { + assert!( + parse_agent_type(snake).is_err(), + "snake_case agent_type '{snake}' must be rejected" + ); + } + } + + #[test] + fn parse_agent_type_rejects_unknown() { + let err = parse_agent_type("not-a-real-agent").unwrap_err(); + assert!( + err.contains("not-a-real-agent"), + "error should echo offending input: {err}" + ); + } + + #[test] + fn agent_type_round_trips_through_string() { + for t in [ + AgentType::ClaudeCode, + AgentType::Codex, + AgentType::GeminiCli, + AgentType::Pi, + AgentType::OpenCode, + ] { + let s = agent_type_to_string(t); + assert_eq!(parse_agent_type(&s).unwrap(), t); + } + } + + #[test] + fn parse_session_id_rejects_garbage() { + let err = parse_session_id("not-a-uuid").unwrap_err(); + assert!( + err.contains("not-a-uuid"), + "error should echo offending input: {err}" + ); + } +} diff --git a/packages/daemon/src/services/mod.rs b/packages/daemon/src/services/mod.rs index 42e8d3d65..68bb29da6 100644 --- a/packages/daemon/src/services/mod.rs +++ b/packages/daemon/src/services/mod.rs @@ -1,8 +1,10 @@ //! gRPC service implementations exposed by `nodespaced`. //! -//! Each module wraps a slice of `packages/core` business logic and adapts it -//! to the tonic-generated service trait. +//! Each module wraps a slice of `packages/core` or `packages/agent` business +//! logic and adapts it to the tonic-generated service trait. +pub mod agent_session_service; pub mod node_service; +pub use agent_session_service::AgentSessionHandler; pub use node_service::NodeServiceImpl; diff --git a/packages/daemon/src/services/node_service.rs b/packages/daemon/src/services/node_service.rs index ae4ff8a8c..eab28dd63 100644 --- a/packages/daemon/src/services/node_service.rs +++ b/packages/daemon/src/services/node_service.rs @@ -13,7 +13,9 @@ use std::sync::Arc; use chrono::{DateTime, Utc}; use nodespace_core::db::events::DomainEvent; -use nodespace_core::models::{Node, NodeQuery, NodeUpdate, TaskNodeUpdate, TaskPriority, TaskStatus}; +use nodespace_core::models::{ + Node, NodeQuery, NodeUpdate, TaskNodeUpdate, TaskPriority, TaskStatus, +}; use nodespace_core::ops::{ search_ops::{self, SearchSemanticInput}, OpsError, diff --git a/packages/daemon/tests/agent_session_grpc.rs b/packages/daemon/tests/agent_session_grpc.rs new file mode 100644 index 000000000..ea099dbe5 --- /dev/null +++ b/packages/daemon/tests/agent_session_grpc.rs @@ -0,0 +1,406 @@ +//! End-to-end gRPC integration test for `AgentSessionService`. +//! +//! Spins up the tonic server in-process with a real `PtySessionManager` and +//! exercises the streaming-output path against a real PTY session. +//! +//! The production `LaunchSession` RPC requires a catalogued agent binary +//! (`claude`, `codex`, ...) on `PATH`, which CI does not have. To keep the +//! test hermetic the session is built directly with [`PtySession::launch_for_test`] +//! (exposed via the agent crate's `testing` feature) and inserted into the +//! manager bypassing the launch path. Every other RPC — `StreamOutput`, +//! `WriteInput`, `ResizeTerminal`, `TerminateSession`, `ListSessions` — runs +//! through the full gRPC stack. + +#![cfg(unix)] // PtySession::launch_for_test spawns shell utilities by name. + +use std::sync::Arc; +use std::time::Duration; + +use nodespace_agent::acp::context_assembly::GraphContextAssembler; +use nodespace_agent::pty::{PtySession, PtySessionManager}; +use nodespace_core::{NodeService as CoreNodeService, SurrealStore}; +use nodespace_daemon::nodespace::{ + ListSessionsRequest, ResizeRequest, StreamOutputRequest, TerminateSessionRequest, + WriteInputRequest, +}; +use nodespace_daemon::{AgentSessionHandler, AgentSessionServiceClient, AgentSessionServiceServer}; +use tempfile::TempDir; +use tokio::net::TcpListener; +use tokio::sync::oneshot; +use tokio::time::timeout; +use tokio_stream::StreamExt; +use tonic::transport::Server; +use tonic::Code; + +type Client = AgentSessionServiceClient; + +/// Bring up the agent-session gRPC server in-process and return a connected +/// client plus the shared manager (so tests can seed sessions directly), the +/// shutdown sender, and the tempdir that backs the SurrealStore. Holding the +/// tempdir in the returned tuple keeps it alive past the test body. +async fn spawn_test_daemon() -> (Client, Arc, oneshot::Sender<()>, TempDir) { + let tempdir = TempDir::new().expect("tempdir"); + + // The assembler holds a NodeService handle even though our tests bypass + // LaunchSession. SurrealStore is the only realistic way to produce one. + let mut store = Arc::new( + SurrealStore::new(tempdir.path().join("daemon-db")) + .await + .expect("SurrealStore"), + ); + let node_service = Arc::new(CoreNodeService::new(&mut store).await.expect("NodeService")); + + let manager = Arc::new(PtySessionManager::new()); + let assembler = Arc::new(GraphContextAssembler::new(node_service, None)); + let handler = AgentSessionHandler::new(manager.clone(), assembler); + + let listener = TcpListener::bind("127.0.0.1:0") + .await + .expect("bind ephemeral port"); + let addr = listener.local_addr().expect("local_addr"); + let incoming = tokio_stream::wrappers::TcpListenerStream::new(listener); + + let (shutdown_tx, shutdown_rx) = oneshot::channel::<()>(); + + tokio::spawn(async move { + Server::builder() + .add_service(AgentSessionServiceServer::new(handler)) + .serve_with_incoming_shutdown(incoming, async move { + let _ = shutdown_rx.await; + }) + .await + .expect("server crashed"); + }); + + let endpoint = format!("http://{}", addr); + let mut last_err = None; + for _ in 0..50 { + match AgentSessionServiceClient::connect(endpoint.clone()).await { + Ok(client) => return (client, manager, shutdown_tx, tempdir), + Err(e) => { + last_err = Some(e); + tokio::time::sleep(Duration::from_millis(25)).await; + } + } + } + panic!("failed to connect to in-process daemon: {:?}", last_err); +} + +/// Pull chunks from a server-streaming response until the accumulated output +/// contains `needle` or `deadline` elapses, returning everything collected. +async fn collect_until( + stream: &mut tonic::Streaming, + needle: &str, + deadline: Duration, +) -> Vec { + let mut collected = Vec::new(); + let _ = timeout(deadline, async { + while let Some(item) = stream.next().await { + match item { + Ok(chunk) => { + collected.extend_from_slice(&chunk.data); + if std::str::from_utf8(&collected) + .map(|s| s.contains(needle)) + .unwrap_or(false) + { + return; + } + } + Err(_) => return, + } + } + }) + .await; + collected +} + +#[tokio::test] +async fn stream_output_delivers_echo_hello() { + let (mut client, manager, shutdown, _tempdir) = spawn_test_daemon().await; + + // The session runs through the full PTY pipeline so StreamOutput sees + // real broadcast traffic. We delay the echo by 200 ms so the + // `client.stream_output(...)` subscriber has time to attach before any + // bytes hit the broadcast channel — `tokio::sync::broadcast` does not + // replay missed messages to late subscribers, so a bare `echo hello` + // races: on a fast machine the reader can drain the PTY and broadcast + // the chunk before our gRPC client opens the stream. + let session = + PtySession::launch_for_test("sh", vec!["-c".into(), "sleep 0.2 && echo hello".into()]) + .expect("launch echo session"); + let id = manager.insert(session).await; + + let mut stream = client + .stream_output(StreamOutputRequest { + session_id: id.to_string(), + }) + .await + .expect("stream_output rpc accepted") + .into_inner(); + + let collected = collect_until(&mut stream, "hello", Duration::from_secs(3)).await; + let text = String::from_utf8_lossy(&collected); + assert!( + text.contains("hello"), + "expected 'hello' in PTY output, got: {:?}", + text + ); + + let _ = shutdown.send(()); +} + +#[tokio::test] +async fn list_sessions_reflects_manager_state() { + let (mut client, manager, shutdown, _tempdir) = spawn_test_daemon().await; + + let empty = client + .list_sessions(ListSessionsRequest {}) + .await + .expect("list_sessions empty") + .into_inner(); + assert_eq!(empty.count, 0); + assert!(empty.sessions.is_empty()); + + let session = PtySession::launch_for_test("sh", vec!["-c".into(), "sleep 30".into()]) + .expect("launch sleep session"); + let id = manager.insert(session).await; + + let listed = client + .list_sessions(ListSessionsRequest {}) + .await + .expect("list_sessions populated") + .into_inner(); + assert_eq!(listed.count, 1); + assert_eq!(listed.sessions[0].session_id, id.to_string()); + assert_eq!(listed.sessions[0].agent_type, "claude-code"); + assert!(listed.sessions[0].started_at > 0); + + // Cleanup so the test does not leak a sleeping child past the shutdown. + client + .terminate_session(TerminateSessionRequest { + session_id: id.to_string(), + }) + .await + .expect("terminate rpc"); + + let _ = shutdown.send(()); +} + +#[tokio::test] +async fn write_input_is_echoed_back_through_stream() { + let (mut client, manager, shutdown, _tempdir) = spawn_test_daemon().await; + + // `cat` echoes stdin back to stdout, which the PTY then loops back to its + // output stream. Lets us round-trip WriteInput → StreamOutput through gRPC. + let session = PtySession::launch_for_test("cat", vec![]).expect("launch cat"); + let id = manager.insert(session).await; + + let mut stream = client + .stream_output(StreamOutputRequest { + session_id: id.to_string(), + }) + .await + .expect("stream_output rpc") + .into_inner(); + + let written = client + .write_input(WriteInputRequest { + session_id: id.to_string(), + data: b"ping\n".to_vec(), + }) + .await + .expect("write_input rpc") + .into_inner(); + assert_eq!(written.bytes_written, 5); + + let collected = collect_until(&mut stream, "ping", Duration::from_secs(3)).await; + assert!( + String::from_utf8_lossy(&collected).contains("ping"), + "expected 'ping' echoed back, got: {:?}", + String::from_utf8_lossy(&collected) + ); + + // Tear down the cat session through TerminateSession so the test exercises + // the terminate RPC too. + let term = client + .terminate_session(TerminateSessionRequest { + session_id: id.to_string(), + }) + .await + .expect("terminate rpc") + .into_inner(); + assert!( + term.was_running, + "cat session was running, should report true" + ); + assert_eq!(term.session_id, id.to_string()); + + let _ = shutdown.send(()); +} + +#[tokio::test] +async fn resize_terminal_succeeds_for_active_session() { + let (mut client, manager, shutdown, _tempdir) = spawn_test_daemon().await; + + let session = PtySession::launch_for_test("sh", vec!["-c".into(), "sleep 5".into()]) + .expect("launch sleep"); + let id = manager.insert(session).await; + + client + .resize_terminal(ResizeRequest { + session_id: id.to_string(), + cols: 120, + rows: 40, + }) + .await + .expect("resize rpc"); + + client + .terminate_session(TerminateSessionRequest { + session_id: id.to_string(), + }) + .await + .expect("terminate rpc"); + + let _ = shutdown.send(()); +} + +#[tokio::test] +async fn resize_terminal_rejects_zero_dimensions() { + // Unlike LaunchSession (where 0 means "use engine default"), ResizeTerminal + // rejects zero on either axis. Pins the API-boundary contract documented + // on ResizeRequest.proto. + let (mut client, manager, shutdown, _tempdir) = spawn_test_daemon().await; + + let session = PtySession::launch_for_test("sh", vec!["-c".into(), "sleep 5".into()]) + .expect("launch sleep"); + let id = manager.insert(session).await; + + for (cols, rows) in [(0u32, 40u32), (120, 0), (0, 0)] { + let err = client + .resize_terminal(ResizeRequest { + session_id: id.to_string(), + cols, + rows, + }) + .await + .expect_err(&format!("resize with cols={cols}, rows={rows} should fail")); + assert_eq!(err.code(), Code::InvalidArgument); + } + + client + .terminate_session(TerminateSessionRequest { + session_id: id.to_string(), + }) + .await + .expect("terminate rpc"); + + let _ = shutdown.send(()); +} + +#[tokio::test] +async fn stream_output_disconnect_does_not_kill_session() { + let (mut client, manager, shutdown, _tempdir) = spawn_test_daemon().await; + + // A long-running session: `cat` waits on stdin forever. If dropping the + // stream killed the session, the manager's auto-prune would remove it + // because the watcher would observe the child exiting. + let session = PtySession::launch_for_test("cat", vec![]).expect("launch cat"); + let id = manager.insert(session).await; + + { + // Open the stream, then drop it immediately. tonic should close the + // client end of the broadcast subscription without touching the + // underlying session. + let _stream = client + .stream_output(StreamOutputRequest { + session_id: id.to_string(), + }) + .await + .expect("stream_output rpc") + .into_inner(); + } + + // Give any spurious cleanup task time to run before we check. + tokio::time::sleep(Duration::from_millis(200)).await; + + let listed = client + .list_sessions(ListSessionsRequest {}) + .await + .expect("list_sessions") + .into_inner(); + assert_eq!( + listed.count, 1, + "session must survive a client stream disconnect" + ); + assert_eq!(listed.sessions[0].session_id, id.to_string()); + + client + .terminate_session(TerminateSessionRequest { + session_id: id.to_string(), + }) + .await + .expect("terminate rpc"); + + let _ = shutdown.send(()); +} + +#[tokio::test] +async fn unknown_session_returns_not_found() { + let (mut client, _manager, shutdown, _tempdir) = spawn_test_daemon().await; + + let bogus = uuid::Uuid::new_v4().to_string(); + + let err = client + .stream_output(StreamOutputRequest { + session_id: bogus.clone(), + }) + .await + .expect_err("expected NotFound for unknown session"); + assert_eq!(err.code(), Code::NotFound); + + let err = client + .write_input(WriteInputRequest { + session_id: bogus.clone(), + data: vec![1, 2, 3], + }) + .await + .expect_err("expected NotFound for unknown session"); + assert_eq!(err.code(), Code::NotFound); + + let _ = shutdown.send(()); +} + +#[tokio::test] +async fn invalid_session_id_returns_invalid_argument() { + let (mut client, _manager, shutdown, _tempdir) = spawn_test_daemon().await; + + let err = client + .terminate_session(TerminateSessionRequest { + session_id: "not-a-uuid".into(), + }) + .await + .expect_err("expected InvalidArgument for bad UUID"); + assert_eq!(err.code(), Code::InvalidArgument); + + let _ = shutdown.send(()); +} + +#[tokio::test] +async fn terminate_unknown_session_reports_was_not_running() { + let (mut client, _manager, shutdown, _tempdir) = spawn_test_daemon().await; + + let bogus = uuid::Uuid::new_v4().to_string(); + let resp = client + .terminate_session(TerminateSessionRequest { + session_id: bogus.clone(), + }) + .await + .expect("terminate rpc") + .into_inner(); + + assert!(!resp.was_running); + assert_eq!(resp.session_id, bogus); + + let _ = shutdown.send(()); +} diff --git a/packages/daemon/tests/grpc_round_trip.rs b/packages/daemon/tests/grpc_round_trip.rs index 87c082af0..0b1e14b7b 100644 --- a/packages/daemon/tests/grpc_round_trip.rs +++ b/packages/daemon/tests/grpc_round_trip.rs @@ -93,6 +93,8 @@ async fn create_then_get_round_trip() { properties: String::new(), collection: String::new(), lifecycle_status: String::new(), + id: String::new(), + insert_after_node_id: String::new(), }) .await .expect("create_node failed") @@ -133,6 +135,8 @@ async fn update_increments_version() { properties: String::new(), collection: String::new(), lifecycle_status: String::new(), + id: String::new(), + insert_after_node_id: String::new(), }) .await .expect("create_node failed") @@ -176,6 +180,8 @@ async fn get_children_returns_parent_subtree() { properties: String::new(), collection: String::new(), lifecycle_status: String::new(), + id: String::new(), + insert_after_node_id: String::new(), }) .await .expect("create parent") @@ -190,6 +196,8 @@ async fn get_children_returns_parent_subtree() { properties: String::new(), collection: String::new(), lifecycle_status: String::new(), + id: String::new(), + insert_after_node_id: String::new(), }) .await .expect("create child"); @@ -239,6 +247,8 @@ async fn delete_node_marks_existed() { properties: String::new(), collection: String::new(), lifecycle_status: String::new(), + id: String::new(), + insert_after_node_id: String::new(), }) .await .expect("create_node failed") @@ -335,6 +345,8 @@ async fn watch_nodes_receives_create_update_delete_events() { properties: String::new(), collection: String::new(), lifecycle_status: String::new(), + id: String::new(), + insert_after_node_id: String::new(), }) .await .expect("create_node failed") @@ -422,6 +434,8 @@ async fn watch_nodes_supports_multiple_concurrent_watchers() { properties: String::new(), collection: String::new(), lifecycle_status: String::new(), + id: String::new(), + insert_after_node_id: String::new(), }) .await .expect("create_node failed") @@ -481,6 +495,8 @@ async fn watch_nodes_closes_when_client_drops_stream() { properties: String::new(), collection: String::new(), lifecycle_status: String::new(), + id: String::new(), + insert_after_node_id: String::new(), }) .await .expect("create_node failed"); @@ -508,6 +524,8 @@ async fn create_node_rejects_malformed_properties() { properties: "{not valid json".into(), collection: String::new(), lifecycle_status: String::new(), + id: String::new(), + insert_after_node_id: String::new(), }) .await .expect_err("expected invalid_argument");