From 4c0beb2a2ab63919fc044a496b1ff3b37e1ed9d8 Mon Sep 17 00:00:00 2001 From: reya Date: Sat, 21 Feb 2026 07:53:24 +0700 Subject: [PATCH] update deps --- Cargo.lock | 1304 +++++++++++++++++++++-- Cargo.toml | 4 +- crates/auto_update/Cargo.toml | 1 - crates/auto_update/src/lib.rs | 128 +-- crates/chat_ui/src/lib.rs | 6 +- crates/common/Cargo.toml | 1 - crates/common/src/lib.rs | 2 - crates/common/src/nip05.rs | 31 - crates/coop/Cargo.toml | 3 + crates/coop/src/main.rs | 2 +- crates/coop/src/panels/profile.rs | 6 +- crates/state/Cargo.toml | 3 +- crates/state/src/lib.rs | 2 + crates/{common => state}/src/nip96.rs | 2 +- crates/theme/src/lib.rs | 4 + crates/title_bar/src/lib.rs | 163 +-- crates/title_bar/src/platforms/linux.rs | 74 +- rust-toolchain.toml | 2 +- 18 files changed, 1434 insertions(+), 304 deletions(-) delete mode 100644 crates/common/src/nip05.rs rename crates/{common => state}/src/nip96.rs (98%) diff --git a/Cargo.lock b/Cargo.lock index c69a776..7e641e4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -45,6 +45,19 @@ version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0453232ace82dee0dd0b4c87a59bd90f7b53b314f3e0f61fe2ee7c8a16482289" +[[package]] +name = "ahash" +version = "0.8.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" +dependencies = [ + "cfg-if", + "const-random", + "once_cell", + "version_check", + "zerocopy", +] + [[package]] name = "aho-corasick" version = "1.1.4" @@ -72,6 +85,12 @@ dependencies = [ "equator", ] +[[package]] +name = "allocator-api2" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" + [[package]] name = "android_system_properties" version = "0.1.5" @@ -133,9 +152,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.101" +version = "1.0.102" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f0e0fee31ef5ed1ba1316088939cea399010ed7731dba877ed44aeb407a75ea" +checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" [[package]] name = "ar_archive_writer" @@ -175,6 +194,12 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" +[[package]] +name = "as-raw-xcb-connection" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "175571dd1d178ced59193a6fc02dde1b972eb0bc56c892cde9beeceac5bf0f6b" + [[package]] name = "as-slice" version = "0.2.1" @@ -184,6 +209,15 @@ dependencies = [ "stable_deref_trait", ] +[[package]] +name = "ash" +version = "0.38.0+1.3.281" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bb44936d800fea8f016d7f2311c6a4f97aebd5dc86f09906139ec848cf3a46f" +dependencies = [ + "libloading", +] + [[package]] name = "ashpd" version = "0.12.2" @@ -199,6 +233,9 @@ dependencies = [ "serde", "serde_repr", "url", + "wayland-backend", + "wayland-client", + "wayland-protocols", "zbus", ] @@ -509,7 +546,6 @@ dependencies = [ "gpui", "gpui_tokio", "log", - "reqwest", "semver", "serde", "serde_json", @@ -831,6 +867,18 @@ dependencies = [ "tracing", ] +[[package]] +name = "calloop-wayland-source" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "138efcf0940a02ebf0cc8d1eff41a1682a46b431630f4c52450d6265876021fa" +dependencies = [ + "calloop", + "rustix 1.1.3", + "wayland-backend", + "wayland-client", +] + [[package]] name = "cbc" version = "0.1.2" @@ -1070,6 +1118,22 @@ dependencies = [ "cc", ] +[[package]] +name = "cocoa" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6140449f97a6e97f9511815c5632d84c8aacf8ac271ad77c559218161a1373c" +dependencies = [ + "bitflags 1.3.2", + "block", + "cocoa-foundation 0.1.2", + "core-foundation 0.9.4", + "core-graphics 0.23.2", + "foreign-types 0.5.0", + "libc", + "objc", +] + [[package]] name = "cocoa" version = "0.26.0" @@ -1078,7 +1142,7 @@ checksum = "f79398230a6e2c08f5c9760610eb6924b52aa9e7950a619602baba59dcbbdbb2" dependencies = [ "bitflags 2.11.0", "block", - "cocoa-foundation", + "cocoa-foundation 0.2.0", "core-foundation 0.10.0", "core-graphics 0.24.0", "foreign-types 0.5.0", @@ -1086,6 +1150,20 @@ dependencies = [ "objc", ] +[[package]] +name = "cocoa-foundation" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c6234cbb2e4c785b456c0644748b1ac416dd045799740356f8363dfe00c93f7" +dependencies = [ + "bitflags 1.3.2", + "block", + "core-foundation 0.9.4", + "core-graphics-types 0.1.3", + "libc", + "objc", +] + [[package]] name = "cocoa-foundation" version = "0.2.0" @@ -1106,13 +1184,15 @@ version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fe6d2e5af09e8c8ad56c969f2157a3d4238cebc7c55f0a517728c38f7b200f81" dependencies = [ + "serde", + "termcolor", "unicode-width", ] [[package]] name = "collections" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#aa91fd4a964b02878e7928f50eaeac0ba2c922f3" +source = "git+https://github.com/zed-industries/zed#930d9321dc66d7fc8a2f7d977f668431c9549b33" dependencies = [ "indexmap", "rustc-hash 2.1.1", @@ -1164,7 +1244,6 @@ dependencies = [ "nostr", "nostr-sdk", "qrcode", - "reqwest", "smallvec", "smol", ] @@ -1196,6 +1275,26 @@ dependencies = [ "crossbeam-utils", ] +[[package]] +name = "const-random" +version = "0.1.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87e00182fe74b066627d63b85fd550ac2998d4b0bd86bfed477a0ae4c7c71359" +dependencies = [ + "const-random-macro", +] + +[[package]] +name = "const-random-macro" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e" +dependencies = [ + "getrandom 0.2.17", + "once_cell", + "tiny-keccak", +] + [[package]] name = "convert_case" version = "0.4.0" @@ -1215,8 +1314,11 @@ dependencies = [ "device", "futures", "gpui", + "gpui_linux", + "gpui_macos", "gpui_platform", "gpui_tokio", + "gpui_windows", "indexset", "itertools 0.13.0", "key_store", @@ -1266,6 +1368,19 @@ version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" +[[package]] +name = "core-graphics" +version = "0.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c07782be35f9e1140080c6b96f0d44b739e2278479f64e02fdab4e32dfd8b081" +dependencies = [ + "bitflags 1.3.2", + "core-foundation 0.9.4", + "core-graphics-types 0.1.3", + "foreign-types 0.5.0", + "libc", +] + [[package]] name = "core-graphics" version = "0.24.0" @@ -1292,6 +1407,19 @@ dependencies = [ "libc", ] +[[package]] +name = "core-graphics-helmer-fork" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32eb7c354ae9f6d437a6039099ce7ecd049337a8109b23d73e48e8ffba8e9cd5" +dependencies = [ + "bitflags 2.11.0", + "core-foundation 0.9.4", + "core-graphics-types 0.1.3", + "foreign-types 0.5.0", + "libc", +] + [[package]] name = "core-graphics-types" version = "0.1.3" @@ -1349,7 +1477,7 @@ dependencies = [ "core-graphics2", "io-surface", "libc", - "metal", + "metal 0.29.0", ] [[package]] @@ -1370,6 +1498,30 @@ dependencies = [ "libm", ] +[[package]] +name = "cosmic-text" +version = "0.17.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d8c4e3a1d02f5269ed15c2d70b4647167856f66f228dcdf99050ab77bbb5a56" +dependencies = [ + "bitflags 2.11.0", + "fontdb", + "harfrust", + "linebender_resource_handle", + "log", + "rangemap", + "rustc-hash 2.1.1", + "self_cell", + "skrifa 0.40.0", + "smol_str", + "swash", + "sys-locale", + "unicode-bidi", + "unicode-linebreak", + "unicode-script", + "unicode-segmentation", +] + [[package]] name = "cpufeatures" version = "0.2.17" @@ -1489,7 +1641,7 @@ dependencies = [ [[package]] name = "derive_refineable" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#aa91fd4a964b02878e7928f50eaeac0ba2c922f3" +source = "git+https://github.com/zed-industries/zed#930d9321dc66d7fc8a2f7d977f668431c9549b33" dependencies = [ "proc-macro2", "quote", @@ -1566,6 +1718,12 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "dispatch" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" + [[package]] name = "displaydoc" version = "0.2.5" @@ -1595,6 +1753,21 @@ dependencies = [ "rand 0.8.5", ] +[[package]] +name = "document-features" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4b8a88685455ed29a21542a33abd9cb6510b6b129abadabdcef0f4c55bc8f61" +dependencies = [ + "litrs", +] + +[[package]] +name = "downcast-rs" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" + [[package]] name = "doxygen-rs" version = "0.4.2" @@ -1860,6 +2033,17 @@ dependencies = [ "nix 0.29.0", ] +[[package]] +name = "filedescriptor" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e40758ed24c9b2eeb76c35fb0aebc66c626084edd827e07e1552279814c6682d" +dependencies = [ + "libc", + "thiserror 1.0.69", + "winapi", +] + [[package]] name = "filetime" version = "0.2.27" @@ -1963,6 +2147,15 @@ dependencies = [ "bytemuck", ] +[[package]] +name = "font-types" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1e4d2d0cf79d38430cc9dc9aadec84774bff2e1ba30ae2bf6c16cfce9385a23" +dependencies = [ + "bytemuck", +] + [[package]] name = "fontconfig-parser" version = "0.5.8" @@ -2218,6 +2411,16 @@ dependencies = [ "version_check", ] +[[package]] +name = "gethostname" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bd49230192a3797a9a4d6abe9b3eed6f7fa4c8a8a4947977c6f80025f92cbd8" +dependencies = [ + "rustix 1.1.3", + "windows-link 0.2.1", +] + [[package]] name = "getrandom" version = "0.2.17" @@ -2274,6 +2477,17 @@ version = "0.32.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e629b9b98ef3dd8afe6ca2bd0f89306cec16d43d907889945bc5d6687f2f13c7" +[[package]] +name = "gl_generator" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a95dfc23a2b4a9a2f5ab41d194f8bfda3cabec42af4e39f08c339eb2a0c124d" +dependencies = [ + "khronos_api", + "log", + "xml-rs", +] + [[package]] name = "glob" version = "0.3.3" @@ -2305,10 +2519,65 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "glow" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5e5ea60d70410161c8bf5da3fdfeaa1c72ed2c15f8bbb9d19fe3a4fad085f08" +dependencies = [ + "js-sys", + "slotmap", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "glutin_wgl_sys" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c4ee00b289aba7a9e5306d57c2d05499b2e5dc427f84ac708bd2c090212cf3e" +dependencies = [ + "gl_generator", +] + +[[package]] +name = "gpu-allocator" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51255ea7cfaadb6c5f1528d43e92a82acb2b96c43365989a28b2d44ee38f8795" +dependencies = [ + "ash", + "hashbrown 0.16.1", + "log", + "presser", + "thiserror 2.0.18", + "windows 0.62.2", +] + +[[package]] +name = "gpu-descriptor" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b89c83349105e3732062a895becfc71a8f921bb71ecbbdd8ff99263e3b53a0ca" +dependencies = [ + "bitflags 2.11.0", + "gpu-descriptor-types", + "hashbrown 0.15.5", +] + +[[package]] +name = "gpu-descriptor-types" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdf242682df893b86f33a73828fb09ca4b2d3bb6cc95249707fc684d27484b91" +dependencies = [ + "bitflags 2.11.0", +] + [[package]] name = "gpui" version = "0.2.2" -source = "git+https://github.com/zed-industries/zed#aa91fd4a964b02878e7928f50eaeac0ba2c922f3" +source = "git+https://github.com/zed-industries/zed#930d9321dc66d7fc8a2f7d977f668431c9549b33" dependencies = [ "anyhow", "async-task", @@ -2318,8 +2587,8 @@ dependencies = [ "cbindgen", "chrono", "circular-buffer", - "cocoa", - "cocoa-foundation", + "cocoa 0.26.0", + "cocoa-foundation 0.2.0", "collections", "core-foundation 0.10.0", "core-foundation-sys", @@ -2341,7 +2610,7 @@ dependencies = [ "lyon", "mach2", "media", - "metal", + "metal 0.29.0", "naga", "num_cpus", "objc", @@ -2374,26 +2643,35 @@ dependencies = [ "util_macros", "uuid", "waker-fn", - "windows", + "windows 0.61.3", "zed-font-kit", + "zed-scap", ] [[package]] name = "gpui_linux" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#aa91fd4a964b02878e7928f50eaeac0ba2c922f3" +source = "git+https://github.com/zed-industries/zed#930d9321dc66d7fc8a2f7d977f668431c9549b33" dependencies = [ "anyhow", + "as-raw-xcb-connection", + "ashpd", + "bitflags 2.11.0", "bytemuck", "calloop", + "calloop-wayland-source", "collections", + "cosmic-text", + "filedescriptor", "futures", "gpui", + "gpui_wgpu", "http_client", "itertools 0.14.0", "libc", "log", "oo7", + "open", "parking_lot", "pathfinder_geometry", "profiling", @@ -2404,19 +2682,31 @@ dependencies = [ "swash", "util", "uuid", + "wayland-backend", + "wayland-client", + "wayland-cursor", + "wayland-protocols", + "wayland-protocols-plasma", + "wayland-protocols-wlr", + "x11-clipboard", + "x11rb", + "xkbcommon", + "zed-font-kit", + "zed-scap", + "zed-xim", ] [[package]] name = "gpui_macos" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#aa91fd4a964b02878e7928f50eaeac0ba2c922f3" +source = "git+https://github.com/zed-industries/zed#930d9321dc66d7fc8a2f7d977f668431c9549b33" dependencies = [ "anyhow", "async-task", "bindgen", "block", "cbindgen", - "cocoa", + "cocoa 0.26.0", "collections", "core-foundation 0.10.0", "core-foundation-sys", @@ -2435,7 +2725,7 @@ dependencies = [ "log", "mach2", "media", - "metal", + "metal 0.29.0", "objc", "parking_lot", "pathfinder_geometry", @@ -2450,7 +2740,7 @@ dependencies = [ [[package]] name = "gpui_macros" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#aa91fd4a964b02878e7928f50eaeac0ba2c922f3" +source = "git+https://github.com/zed-industries/zed#930d9321dc66d7fc8a2f7d977f668431c9549b33" dependencies = [ "heck 0.5.0", "proc-macro2", @@ -2461,7 +2751,7 @@ dependencies = [ [[package]] name = "gpui_platform" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#aa91fd4a964b02878e7928f50eaeac0ba2c922f3" +source = "git+https://github.com/zed-industries/zed#930d9321dc66d7fc8a2f7d977f668431c9549b33" dependencies = [ "gpui", "gpui_linux", @@ -2472,7 +2762,7 @@ dependencies = [ [[package]] name = "gpui_tokio" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#aa91fd4a964b02878e7928f50eaeac0ba2c922f3" +source = "git+https://github.com/zed-industries/zed#930d9321dc66d7fc8a2f7d977f668431c9549b33" dependencies = [ "anyhow", "gpui", @@ -2480,10 +2770,29 @@ dependencies = [ "util", ] +[[package]] +name = "gpui_wgpu" +version = "0.1.0" +source = "git+https://github.com/zed-industries/zed#930d9321dc66d7fc8a2f7d977f668431c9549b33" +dependencies = [ + "anyhow", + "bytemuck", + "collections", + "etagere", + "gpui", + "log", + "parking_lot", + "profiling", + "raw-window-handle", + "smol", + "util", + "wgpu", +] + [[package]] name = "gpui_windows" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#aa91fd4a964b02878e7928f50eaeac0ba2c922f3" +source = "git+https://github.com/zed-industries/zed#930d9321dc66d7fc8a2f7d977f668431c9549b33" dependencies = [ "anyhow", "collections", @@ -2499,9 +2808,9 @@ dependencies = [ "smallvec", "util", "uuid", - "windows", + "windows 0.61.3", "windows-core 0.61.2", - "windows-numerics", + "windows-numerics 0.2.0", "windows-registry 0.5.3", ] @@ -2542,15 +2851,34 @@ dependencies = [ "zerocopy", ] +[[package]] +name = "harfrust" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f9f40651a03bc0f7316bd75267ff5767e93017ef3cfffe76c6aa7252cc5a31c" +dependencies = [ + "bitflags 2.11.0", + "bytemuck", + "core_maths", + "read-fonts 0.37.0", + "smallvec", +] + [[package]] name = "hashbrown" version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04" dependencies = [ - "ahash", + "ahash 0.4.8", ] +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" + [[package]] name = "hashbrown" version = "0.15.5" @@ -2566,6 +2894,8 @@ version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" dependencies = [ + "allocator-api2", + "equivalent", "foldhash 0.2.0", ] @@ -2705,7 +3035,7 @@ dependencies = [ [[package]] name = "http_client" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#aa91fd4a964b02878e7928f50eaeac0ba2c922f3" +source = "git+https://github.com/zed-industries/zed#930d9321dc66d7fc8a2f7d977f668431c9549b33" dependencies = [ "anyhow", "async-compression", @@ -2730,7 +3060,7 @@ dependencies = [ [[package]] name = "http_client_tls" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#aa91fd4a964b02878e7928f50eaeac0ba2c922f3" +source = "git+https://github.com/zed-industries/zed#930d9321dc66d7fc8a2f7d977f668431c9549b33" dependencies = [ "rustls", "rustls-platform-verifier", @@ -2819,7 +3149,7 @@ dependencies = [ "tokio", "tower-service", "tracing", - "windows-registry 0.6.1", + "windows-registry 0.5.3", ] [[package]] @@ -3088,6 +3418,25 @@ dependencies = [ "serde", ] +[[package]] +name = "is-docker" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "928bae27f42bc99b60d9ac7334e3a21d10ad8f1835a4e12ec3ec0464765ed1b3" +dependencies = [ + "once_cell", +] + +[[package]] +name = "is-wsl" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "173609498df190136aa7dea1a91db051746d339e18476eed5ca40521f02d7aa5" +dependencies = [ + "is-docker", + "once_cell", +] + [[package]] name = "is_terminal_polyfill" version = "1.70.2" @@ -3152,9 +3501,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.85" +version = "0.3.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c942ebf8e95485ca0d52d97da7c5a2c387d0e7f0ba4c35e93bfcaee045955b3" +checksum = "d36139f1c97c42c0c86a411910b04e48d4939a0376e6e0f989420cbdee0120e5" dependencies = [ "once_cell", "wasm-bindgen", @@ -3176,6 +3525,23 @@ dependencies = [ "smol", ] +[[package]] +name = "khronos-egl" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6aae1df220ece3c0ada96b8153459b67eebe9ae9212258bb0134ae60416fdf76" +dependencies = [ + "libc", + "libloading", + "pkg-config", +] + +[[package]] +name = "khronos_api" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc" + [[package]] name = "kurbo" version = "0.11.3" @@ -3275,6 +3641,12 @@ dependencies = [ "redox_syscall 0.7.1", ] +[[package]] +name = "linebender_resource_handle" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4a5ff6bcca6c4867b1c4fd4ef63e4db7436ef363e0ad7531d1558856bae64f4" + [[package]] name = "linicon" version = "2.3.0" @@ -3316,6 +3688,12 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" +[[package]] +name = "litrs" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11d3d7f243d5c5a8b9bb5d6dd2b1602c0cb0b9db1621bafc7ed66e35ff9fe092" + [[package]] name = "lmdb-master-sys" version = "0.2.5" @@ -3479,7 +3857,7 @@ dependencies = [ [[package]] name = "media" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#aa91fd4a964b02878e7928f50eaeac0ba2c922f3" +source = "git+https://github.com/zed-industries/zed#930d9321dc66d7fc8a2f7d977f668431c9549b33" dependencies = [ "anyhow", "bindgen", @@ -3487,7 +3865,7 @@ dependencies = [ "core-video", "ctor", "foreign-types 0.5.0", - "metal", + "metal 0.29.0", "objc", ] @@ -3539,6 +3917,21 @@ dependencies = [ "paste", ] +[[package]] +name = "metal" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7047791b5bc903b8cd963014b355f71dc9864a9a0b727057676c1dcae5cbc15" +dependencies = [ + "bitflags 2.11.0", + "block", + "core-graphics-types 0.2.0", + "foreign-types 0.5.0", + "log", + "objc", + "paste", +] + [[package]] name = "mime" version = "0.3.17" @@ -3613,6 +4006,7 @@ dependencies = [ "num-traits", "once_cell", "rustc-hash 1.1.0", + "spirv", "thiserror 2.0.18", "unicode-ident", ] @@ -3649,6 +4043,15 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" +[[package]] +name = "ndk-sys" +version = "0.6.0+11769913" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee6cda3051665f1fb8d9e08fc35c96d5a244fb1be711a03b71118828afc9a873" +dependencies = [ + "jni-sys", +] + [[package]] name = "negentropy" version = "0.5.0" @@ -3713,7 +4116,7 @@ checksum = "0676bb32a98c1a483ce53e500a81ad9c3d5b3f7c920c28c24e9cb0980d0b5bc8" [[package]] name = "nostr" version = "0.44.1" -source = "git+https://github.com/rust-nostr/nostr#bd92fd901e8b64856ad4f8373fbb87376314161c" +source = "git+https://github.com/rust-nostr/nostr#2d1000b05b2a37de940857cbfb5660dd0c9ec373" dependencies = [ "aes", "base64", @@ -3738,7 +4141,7 @@ dependencies = [ [[package]] name = "nostr-connect" version = "0.44.0" -source = "git+https://github.com/rust-nostr/nostr#bd92fd901e8b64856ad4f8373fbb87376314161c" +source = "git+https://github.com/rust-nostr/nostr#2d1000b05b2a37de940857cbfb5660dd0c9ec373" dependencies = [ "async-utility", "futures-core", @@ -3751,7 +4154,7 @@ dependencies = [ [[package]] name = "nostr-database" version = "0.44.0" -source = "git+https://github.com/rust-nostr/nostr#bd92fd901e8b64856ad4f8373fbb87376314161c" +source = "git+https://github.com/rust-nostr/nostr#2d1000b05b2a37de940857cbfb5660dd0c9ec373" dependencies = [ "btreecap", "flatbuffers", @@ -3763,7 +4166,7 @@ dependencies = [ [[package]] name = "nostr-gossip" version = "0.44.0" -source = "git+https://github.com/rust-nostr/nostr#bd92fd901e8b64856ad4f8373fbb87376314161c" +source = "git+https://github.com/rust-nostr/nostr#2d1000b05b2a37de940857cbfb5660dd0c9ec373" dependencies = [ "nostr", ] @@ -3771,7 +4174,7 @@ dependencies = [ [[package]] name = "nostr-lmdb" version = "0.44.0" -source = "git+https://github.com/rust-nostr/nostr#bd92fd901e8b64856ad4f8373fbb87376314161c" +source = "git+https://github.com/rust-nostr/nostr#2d1000b05b2a37de940857cbfb5660dd0c9ec373" dependencies = [ "async-utility", "flume", @@ -3785,7 +4188,7 @@ dependencies = [ [[package]] name = "nostr-sdk" version = "0.44.1" -source = "git+https://github.com/rust-nostr/nostr#bd92fd901e8b64856ad4f8373fbb87376314161c" +source = "git+https://github.com/rust-nostr/nostr#2d1000b05b2a37de940857cbfb5660dd0c9ec373" dependencies = [ "async-utility", "async-wsocket", @@ -3801,6 +4204,15 @@ dependencies = [ "tracing", ] +[[package]] +name = "ntapi" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3b335231dfd352ffb0f8017f3b6027a4917f7df785ea2143d8af2adc66980ae" +dependencies = [ + "winapi", +] + [[package]] name = "nu-ansi-term" version = "0.50.3" @@ -3929,6 +4341,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" dependencies = [ "malloc_buf", + "objc_exception", +] + +[[package]] +name = "objc-foundation" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9" +dependencies = [ + "block", + "objc", + "objc_id", ] [[package]] @@ -3956,6 +4380,24 @@ dependencies = [ "objc2", ] +[[package]] +name = "objc_exception" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad970fb455818ad6cba4c122ad012fae53ae8b4795f86378bce65e4f6bab2ca4" +dependencies = [ + "cc", +] + +[[package]] +name = "objc_id" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b" +dependencies = [ + "objc", +] + [[package]] name = "object" version = "0.37.3" @@ -4024,6 +4466,17 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" +[[package]] +name = "open" +version = "5.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43bb73a7fa3799b198970490a51174027ba0d4ec504b03cd08caf513d40024bc" +dependencies = [ + "is-wsl", + "libc", + "pathdiff", +] + [[package]] name = "openssl" version = "0.10.75" @@ -4074,6 +4527,15 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" +[[package]] +name = "ordered-float" +version = "5.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4779c6901a562440c3786d08192c6fbda7c1c2060edd10006b05ee35d10f2d" +dependencies = [ + "num-traits", +] + [[package]] name = "ordered-multimap" version = "0.3.1" @@ -4156,6 +4618,12 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "35fb2e5f958ec131621fdd531e9fc186ed768cbe395337403ae56c17a74c68ec" +[[package]] +name = "pathdiff" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" + [[package]] name = "pathfinder_geometry" version = "0.5.1" @@ -4194,7 +4662,7 @@ checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "perf" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#aa91fd4a964b02878e7928f50eaeac0ba2c922f3" +source = "git+https://github.com/zed-industries/zed#930d9321dc66d7fc8a2f7d977f668431c9549b33" dependencies = [ "collections", "serde", @@ -4385,6 +4853,21 @@ dependencies = [ "universal-hash", ] +[[package]] +name = "portable-atomic" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49" + +[[package]] +name = "portable-atomic-util" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a9db96d7fa8782dd8c15ce32ffe8680bbd1e978a43bf51a34d39483540495f5" +dependencies = [ + "portable-atomic", +] + [[package]] name = "postage" version = "0.5.0" @@ -4420,6 +4903,12 @@ dependencies = [ "zerocopy", ] +[[package]] +name = "presser" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8cf8e6a8aa66ce33f63993ffc4ea4271eb5b0530a9002db8455ea6050c77bfa" + [[package]] name = "prettyplease" version = "0.2.37" @@ -4532,6 +5021,24 @@ version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3" +[[package]] +name = "quick-xml" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eff6510e86862b57b210fd8cbe8ed3f0d7d600b9c2863cd4549a2e033c66e956" +dependencies = [ + "memchr", +] + +[[package]] +name = "quick-xml" +version = "0.38.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b66c2058c55a409d601666cffe35f04333cf1013010882cec174a7467cd4e21c" +dependencies = [ + "memchr", +] + [[package]] name = "quinn" version = "0.11.9" @@ -4661,6 +5168,18 @@ dependencies = [ "getrandom 0.3.4", ] +[[package]] +name = "range-alloc" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3d6831663a5098ea164f89cff59c6284e95f4e3c76ce9848d4529f5ccca9bde" + +[[package]] +name = "rangemap" +version = "1.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "973443cf09a9c8656b574a866ab68dfa19f0867d0340648c7d2f6a71b8a8ea68" + [[package]] name = "rav1e" version = "0.8.1" @@ -4744,7 +5263,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6717cf23b488adf64b9d711329542ba34de147df262370221940dfabc2c91358" dependencies = [ "bytemuck", - "font-types", + "font-types 0.10.1", +] + +[[package]] +name = "read-fonts" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b634fabf032fab15307ffd272149b622260f55974d9fad689292a5d33df02e5" +dependencies = [ + "bytemuck", + "core_maths", + "font-types 0.11.0", ] [[package]] @@ -4808,7 +5338,7 @@ dependencies = [ [[package]] name = "refineable" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#aa91fd4a964b02878e7928f50eaeac0ba2c922f3" +source = "git+https://github.com/zed-industries/zed#930d9321dc66d7fc8a2f7d977f668431c9549b33" dependencies = [ "derive_refineable", ] @@ -4860,6 +5390,12 @@ dependencies = [ "ui", ] +[[package]] +name = "renderdoc-sys" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19b30a45b0cd0bcca8037f3d0dc3421eaf95327a17cad11964fb8179b4fc4832" + [[package]] name = "reqwest" version = "0.12.28" @@ -4907,7 +5443,7 @@ dependencies = [ [[package]] name = "reqwest_client" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#aa91fd4a964b02878e7928f50eaeac0ba2c922f3" +source = "git+https://github.com/zed-industries/zed#930d9321dc66d7fc8a2f7d977f668431c9549b33" dependencies = [ "anyhow", "bytes", @@ -4962,7 +5498,7 @@ dependencies = [ [[package]] name = "rope" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#aa91fd4a964b02878e7928f50eaeac0ba2c922f3" +source = "git+https://github.com/zed-industries/zed#930d9321dc66d7fc8a2f7d977f668431c9549b33" dependencies = [ "arrayvec", "log", @@ -5224,7 +5760,7 @@ dependencies = [ [[package]] name = "scheduler" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#aa91fd4a964b02878e7928f50eaeac0ba2c922f3" +source = "git+https://github.com/zed-industries/zed#930d9321dc66d7fc8a2f7d977f668431c9549b33" dependencies = [ "async-task", "backtrace", @@ -5261,12 +5797,41 @@ dependencies = [ "syn", ] +[[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" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" +[[package]] +name = "screencapturekit" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a5eeeb57ac94960cfe5ff4c402be6585ae4c8d29a2cf41b276048c2e849d64e" +dependencies = [ + "screencapturekit-sys", +] + +[[package]] +name = "screencapturekit-sys" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22411b57f7d49e7fe08025198813ee6fd65e1ee5eff4ebc7880c12c82bde4c60" +dependencies = [ + "block", + "dispatch", + "objc", + "objc-foundation", + "objc_id", + "once_cell", +] + [[package]] name = "scrypt" version = "0.11.0" @@ -5327,6 +5892,12 @@ dependencies = [ "libc", ] +[[package]] +name = "self_cell" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b12e76d157a900eb52e81bc6e9f3069344290341720e9178cde2407113ac8d89" + [[package]] name = "semver" version = "1.0.27" @@ -5561,7 +6132,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8c31071dedf532758ecf3fed987cdb4bd9509f900e026ab684b4ecb81ea49841" dependencies = [ "bytemuck", - "read-fonts", + "read-fonts 0.35.0", +] + +[[package]] +name = "skrifa" +version = "0.40.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fbdfe3d2475fbd7ddd1f3e5cf8288a30eb3e5f95832829570cd88115a7434ac" +dependencies = [ + "bytemuck", + "read-fonts 0.37.0", ] [[package]] @@ -5602,6 +6183,12 @@ dependencies = [ "futures-lite 2.6.1", ] +[[package]] +name = "smol_str" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f7a918bd2a9951d18ee6e48f076843e8e73a9a5d22cf05bcd4b7a81bdd04e17" + [[package]] name = "socket2" version = "0.6.2" @@ -5630,6 +6217,15 @@ dependencies = [ "lock_api", ] +[[package]] +name = "spirv" +version = "0.3.0+sdk-1.3.268.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eda41003dc44290527a59b13432d4a0379379fa074b70174882adfbdfd917844" +dependencies = [ + "bitflags 2.11.0", +] + [[package]] name = "stable_deref_trait" version = "1.2.1" @@ -5680,6 +6276,7 @@ dependencies = [ "gpui", "gpui_tokio", "log", + "nostr", "nostr-connect", "nostr-lmdb", "nostr-sdk", @@ -5744,7 +6341,7 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "sum_tree" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#aa91fd4a964b02878e7928f50eaeac0ba2c922f3" +source = "git+https://github.com/zed-industries/zed#930d9321dc66d7fc8a2f7d977f668431c9549b33" dependencies = [ "arrayvec", "log", @@ -5853,16 +6450,16 @@ version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "47846491253e976bdd07d0f9cc24b7daf24720d11309302ccbbc6e6b6e53550a" dependencies = [ - "skrifa", + "skrifa 0.37.0", "yazi", "zeno", ] [[package]] name = "syn" -version = "2.0.116" +version = "2.0.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3df424c70518695237746f84cede799c9c58fcb37450d7b23716568cc8bc69cb" +checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" dependencies = [ "proc-macro2", "quote", @@ -5898,6 +6495,29 @@ dependencies = [ "syn", ] +[[package]] +name = "sys-locale" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eab9a99a024a169fe8a903cf9d4a3b3601109bcc13bd9e3c6fff259138626c4" +dependencies = [ + "libc", +] + +[[package]] +name = "sysinfo" +version = "0.31.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "355dbe4f8799b304b05e1b0f05fc59b2a18d36645cf169607da45bde2f69a1be" +dependencies = [ + "core-foundation-sys", + "libc", + "memchr", + "ntapi", + "rayon", + "windows 0.57.0", +] + [[package]] name = "system-configuration" version = "0.6.1" @@ -5948,6 +6568,18 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8bdb6fa0dfa67b38c1e66b7041ba9dcf23b99d8121907cd31c807a332f7a0bbb" +[[package]] +name = "tao-core-video-sys" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "271450eb289cb4d8d0720c6ce70c72c8c858c93dd61fc625881616752e6b98f6" +dependencies = [ + "cfg-if", + "core-foundation-sys", + "libc", + "objc", +] + [[package]] name = "tempfile" version = "3.25.0" @@ -5972,6 +6604,15 @@ dependencies = [ "utf-8", ] +[[package]] +name = "termcolor" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" +dependencies = [ + "winapi-util", +] + [[package]] name = "theme" version = "0.3.0" @@ -6049,6 +6690,15 @@ dependencies = [ "zune-jpeg 0.4.21", ] +[[package]] +name = "tiny-keccak" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +dependencies = [ + "crunchy", +] + [[package]] name = "tiny-skia" version = "0.11.4" @@ -6114,7 +6764,7 @@ dependencies = [ "smol", "theme", "ui", - "windows", + "windows 0.61.3", ] [[package]] @@ -6521,6 +7171,12 @@ version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" +[[package]] +name = "unicode-linebreak" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f" + [[package]] name = "unicode-normalization" version = "0.1.25" @@ -6643,7 +7299,7 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "util" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#aa91fd4a964b02878e7928f50eaeac0ba2c922f3" +source = "git+https://github.com/zed-industries/zed#930d9321dc66d7fc8a2f7d977f668431c9549b33" dependencies = [ "anyhow", "async-fs", @@ -6681,7 +7337,7 @@ dependencies = [ [[package]] name = "util_macros" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#aa91fd4a964b02878e7928f50eaeac0ba2c922f3" +source = "git+https://github.com/zed-industries/zed#930d9321dc66d7fc8a2f7d977f668431c9549b33" dependencies = [ "perf", "quote", @@ -6843,9 +7499,9 @@ checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" [[package]] name = "wasm-bindgen" -version = "0.2.108" +version = "0.2.109" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64024a30ec1e37399cf85a7ffefebdb72205ca1c972291c51512360d90bd8566" +checksum = "9ff9c7baef35ac3c0e17d8bfc9ad75eb62f85a2f02bccc906699dadb0aa9c622" dependencies = [ "cfg-if", "once_cell", @@ -6856,9 +7512,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.58" +version = "0.4.59" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70a6e77fd0ae8029c9ea0063f87c46fde723e7d887703d74ad2616d792e51e6f" +checksum = "d24699cd39db9966cf6e2ef10d2f72779c961ad905911f395ea201c3ec9f545d" dependencies = [ "cfg-if", "futures-util", @@ -6870,9 +7526,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.108" +version = "0.2.109" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "008b239d9c740232e71bd39e8ef6429d27097518b6b30bdf9086833bd5b6d608" +checksum = "39455e84ad887a0bbc93c116d72403f1bb0a39e37dd6f235a43e2128a0c7f1fd" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -6880,9 +7536,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.108" +version = "0.2.109" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5256bae2d58f54820e6490f9839c49780dff84c65aeab9e772f15d5f0e913a55" +checksum = "dff4761f60b0b51fd13fec8764167b7bbcc34498ce3e52805fe1db6f2d56b6d6" dependencies = [ "bumpalo", "proc-macro2", @@ -6893,9 +7549,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.108" +version = "0.2.109" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f01b580c9ac74c8d8f0c0e4afb04eeef2acf145458e52c03845ee9cd23e3d12" +checksum = "bc6a171c53d98021a93a474c4a4579d76ba97f9517d871bc12e27640f218b6dd" dependencies = [ "unicode-ident", ] @@ -6948,10 +7604,108 @@ dependencies = [ ] [[package]] -name = "web-sys" -version = "0.3.85" +name = "wayland-backend" +version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "312e32e551d92129218ea9a2452120f4aabc03529ef03e4d0d82fb2780608598" +checksum = "fee64194ccd96bf648f42a65a7e589547096dfa702f7cadef84347b66ad164f9" +dependencies = [ + "cc", + "downcast-rs", + "rustix 1.1.3", + "scoped-tls", + "smallvec", + "wayland-sys", +] + +[[package]] +name = "wayland-client" +version = "0.31.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8e6faa537fbb6c186cb9f1d41f2f811a4120d1b57ec61f50da451a0c5122bec" +dependencies = [ + "bitflags 2.11.0", + "rustix 1.1.3", + "wayland-backend", + "wayland-scanner", +] + +[[package]] +name = "wayland-cursor" +version = "0.31.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5864c4b5b6064b06b1e8b74ead4a98a6c45a285fe7a0e784d24735f011fdb078" +dependencies = [ + "rustix 1.1.3", + "wayland-client", + "xcursor", +] + +[[package]] +name = "wayland-protocols" +version = "0.32.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baeda9ffbcfc8cd6ddaade385eaf2393bd2115a69523c735f12242353c3df4f3" +dependencies = [ + "bitflags 2.11.0", + "wayland-backend", + "wayland-client", + "wayland-scanner", +] + +[[package]] +name = "wayland-protocols-plasma" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa98634619300a535a9a97f338aed9a5ff1e01a461943e8346ff4ae26007306b" +dependencies = [ + "bitflags 2.11.0", + "wayland-backend", + "wayland-client", + "wayland-protocols", + "wayland-scanner", +] + +[[package]] +name = "wayland-protocols-wlr" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9597cdf02cf0c34cd5823786dce6b5ae8598f05c2daf5621b6e178d4f7345f3" +dependencies = [ + "bitflags 2.11.0", + "wayland-backend", + "wayland-client", + "wayland-protocols", + "wayland-scanner", +] + +[[package]] +name = "wayland-scanner" +version = "0.31.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5423e94b6a63e68e439803a3e153a9252d5ead12fd853334e2ad33997e3889e3" +dependencies = [ + "proc-macro2", + "quick-xml 0.38.4", + "quote", +] + +[[package]] +name = "wayland-sys" +version = "0.31.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e6dbfc3ac5ef974c92a2235805cc0114033018ae1290a72e474aa8b28cbbdfd" +dependencies = [ + "dlib", + "log", + "once_cell", + "pkg-config", +] + +[[package]] +name = "web-sys" +version = "0.3.86" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "668fa5d00434e890a452ab060d24e3904d1be93f7bb01b70e5603baa2b8ab23b" dependencies = [ "js-sys", "wasm-bindgen", @@ -7025,6 +7779,156 @@ version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a28ac98ddc8b9274cb41bb4d9d4d5c425b6020c50c46f25559911905610b4a88" +[[package]] +name = "wgpu" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9cb534d5ffd109c7d1135f34cdae29e60eab94855a625dcfe1705f8bc7ad79f" +dependencies = [ + "arrayvec", + "bitflags 2.11.0", + "bytemuck", + "cfg-if", + "cfg_aliases", + "document-features", + "hashbrown 0.16.1", + "js-sys", + "log", + "naga", + "parking_lot", + "portable-atomic", + "profiling", + "raw-window-handle", + "smallvec", + "static_assertions", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "wgpu-core", + "wgpu-hal", + "wgpu-types", +] + +[[package]] +name = "wgpu-core" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8bb4c8b5db5f00e56f1f08869d870a0dff7c8bc7ebc01091fec140b0cf0211a9" +dependencies = [ + "arrayvec", + "bit-set", + "bit-vec", + "bitflags 2.11.0", + "bytemuck", + "cfg_aliases", + "document-features", + "hashbrown 0.16.1", + "indexmap", + "log", + "naga", + "once_cell", + "parking_lot", + "portable-atomic", + "profiling", + "raw-window-handle", + "rustc-hash 1.1.0", + "smallvec", + "thiserror 2.0.18", + "wgpu-core-deps-apple", + "wgpu-core-deps-emscripten", + "wgpu-core-deps-windows-linux-android", + "wgpu-hal", + "wgpu-types", +] + +[[package]] +name = "wgpu-core-deps-apple" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87b7b696b918f337c486bf93142454080a32a37832ba8a31e4f48221890047da" +dependencies = [ + "wgpu-hal", +] + +[[package]] +name = "wgpu-core-deps-emscripten" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34b251c331f84feac147de3c4aa3aa45112622a95dd7ee1b74384fa0458dbd79" +dependencies = [ + "wgpu-hal", +] + +[[package]] +name = "wgpu-core-deps-windows-linux-android" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68ca976e72b2c9964eb243e281f6ce7f14a514e409920920dcda12ae40febaae" +dependencies = [ + "wgpu-hal", +] + +[[package]] +name = "wgpu-hal" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "293080d77fdd14d6b08a67c5487dfddbf874534bb7921526db56a7b75d7e3bef" +dependencies = [ + "android_system_properties", + "arrayvec", + "ash", + "bit-set", + "bitflags 2.11.0", + "block", + "bytemuck", + "cfg-if", + "cfg_aliases", + "core-graphics-types 0.2.0", + "glow", + "glutin_wgl_sys", + "gpu-allocator", + "gpu-descriptor", + "hashbrown 0.16.1", + "js-sys", + "khronos-egl", + "libc", + "libloading", + "log", + "metal 0.33.0", + "naga", + "ndk-sys", + "objc", + "once_cell", + "ordered-float", + "parking_lot", + "portable-atomic", + "portable-atomic-util", + "profiling", + "range-alloc", + "raw-window-handle", + "renderdoc-sys", + "smallvec", + "thiserror 2.0.18", + "wasm-bindgen", + "web-sys", + "wgpu-types", + "windows 0.62.2", + "windows-core 0.62.2", +] + +[[package]] +name = "wgpu-types" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e18308757e594ed2cd27dddbb16a139c42a683819d32a2e0b1b0167552f5840c" +dependencies = [ + "bitflags 2.11.0", + "bytemuck", + "js-sys", + "log", + "web-sys", +] + [[package]] name = "which" version = "6.0.3" @@ -7079,17 +7983,52 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "windows" +version = "0.57.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12342cb4d8e3b046f3d80effd474a7a02447231330ef77d71daa6fbc40681143" +dependencies = [ + "windows-core 0.57.0", + "windows-targets 0.52.6", +] + [[package]] name = "windows" version = "0.61.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" dependencies = [ - "windows-collections", + "windows-collections 0.2.0", "windows-core 0.61.2", - "windows-future", + "windows-future 0.2.1", "windows-link 0.1.3", - "windows-numerics", + "windows-numerics 0.2.0", +] + +[[package]] +name = "windows" +version = "0.62.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "527fadee13e0c05939a6a05d5bd6eec6cd2e3dbd648b9f8e447c6518133d8580" +dependencies = [ + "windows-collections 0.3.2", + "windows-core 0.62.2", + "windows-future 0.3.2", + "windows-numerics 0.3.1", +] + +[[package]] +name = "windows-capture" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a4df73e95feddb9ec1a7e9c2ca6323b8c97d5eeeff78d28f1eccdf19c882b24" +dependencies = [ + "parking_lot", + "rayon", + "thiserror 2.0.18", + "windows 0.61.3", + "windows-future 0.2.1", ] [[package]] @@ -7101,14 +8040,35 @@ dependencies = [ "windows-core 0.61.2", ] +[[package]] +name = "windows-collections" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b2d95af1a8a14a3c7367e1ed4fc9c20e0a26e79551b1454d72583c97cc6610" +dependencies = [ + "windows-core 0.62.2", +] + +[[package]] +name = "windows-core" +version = "0.57.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2ed2439a290666cd67ecce2b0ffaad89c2a56b976b736e6ece670297897832d" +dependencies = [ + "windows-implement 0.57.0", + "windows-interface 0.57.0", + "windows-result 0.1.2", + "windows-targets 0.52.6", +] + [[package]] name = "windows-core" version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" dependencies = [ - "windows-implement", - "windows-interface", + "windows-implement 0.60.2", + "windows-interface 0.59.3", "windows-link 0.1.3", "windows-result 0.3.4", "windows-strings 0.4.2", @@ -7120,8 +8080,8 @@ version = "0.62.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" dependencies = [ - "windows-implement", - "windows-interface", + "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", @@ -7135,7 +8095,29 @@ checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" dependencies = [ "windows-core 0.61.2", "windows-link 0.1.3", - "windows-threading", + "windows-threading 0.1.0", +] + +[[package]] +name = "windows-future" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1d6f90251fe18a279739e78025bd6ddc52a7e22f921070ccdc67dde84c605cb" +dependencies = [ + "windows-core 0.62.2", + "windows-link 0.2.1", + "windows-threading 0.2.1", +] + +[[package]] +name = "windows-implement" +version = "0.57.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7" +dependencies = [ + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -7149,6 +8131,17 @@ dependencies = [ "syn", ] +[[package]] +name = "windows-interface" +version = "0.57.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "windows-interface" version = "0.59.3" @@ -7182,6 +8175,16 @@ dependencies = [ "windows-link 0.1.3", ] +[[package]] +name = "windows-numerics" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e2e40844ac143cdb44aead537bbf727de9b044e107a0f1220392177d15b0f26" +dependencies = [ + "windows-core 0.62.2", + "windows-link 0.2.1", +] + [[package]] name = "windows-registry" version = "0.4.0" @@ -7205,14 +8208,12 @@ dependencies = [ ] [[package]] -name = "windows-registry" -version = "0.6.1" +name = "windows-result" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02752bf7fbdcce7f2a27a742f798510f3e5ad88dbe84871e5168e2120c3d5720" +checksum = "5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8" dependencies = [ - "windows-link 0.2.1", - "windows-result 0.4.1", - "windows-strings 0.5.1", + "windows-targets 0.52.6", ] [[package]] @@ -7386,6 +8387,15 @@ dependencies = [ "windows-link 0.1.3", ] +[[package]] +name = "windows-threading" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3949bd5b99cafdf1c7ca86b43ca564028dfe27d66958f2470940f73d86d75b37" +dependencies = [ + "windows-link 0.2.1", +] + [[package]] name = "windows_aarch64_gnullvm" version = "0.42.2" @@ -7694,6 +8704,46 @@ version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" +[[package]] +name = "x11" +version = "2.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "502da5464ccd04011667b11c435cb992822c2c0dbde1770c988480d312a0db2e" +dependencies = [ + "libc", + "pkg-config", +] + +[[package]] +name = "x11-clipboard" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "662d74b3d77e396b8e5beb00b9cad6a9eccf40b2ef68cc858784b14c41d535a3" +dependencies = [ + "libc", + "x11rb", +] + +[[package]] +name = "x11rb" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9993aa5be5a26815fe2c3eacfc1fde061fc1a1f094bf1ad2a18bf9c495dd7414" +dependencies = [ + "as-raw-xcb-connection", + "gethostname", + "libc", + "rustix 1.1.3", + "x11rb-protocol", + "xcursor", +] + +[[package]] +name = "x11rb-protocol" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea6fc2961e4ef194dcbfe56bb845534d0dc8098940c7e5c012a258bfec6701bd" + [[package]] name = "xattr" version = "0.2.3" @@ -7703,6 +8753,64 @@ dependencies = [ "libc", ] +[[package]] +name = "xcb" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee4c580d8205abb0a5cf4eb7e927bd664e425b6c3263f9c5310583da96970cf6" +dependencies = [ + "bitflags 1.3.2", + "libc", + "quick-xml 0.30.0", + "x11", +] + +[[package]] +name = "xcursor" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bec9e4a500ca8864c5b47b8b482a73d62e4237670e5b5f1d6b9e3cae50f28f2b" + +[[package]] +name = "xim-ctext" +version = "0.3.0" +source = "git+https://github.com/zed-industries/xim-rs.git?rev=16f35a2c881b815a2b6cdfd6687988e84f8447d8#16f35a2c881b815a2b6cdfd6687988e84f8447d8" +dependencies = [ + "encoding_rs", +] + +[[package]] +name = "xim-parser" +version = "0.2.1" +source = "git+https://github.com/zed-industries/xim-rs.git?rev=16f35a2c881b815a2b6cdfd6687988e84f8447d8#16f35a2c881b815a2b6cdfd6687988e84f8447d8" +dependencies = [ + "bitflags 2.11.0", +] + +[[package]] +name = "xkbcommon" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d66ca9352cbd4eecbbc40871d8a11b4ac8107cfc528a6e14d7c19c69d0e1ac9" +dependencies = [ + "as-raw-xcb-connection", + "libc", + "memmap2 0.9.10", + "xkeysym", +] + +[[package]] +name = "xkeysym" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9cc00251562a284751c9973bace760d86c0276c471b4be569fe6b068ee97a56" + +[[package]] +name = "xml-rs" +version = "0.8.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ae8337f8a065cfc972643663ea4279e04e7256de865aa66fe25cec5fb912d3f" + [[package]] name = "xmlwriter" version = "0.1.0" @@ -7889,6 +8997,40 @@ dependencies = [ "windows-registry 0.4.0", ] +[[package]] +name = "zed-scap" +version = "0.0.8-zed" +source = "git+https://github.com/zed-industries/scap?rev=4afea48c3b002197176fb19cd0f9b180dd36eaac#4afea48c3b002197176fb19cd0f9b180dd36eaac" +dependencies = [ + "anyhow", + "cocoa 0.25.0", + "core-graphics-helmer-fork", + "log", + "objc", + "rand 0.8.5", + "screencapturekit", + "screencapturekit-sys", + "sysinfo", + "tao-core-video-sys", + "windows 0.61.3", + "windows-capture", + "x11", + "xcb", +] + +[[package]] +name = "zed-xim" +version = "0.4.0-zed" +source = "git+https://github.com/zed-industries/xim-rs.git?rev=16f35a2c881b815a2b6cdfd6687988e84f8447d8#16f35a2c881b815a2b6cdfd6687988e84f8447d8" +dependencies = [ + "ahash 0.8.12", + "hashbrown 0.14.5", + "log", + "x11rb", + "xim-ctext", + "xim-parser", +] + [[package]] name = "zeno" version = "0.3.3" @@ -7992,7 +9134,7 @@ dependencies = [ [[package]] name = "zlog" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#aa91fd4a964b02878e7928f50eaeac0ba2c922f3" +source = "git+https://github.com/zed-industries/zed#930d9321dc66d7fc8a2f7d977f668431c9549b33" dependencies = [ "anyhow", "chrono", @@ -8009,7 +9151,7 @@ checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" [[package]] name = "ztracing" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#aa91fd4a964b02878e7928f50eaeac0ba2c922f3" +source = "git+https://github.com/zed-industries/zed#930d9321dc66d7fc8a2f7d977f668431c9549b33" dependencies = [ "tracing", "tracing-subscriber", @@ -8020,7 +9162,7 @@ dependencies = [ [[package]] name = "ztracing_macro" version = "0.1.0" -source = "git+https://github.com/zed-industries/zed#aa91fd4a964b02878e7928f50eaeac0ba2c922f3" +source = "git+https://github.com/zed-industries/zed#930d9321dc66d7fc8a2f7d977f668431c9549b33" [[package]] name = "zune-core" diff --git a/Cargo.toml b/Cargo.toml index 1fa7ada..547811e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,6 +13,9 @@ publish = false # GPUI gpui = { git = "https://github.com/zed-industries/zed" } gpui_platform = { git = "https://github.com/zed-industries/zed" } +gpui_linux = { git = "https://github.com/zed-industries/zed" } +gpui_windows = { git = "https://github.com/zed-industries/zed" } +gpui_macos = { git = "https://github.com/zed-industries/zed" } gpui_tokio = { git = "https://github.com/zed-industries/zed" } reqwest_client = { git = "https://github.com/zed-industries/zed" } @@ -29,7 +32,6 @@ futures = "0.3" itertools = "0.13.0" log = "0.4" oneshot = "0.1.10" -reqwest = { version = "0.12", features = ["multipart", "stream", "json"] } flume = { version = "0.11.1", default-features = false, features = ["async", "select"] } rust-embed = "8.5.0" serde = { version = "1.0", features = ["derive"] } diff --git a/crates/auto_update/Cargo.toml b/crates/auto_update/Cargo.toml index 39a37e3..5533d42 100644 --- a/crates/auto_update/Cargo.toml +++ b/crates/auto_update/Cargo.toml @@ -9,7 +9,6 @@ common = { path = "../common" } gpui.workspace = true gpui_tokio.workspace = true -reqwest.workspace = true anyhow.workspace = true smol.workspace = true log.workspace = true diff --git a/crates/auto_update/src/lib.rs b/crates/auto_update/src/lib.rs index c81fc30..192b4b6 100644 --- a/crates/auto_update/src/lib.rs +++ b/crates/auto_update/src/lib.rs @@ -7,11 +7,13 @@ use anyhow::{anyhow, Context as AnyhowContext, Error}; use gpui::http_client::{AsyncBody, HttpClient}; use gpui::{ App, AppContext, AsyncApp, BackgroundExecutor, Context, Entity, Global, Subscription, Task, + Window, }; use semver::Version; use serde::Deserialize; use smallvec::{smallvec, SmallVec}; use smol::fs::File; +use smol::io::AsyncReadExt; use smol::process::Command; const GITHUB_API_URL: &str = "https://api.github.com"; @@ -30,14 +32,14 @@ fn is_flatpak_installation() -> bool { std::env::var("FLATPAK_ID").is_ok() || std::env::var(COOP_UPDATE_EXPLANATION).is_ok() } -pub fn init(cx: &mut App) { +pub fn init(window: &mut Window, cx: &mut App) { // Skip auto-update initialization if installed via Flatpak if is_flatpak_installation() { log::info!("Skipping auto-update initialization: App is installed via Flatpak"); return; } - AutoUpdater::set_global(cx.new(AutoUpdater::new), cx); + AutoUpdater::set_global(cx.new(|cx| AutoUpdater::new(window, cx)), cx); } struct GlobalAutoUpdater(Entity); @@ -181,7 +183,7 @@ pub struct AutoUpdater { _subscriptions: SmallVec<[Subscription; 1]>, /// Background tasks - _tasks: SmallVec<[Task<()>; 2]>, + tasks: Vec>>, } impl AutoUpdater { @@ -195,44 +197,9 @@ impl AutoUpdater { cx.set_global(GlobalAutoUpdater(state)); } - fn new(cx: &mut Context) -> Self { + fn new(window: &mut Window, cx: &mut Context) -> Self { let version = Version::parse(env!("CARGO_PKG_VERSION")).unwrap(); - let async_version = version.clone(); - let mut subscriptions = smallvec![]; - let mut tasks = smallvec![]; - - tasks.push( - // Check for updates after 2 minutes - cx.spawn(async move |this, cx| { - cx.background_executor() - .timer(Duration::from_secs(120)) - .await; - - // Update the status to checking - this.update(cx, |this, cx| { - this.set_status(AutoUpdateStatus::Checking, cx); - }) - .ok(); - - match Self::check_for_updates(async_version, cx).await { - Ok(download_url) => { - // Update the status to checked with download URL - this.update(cx, |this, cx| { - this.set_status(AutoUpdateStatus::checked(download_url), cx); - }) - .ok(); - } - Err(e) => { - log::warn!("Failed to check for updates: {e}"); - this.update(cx, |this, cx| { - this.set_status(AutoUpdateStatus::Idle, cx); - }) - .ok(); - } - } - }), - ); subscriptions.push( // Observe the status @@ -243,11 +210,16 @@ impl AutoUpdater { }), ); + // Run at the end of current cycle + cx.defer_in(window, |this, _window, cx| { + this.check(cx); + }); + Self { status: AutoUpdateStatus::Idle, version, + tasks: vec![], _subscriptions: subscriptions, - _tasks: tasks, } } @@ -256,31 +228,63 @@ impl AutoUpdater { cx.notify(); } - fn check_for_updates(version: Version, cx: &AsyncApp) -> Task> { + fn check(&mut self, cx: &mut Context) { + let version = self.version.clone(); + let duration = Duration::from_secs(120); + let task = self.check_for_updates(version, cx); + + // Check for updates after 2 minutes + self.tasks.push(cx.spawn(async move |this, cx| { + cx.background_executor().timer(duration).await; + + // Update the status to checking + this.update(cx, |this, cx| { + this.set_status(AutoUpdateStatus::Checking, cx); + })?; + + match task.await { + Ok(download_url) => { + // Update the status to checked with download URL + this.update(cx, |this, cx| { + this.set_status(AutoUpdateStatus::checked(download_url), cx); + })?; + } + Err(e) => { + log::warn!("Failed to check for updates: {e}"); + this.update(cx, |this, cx| { + this.set_status(AutoUpdateStatus::Idle, cx); + })?; + } + } + + Ok(()) + })); + } + + fn check_for_updates(&self, version: Version, cx: &App) -> Task> { + let http_client = cx.http_client(); + let repo_owner = get_github_repo_owner(); + let repo_name = get_github_repo_name(); + cx.background_spawn(async move { - let client = reqwest::Client::new(); - let repo_owner = get_github_repo_owner(); - let repo_name = get_github_repo_name(); let url = format!( "{}/repos/{}/{}/releases/latest", GITHUB_API_URL, repo_owner, repo_name ); - let response = client - .get(&url) - .header("User-Agent", "Coop-Auto-Updater") - .send() - .await - .context("Failed to fetch GitHub releases")?; + let async_body = AsyncBody::default(); + let mut body = Vec::new(); + let mut response = http_client.get(&url, async_body, false).await?; + + // Read the response body into a vector + response.body_mut().read_to_end(&mut body).await?; if !response.status().is_success() { return Err(anyhow!("GitHub API returned error: {}", response.status())); } - let release: GitHubRelease = response - .json() - .await - .context("Failed to parse GitHub release")?; + // Parse the response body as JSON + let release: GitHubRelease = serde_json::from_slice(&body)?; // Parse version from tag (remove 'v' prefix if present) let tag_version = release.tag_name.trim_start_matches('v'); @@ -334,29 +338,31 @@ impl AutoUpdater { Ok((installer_dir, target_path)) }); - self._tasks.push( + self.tasks.push( // Install the new release cx.spawn(async move |this, cx| { - _ = this.update(cx, |this, cx| { + this.update(cx, |this, cx| { this.set_status(AutoUpdateStatus::Installing, cx); - }); + })?; match task.await { Ok((installer_dir, target_path)) => { if Self::install(installer_dir, target_path, cx).await.is_ok() { // Update the status to updated - _ = this.update(cx, |this, cx| { + this.update(cx, |this, cx| { this.set_status(AutoUpdateStatus::Updated, cx); - }); + })?; } } Err(e) => { // Update the status to error including the error message - _ = this.update(cx, |this, cx| { + this.update(cx, |this, cx| { this.set_status(AutoUpdateStatus::error(e.to_string()), cx); - }); + })?; } } + + Ok(()) }), ); } diff --git a/crates/chat_ui/src/lib.rs b/crates/chat_ui/src/lib.rs index d5d6f41..72d1229 100644 --- a/crates/chat_ui/src/lib.rs +++ b/crates/chat_ui/src/lib.rs @@ -4,7 +4,7 @@ use std::sync::Arc; pub use actions::*; use anyhow::{Context as AnyhowContext, Error}; use chat::{Message, RenderedMessage, Room, RoomEvent, SendReport}; -use common::{nip96_upload, RenderedTimestamp}; +use common::RenderedTimestamp; use gpui::prelude::FluentBuilder; use gpui::{ deferred, div, img, list, px, red, relative, rems, svg, white, AnyElement, App, AppContext, @@ -21,7 +21,7 @@ use settings::AppSettings; use smallvec::{smallvec, SmallVec}; use smol::fs; use smol::lock::RwLock; -use state::NostrRegistry; +use state::{nostr_upload, NostrRegistry}; use theme::ActiveTheme; use ui::avatar::Avatar; use ui::button::{Button, ButtonVariants}; @@ -504,7 +504,7 @@ impl ChatPanel { let upload = Tokio::spawn(cx, async move { let file = fs::read(path).await.ok()?; - let url = nip96_upload(&client, &nip96_server, file).await.ok()?; + let url = nostr_upload(&client, &nip96_server, file).await.ok()?; Some(url) }); diff --git a/crates/common/Cargo.toml b/crates/common/Cargo.toml index 44b7514..9e2e6e9 100644 --- a/crates/common/Cargo.toml +++ b/crates/common/Cargo.toml @@ -15,7 +15,6 @@ chrono.workspace = true smallvec.workspace = true smol.workspace = true futures.workspace = true -reqwest.workspace = true log.workspace = true dirs = "5.0" diff --git a/crates/common/src/lib.rs b/crates/common/src/lib.rs index 75511a4..5f19e54 100644 --- a/crates/common/src/lib.rs +++ b/crates/common/src/lib.rs @@ -1,11 +1,9 @@ pub use debounced_delay::*; pub use display::*; pub use event::*; -pub use nip96::*; pub use paths::*; mod debounced_delay; mod display; mod event; -mod nip96; mod paths; diff --git a/crates/common/src/nip05.rs b/crates/common/src/nip05.rs deleted file mode 100644 index 1286033..0000000 --- a/crates/common/src/nip05.rs +++ /dev/null @@ -1,31 +0,0 @@ -use anyhow::anyhow; -use nostr::prelude::*; -use reqwest::Client as ReqClient; - -pub async fn nip05_verify(public_key: PublicKey, address: &str) -> Result { - let req_client = ReqClient::new(); - let address = Nip05Address::parse(address)?; - - // Get NIP-05 response - let res = req_client.get(address.url().to_string()).send().await?; - let json: Value = res.json().await?; - - let verify = nip05::verify_from_json(&public_key, &address, &json); - - Ok(verify) -} - -pub async fn nip05_profile(address: &str) -> Result { - let req_client = ReqClient::new(); - let address = Nip05Address::parse(address)?; - - // Get NIP-05 response - let res = req_client.get(address.url().to_string()).send().await?; - let json: Value = res.json().await?; - - if let Ok(profile) = Nip05Profile::from_json(&address, &json) { - Ok(profile) - } else { - Err(anyhow!("Failed to get NIP-05 profile")) - } -} diff --git a/crates/coop/Cargo.toml b/crates/coop/Cargo.toml index 3ac2f2a..ea93b45 100644 --- a/crates/coop/Cargo.toml +++ b/crates/coop/Cargo.toml @@ -44,6 +44,9 @@ relay_auth = { path = "../relay_auth" } gpui.workspace = true gpui_platform.workspace = true +gpui_linux.workspace = true +gpui_windows.workspace = true +gpui_macos.workspace = true gpui_tokio.workspace = true reqwest_client.workspace = true diff --git a/crates/coop/src/main.rs b/crates/coop/src/main.rs index 68ac196..811cb73 100644 --- a/crates/coop/src/main.rs +++ b/crates/coop/src/main.rs @@ -103,7 +103,7 @@ fn main() { person::init(cx); // Initialize auto update - auto_update::init(cx); + auto_update::init(window, cx); // Root Entity Root::new(workspace::init(window, cx).into(), window, cx) diff --git a/crates/coop/src/panels/profile.rs b/crates/coop/src/panels/profile.rs index 7152698..b6f418e 100644 --- a/crates/coop/src/panels/profile.rs +++ b/crates/coop/src/panels/profile.rs @@ -2,7 +2,7 @@ use std::str::FromStr; use std::time::Duration; use anyhow::{anyhow, Error}; -use common::{nip96_upload, shorten_pubkey}; +use common::shorten_pubkey; use gpui::{ div, rems, AnyElement, App, AppContext, ClipboardItem, Context, Entity, EventEmitter, FocusHandle, Focusable, IntoElement, ParentElement, PathPromptOptions, Render, SharedString, @@ -13,7 +13,7 @@ use nostr_sdk::prelude::*; use person::{Person, PersonRegistry}; use settings::AppSettings; use smol::fs; -use state::NostrRegistry; +use state::{nostr_upload, NostrRegistry}; use theme::ActiveTheme; use ui::avatar::Avatar; use ui::button::{Button, ButtonVariants}; @@ -170,7 +170,7 @@ impl ProfilePanel { Ok(Ok(Some(mut paths))) => { if let Some(path) = paths.pop() { let file = fs::read(path).await?; - let url = nip96_upload(&client, &nip96_server, file).await?; + let url = nostr_upload(&client, &nip96_server, file).await?; Ok(url) } else { diff --git a/crates/state/Cargo.toml b/crates/state/Cargo.toml index 6f440ef..29c49bb 100644 --- a/crates/state/Cargo.toml +++ b/crates/state/Cargo.toml @@ -7,6 +7,7 @@ publish.workspace = true [dependencies] common = { path = "../common" } +nostr.workspace = true nostr-sdk.workspace = true nostr-lmdb.workspace = true nostr-connect.workspace = true @@ -14,7 +15,6 @@ nostr-connect.workspace = true gpui.workspace = true gpui_tokio.workspace = true smol.workspace = true -reqwest.workspace = true flume.workspace = true log.workspace = true anyhow.workspace = true @@ -25,3 +25,4 @@ serde_json.workspace = true rustls = "0.23" petname = "2.0.2" whoami = "1.6.1" +reqwest = { version = "0.12", features = ["multipart", "stream", "json"] } diff --git a/crates/state/src/lib.rs b/crates/state/src/lib.rs index 07a6330..a19255a 100644 --- a/crates/state/src/lib.rs +++ b/crates/state/src/lib.rs @@ -13,11 +13,13 @@ use nostr_sdk::prelude::*; mod constants; mod gossip; mod nip05; +mod nip96; mod signer; pub use constants::*; pub use gossip::*; pub use nip05::*; +pub use nip96::*; pub use signer::*; pub fn init(window: &mut Window, cx: &mut App) { diff --git a/crates/common/src/nip96.rs b/crates/state/src/nip96.rs similarity index 98% rename from crates/common/src/nip96.rs rename to crates/state/src/nip96.rs index c40cc89..e5974bf 100644 --- a/crates/common/src/nip96.rs +++ b/crates/state/src/nip96.rs @@ -59,7 +59,7 @@ where Ok(upload_response.download_url()?.to_owned()) } -pub async fn nip96_upload( +pub async fn nostr_upload( client: &Client, server: &Url, file: Vec, diff --git a/crates/theme/src/lib.rs b/crates/theme/src/lib.rs index 8d60b00..5e74fcd 100644 --- a/crates/theme/src/lib.rs +++ b/crates/theme/src/lib.rs @@ -78,6 +78,9 @@ pub struct Theme { /// Show the scrollbar mode, default: scrolling pub scrollbar_mode: ScrollbarMode, + + /// Platform kind + pub platform: PlatformKind, } impl Deref for Theme { @@ -201,6 +204,7 @@ impl From for Theme { mode, colors: *colors, theme: Rc::new(family), + platform, } } } diff --git a/crates/title_bar/src/lib.rs b/crates/title_bar/src/lib.rs index c49ddcb..24bb446 100644 --- a/crates/title_bar/src/lib.rs +++ b/crates/title_bar/src/lib.rs @@ -1,12 +1,11 @@ -use std::mem; - use gpui::prelude::FluentBuilder; #[cfg(target_os = "linux")] use gpui::MouseButton; +#[cfg(not(target_os = "windows"))] +use gpui::Pixels; use gpui::{ div, px, AnyElement, Context, Decorations, Hsla, InteractiveElement as _, IntoElement, - ParentElement, Pixels, Render, StatefulInteractiveElement as _, Styled, Window, - WindowControlArea, + ParentElement, Render, StatefulInteractiveElement as _, Styled, Window, WindowControlArea, }; use smallvec::{smallvec, SmallVec}; use theme::{ActiveTheme, PlatformKind, CLIENT_SIDE_DECORATION_ROUNDING}; @@ -14,42 +13,39 @@ use ui::h_flex; #[cfg(target_os = "linux")] use crate::platforms::linux::LinuxWindowControls; +use crate::platforms::mac::TRAFFIC_LIGHT_PADDING; use crate::platforms::windows::WindowsWindowControls; mod platforms; +/// Titlebar pub struct TitleBar { + /// Children elements of the title bar. children: SmallVec<[AnyElement; 2]>, - platform_kind: PlatformKind, - should_move: bool, -} -impl Default for TitleBar { - fn default() -> Self { - Self::new() - } + /// Whether the title bar is currently being moved. + should_move: bool, } impl TitleBar { pub fn new() -> Self { Self { children: smallvec![], - platform_kind: PlatformKind::platform(), should_move: false, } } #[cfg(not(target_os = "windows"))] - pub fn height(window: &mut Window) -> Pixels { + pub fn height(&self, window: &mut Window) -> Pixels { (1.75 * window.rem_size()).max(px(34.)) } #[cfg(target_os = "windows")] - pub fn height(_window: &mut Window) -> Pixels { + pub fn height(&self, _window: &mut Window) -> Pixels { px(32.) } - pub fn title_bar_color(&self, window: &mut Window, cx: &mut Context) -> Hsla { + pub fn titlebar_color(&self, window: &mut Window, cx: &mut Context) -> Hsla { if cfg!(any(target_os = "linux", target_os = "freebsd")) { if window.is_window_active() && !self.should_move { cx.theme().title_bar @@ -69,66 +65,62 @@ impl TitleBar { } } -impl ParentElement for TitleBar { - fn extend(&mut self, elements: impl IntoIterator) { - self.children.extend(elements) +impl Default for TitleBar { + fn default() -> Self { + Self::new() } } impl Render for TitleBar { fn render(&mut self, window: &mut Window, cx: &mut Context) -> impl IntoElement { + let height = self.height(window); + let color = self.titlebar_color(window, cx); + let children = std::mem::take(&mut self.children); + #[cfg(target_os = "linux")] let supported_controls = window.window_controls(); let decorations = window.window_decorations(); - let height = Self::height(window); - let color = self.title_bar_color(window, cx); - let children = mem::take(&mut self.children); h_flex() .window_control_area(WindowControlArea::Drag) - .w_full() .h(height) + .w_full() .map(|this| { if window.is_fullscreen() { this.px_2() - } else if self.platform_kind.is_mac() { - this.pl(px(platforms::mac::TRAFFIC_LIGHT_PADDING)) - .pr_2() - .when(children.len() <= 1, |this| { - this.pr(px(platforms::mac::TRAFFIC_LIGHT_PADDING)) - }) + } else if cx.theme().platform.is_mac() { + this.pr_2().pl(px(TRAFFIC_LIGHT_PADDING)) } else { this.px_2() } }) .map(|this| match decorations { Decorations::Server => this, - Decorations::Client { tiling, .. } => this - .when(!(tiling.top || tiling.right), |el| { - el.rounded_tr(CLIENT_SIDE_DECORATION_ROUNDING) + Decorations::Client { tiling } => this + .when(!(tiling.top || tiling.right), |div| { + div.rounded_tr(CLIENT_SIDE_DECORATION_ROUNDING) }) - .when(!(tiling.top || tiling.left), |el| { - el.rounded_tl(CLIENT_SIDE_DECORATION_ROUNDING) + .when(!(tiling.top || tiling.left), |div| { + div.rounded_tl(CLIENT_SIDE_DECORATION_ROUNDING) }), }) .bg(color) + .border_b_1() + .border_color(cx.theme().border) .content_stretch() .child( - div() + h_flex() .id("title-bar") - .flex() - .flex_row() - .items_center() .justify_between() .w_full() - .when(self.platform_kind.is_mac(), |this| { + .when(cx.theme().platform.is_mac(), |this| { this.on_click(|event, window, _| { if event.click_count() == 2 { window.titlebar_double_click(); } }) }) - .when(self.platform_kind.is_linux(), |this| { + .when(cx.theme().platform.is_linux(), |this| { this.on_click(|event, window, _| { if event.click_count() == 2 { window.zoom_window(); @@ -137,45 +129,60 @@ impl Render for TitleBar { }) .children(children), ) - .when(!window.is_fullscreen(), |this| match self.platform_kind { - PlatformKind::Linux => { - #[cfg(target_os = "linux")] - if matches!(decorations, Decorations::Client { .. }) { - this.child(LinuxWindowControls::new(None)) - .when(supported_controls.window_menu, |this| { - this.on_mouse_down(MouseButton::Right, move |ev, window, _| { - window.show_window_menu(ev.position) - }) - }) - .on_mouse_move(cx.listener(move |this, _ev, window, _| { - if this.should_move { - this.should_move = false; - window.start_window_move(); + .child( + h_flex() + .absolute() + .top_0() + .right_0() + .pr_2() + .h(height) + .child( + div().when(!window.is_fullscreen(), |this| match cx.theme().platform { + PlatformKind::Linux => { + #[cfg(target_os = "linux")] + if matches!(decorations, Decorations::Client { .. }) { + this.child(LinuxWindowControls::new(None)) + .when(supported_controls.window_menu, |this| { + this.on_mouse_down( + MouseButton::Right, + move |ev, window, _| { + window.show_window_menu(ev.position) + }, + ) + }) + .on_mouse_move(cx.listener(move |this, _ev, window, _| { + if this.should_move { + this.should_move = false; + window.start_window_move(); + } + })) + .on_mouse_down_out(cx.listener( + move |this, _ev, _window, _cx| { + this.should_move = false; + }, + )) + .on_mouse_up( + MouseButton::Left, + cx.listener(move |this, _ev, _window, _cx| { + this.should_move = false; + }), + ) + .on_mouse_down( + MouseButton::Left, + cx.listener(move |this, _ev, _window, _cx| { + this.should_move = true; + }), + ) + } else { + this } - })) - .on_mouse_down_out(cx.listener(move |this, _ev, _window, _cx| { - this.should_move = false; - })) - .on_mouse_up( - MouseButton::Left, - cx.listener(move |this, _ev, _window, _cx| { - this.should_move = false; - }), - ) - .on_mouse_down( - MouseButton::Left, - cx.listener(move |this, _ev, _window, _cx| { - this.should_move = true; - }), - ) - } else { - this - } - #[cfg(not(target_os = "linux"))] - this - } - PlatformKind::Windows => this.child(WindowsWindowControls::new(height)), - PlatformKind::Mac => this, - }) + #[cfg(not(target_os = "linux"))] + this + } + PlatformKind::Windows => this.child(WindowsWindowControls::new(height)), + PlatformKind::Mac => this, + }), + ), + ) } } diff --git a/crates/title_bar/src/platforms/linux.rs b/crates/title_bar/src/platforms/linux.rs index b164b6f..1f9731d 100644 --- a/crates/title_bar/src/platforms/linux.rs +++ b/crates/title_bar/src/platforms/linux.rs @@ -1,11 +1,10 @@ use std::collections::HashMap; -use std::path::PathBuf; use std::sync::OnceLock; use gpui::prelude::FluentBuilder; use gpui::{ - img, Action, App, InteractiveElement, IntoElement, MouseButton, ParentElement, RenderOnce, - StatefulInteractiveElement, Styled, Window, + svg, Action, App, InteractiveElement, IntoElement, MouseButton, ParentElement, RenderOnce, + SharedString, StatefulInteractiveElement, Styled, Window, }; use linicon::{lookup_icon, IconType}; use theme::ActiveTheme; @@ -26,21 +25,26 @@ impl LinuxWindowControls { impl RenderOnce for LinuxWindowControls { fn render(self, window: &mut Window, _cx: &mut App) -> impl IntoElement { + let supported_controls = window.window_controls(); + h_flex() .id("linux-window-controls") - .px_2() .gap_2() .on_mouse_down(MouseButton::Left, |_, _, cx| cx.stop_propagation()) - .child(WindowControl::new( - LinuxControl::Minimize, - IconName::WindowMinimize, - )) - .child({ - if window.is_maximized() { - WindowControl::new(LinuxControl::Restore, IconName::WindowRestore) - } else { - WindowControl::new(LinuxControl::Maximize, IconName::WindowMaximize) - } + .when(supported_controls.minimize, |this| { + this.child(WindowControl::new( + LinuxControl::Minimize, + IconName::WindowMinimize, + )) + }) + .when(supported_controls.maximize, |this| { + this.child({ + if window.is_maximized() { + WindowControl::new(LinuxControl::Restore, IconName::WindowRestore) + } else { + WindowControl::new(LinuxControl::Maximize, IconName::WindowMaximize) + } + }) }) .child( WindowControl::new(LinuxControl::Close, IconName::WindowClose) @@ -87,24 +91,22 @@ impl RenderOnce for WindowControl { .justify_center() .items_center() .rounded_full() - .map(|this| { - if is_gnome { - this.size_6() - .bg(cx.theme().tab_inactive_background) - .hover(|this| this.bg(cx.theme().tab_hover_background)) - .active(|this| this.bg(cx.theme().tab_active_background)) - } else { - this.size_5() - .bg(cx.theme().ghost_element_background) - .hover(|this| this.bg(cx.theme().ghost_element_hover)) - .active(|this| this.bg(cx.theme().ghost_element_active)) - } + .size_6() + .when(is_gnome, |this| { + this.bg(cx.theme().ghost_element_background_alt) + .hover(|this| this.bg(cx.theme().ghost_element_hover)) + .active(|this| this.bg(cx.theme().ghost_element_active)) }) .map(|this| { if let Some(Some(path)) = linux_controls().get(&self.kind).cloned() { - this.child(img(path).flex_grow().size_4()) + this.child( + svg() + .external_path(SharedString::from(path)) + .size_4() + .text_color(cx.theme().text), + ) } else { - this.child(Icon::new(self.fallback).flex_grow().small()) + this.child(Icon::new(self.fallback).small().text_color(cx.theme().text)) } }) .on_mouse_move(|_, _window, cx| cx.stop_propagation()) @@ -114,20 +116,14 @@ impl RenderOnce for WindowControl { LinuxControl::Minimize => window.minimize_window(), LinuxControl::Restore => window.zoom_window(), LinuxControl::Maximize => window.zoom_window(), - LinuxControl::Close => window.dispatch_action( - self.close_action - .as_ref() - .expect("Use WindowControl::new_close() for close control.") - .boxed_clone(), - cx, - ), + LinuxControl::Close => cx.quit(), } }) } } static DE: OnceLock = OnceLock::new(); -static LINUX_CONTROLS: OnceLock>> = OnceLock::new(); +static LINUX_CONTROLS: OnceLock>> = OnceLock::new(); #[derive(Debug, Clone, Copy, PartialEq)] pub enum DesktopEnvironment { @@ -182,7 +178,7 @@ impl LinuxControl { } } -fn linux_controls() -> &'static HashMap> { +fn linux_controls() -> &'static HashMap> { LINUX_CONTROLS.get_or_init(|| { let mut icons = HashMap::new(); icons.insert(LinuxControl::Close, None); @@ -219,7 +215,9 @@ fn linux_controls() -> &'static HashMap> { } if let Some(Ok(icon)) = control_icon { - icons.entry(control).and_modify(|v| *v = Some(icon.path)); + icons + .entry(control) + .and_modify(|v| *v = Some(icon.path.to_string_lossy().to_string())); } } } diff --git a/rust-toolchain.toml b/rust-toolchain.toml index fc96120..440987a 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,5 +1,5 @@ [toolchain] -channel = "1.91" +channel = "1.92" profile = "minimal" components = ["rustfmt", "clippy"] targets = [