diff --git a/Cargo.lock b/Cargo.lock index df66861ba2..c695a0073c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -342,7 +342,7 @@ dependencies = [ "futures 0.3.32", "futures-concurrency", "rustc-hash 2.1.1", - "rustix 1.1.4", + "rustix", "schemars 1.0.4", "serde", "serde_json", @@ -628,11 +628,11 @@ dependencies = [ "piper", "polling", "regex-automata", - "rustix 1.1.4", + "rustix", "rustix-openpty", "serde", "signal-hook", - "unicode-width", + "unicode-width 0.2.2", "vte", "windows-sys 0.59.0", ] @@ -697,14 +697,13 @@ checksum = "e9d4ee0d472d1cd2e28c97dfa124b3d8d992e10eb0a035f33f5d12e3a177ba3b" [[package]] name = "ammonia" -version = "4.1.2" +version = "4.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17e913097e1a2124b46746c980134e8c954bc17a6a59bb3fde96f088d126dde6" +checksum = "dc6d763210e2eb7670d1a5183a08bebefa3f97db2a738a684f2ce00bd49f681d" dependencies = [ - "cssparser 0.35.0", - "html5ever 0.35.0", + "cssparser 0.37.0", + "html5ever", "maplit", - "tendril", "url", ] @@ -731,7 +730,7 @@ checksum = "c86cd1c51b95d71dde52bca69ed225008f6ff4c8cc825b08042aa1ef823e1980" dependencies = [ "anstyle", "memchr", - "unicode-width", + "unicode-width 0.2.2", ] [[package]] @@ -798,7 +797,7 @@ dependencies = [ "schemars 1.0.4", "serde", "serde_json", - "strum 0.27.2", + "strum 0.28.0", "thiserror 2.0.17", ] @@ -936,7 +935,7 @@ dependencies = [ "smol", "tempfile", "util", - "which 6.0.3", + "which", "windows 0.61.3", "zeroize", ] @@ -1084,7 +1083,7 @@ dependencies = [ "futures-lite 2.6.1", "parking", "polling", - "rustix 1.1.4", + "rustix", "slab", "windows-sys 0.61.2", ] @@ -1134,7 +1133,7 @@ dependencies = [ "cfg-if", "event-listener 5.4.1", "futures-lite 2.6.1", - "rustix 1.1.4", + "rustix", ] [[package]] @@ -1160,7 +1159,7 @@ dependencies = [ "cfg-if", "futures-core", "futures-io", - "rustix 1.1.4", + "rustix", "signal-hook-registry", "slab", "windows-sys 0.61.2", @@ -1247,9 +1246,9 @@ dependencies = [ [[package]] name = "async-tungstenite" -version = "0.31.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee88b4c88ac8c9ea446ad43498955750a4bbe64c4392f21ccfe5d952865e318f" +checksum = "f3b465d66478a9bb84abed46695c44a58e34f3e8d0abfb2e958218d420969049" dependencies = [ "atomic-waker", "futures-core", @@ -1261,7 +1260,7 @@ dependencies = [ "rustls-pki-types", "tokio", "tokio-rustls 0.26.4", - "tungstenite 0.27.0", + "tungstenite 0.28.0", ] [[package]] @@ -1402,7 +1401,7 @@ dependencies = [ "smol", "tempfile", "util", - "which 6.0.3", + "which", "workspace", "zlog", ] @@ -1863,7 +1862,7 @@ dependencies = [ "pin-project-lite", "rustls 0.21.12", "rustls 0.23.40", - "rustls-native-certs 0.8.3", + "rustls-native-certs", "rustls-pki-types", "tokio", "tokio-rustls 0.26.4", @@ -2113,10 +2112,16 @@ dependencies = [ "schemars 1.0.4", "serde", "serde_json", - "strum 0.27.2", + "strum 0.28.0", "thiserror 2.0.17", ] +[[package]] +name = "beef" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a8241f3ebb85c056b509d4327ad0358fbbba6ffb340bf388f26350aeda225b1" + [[package]] name = "benchmarks" version = "0.1.0" @@ -2670,7 +2675,7 @@ source = "git+https://github.com/zed-industries/calloop#eb6b4fd17b9af5ecc226546b dependencies = [ "bitflags 2.13.1", "polling", - "rustix 1.1.4", + "rustix", "slab", "tracing", ] @@ -2682,7 +2687,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "138efcf0940a02ebf0cc8d1eff41a1682a46b431630f4c52450d6265876021fa" dependencies = [ "calloop", - "rustix 1.1.4", + "rustix", "wayland-backend", "wayland-client", ] @@ -2720,7 +2725,7 @@ dependencies = [ "io-lifetimes 3.0.1", "ipnet", "maybe-owned", - "rustix 1.1.4", + "rustix", "rustix-linux-procfs", "windows-sys 0.61.2", "winx", @@ -2735,7 +2740,7 @@ dependencies = [ "cap-primitives", "io-extras", "io-lifetimes 3.0.1", - "rustix 1.1.4", + "rustix", ] [[package]] @@ -3196,7 +3201,7 @@ dependencies = [ "pretty_assertions", "serde", "serde_json", - "strum 0.27.2", + "strum 0.28.0", "zeta_prompt", ] @@ -3207,7 +3212,7 @@ dependencies = [ "anyhow", "serde", "serde_json", - "strum 0.27.2", + "strum 0.28.0", "uuid", "zeta_prompt", ] @@ -3298,7 +3303,7 @@ checksum = "ba7a06c0b31fff5ff2e1e7d37dbf940864e2a974b336e1a2938d10af6e8fb283" dependencies = [ "serde", "termcolor", - "unicode-width", + "unicode-width 0.2.2", ] [[package]] @@ -3379,7 +3384,7 @@ dependencies = [ "pretty_assertions", "project", "prometheus", - "prost 0.9.0", + "prost", "rand 0.9.4", "recent_projects", "release_channel", @@ -3396,7 +3401,7 @@ dependencies = [ "settings", "sha2", "sqlx", - "strum 0.27.2", + "strum 0.28.0", "task", "telemetry_events", "text", @@ -3564,7 +3569,7 @@ dependencies = [ "gpui", "inventory", "parking_lot", - "strum 0.27.2", + "strum 0.28.0", "theme", ] @@ -3636,7 +3641,7 @@ checksum = "d64e8af5551369d19cf50138de61f1c42074ab970f74e99be916646777f8fc87" dependencies = [ "encode_unicode", "libc", - "unicode-width", + "unicode-width 0.2.2", "windows-sys 0.61.2", ] @@ -3732,15 +3737,6 @@ dependencies = [ "util", ] -[[package]] -name = "convert_case" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baaaa0ecca5b51987b9423ccdc971514dd8b0bb7b4060b983d3664dad3f1f89f" -dependencies = [ - "unicode-segmentation", -] - [[package]] name = "convert_case" version = "0.10.0" @@ -3935,11 +3931,11 @@ dependencies = [ [[package]] name = "core-services" -version = "0.2.1" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92567e81db522550ebaf742c5d875624ec7820c2c7ee5f8c60e4ce7c2ae3c0fd" +checksum = "f0aa845ab21b847ee46954be761815f18f16469b29ef3ba250241b1b8bab659a" dependencies = [ - "core-foundation 0.9.4", + "core-foundation 0.10.0", ] [[package]] @@ -4013,9 +4009,9 @@ dependencies = [ [[package]] name = "coreaudio-sys" -version = "0.2.17" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ceec7a6067e62d6f931a2baf6f3a751f4a892595bcec1461a3c94ef9949864b6" +checksum = "b9b4739a805a62757a83e5654fa3faabec0442666b263bb2287d5a8185bfd953" dependencies = [ "bindgen 0.72.1", ] @@ -4053,7 +4049,7 @@ dependencies = [ "alsa", "coreaudio-rs 0.13.0", "dasp_sample", - "jni", + "jni 0.21.1", "js-sys", "libc", "mach2 0.5.0", @@ -4249,25 +4245,25 @@ checksum = "b7431dd8c9def94aca43b27915dee0d42103d9b13922cfb044febcd975547d68" [[package]] name = "crash-context" -version = "0.6.3" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "031ed29858d90cfdf27fe49fae28028a1f20466db97962fa2f4ea34809aeebf3" +checksum = "3748e166981fa3ba9dc54ff950ad0ed5ca4aab4b73eae21d9f539659fe806e28" dependencies = [ "cfg-if", "libc", - "mach2 0.4.3", + "mach2 0.6.0", ] [[package]] name = "crash-handler" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0df5c9639f4942eb7702b964b3f9adf03a55724a57558cc177407388a8b936e2" +checksum = "c16fd44a8db657c3647d6b4c9eb4b41a43a2954947469ed90abcdb310c8eba96" dependencies = [ "cfg-if", "crash-context", "libc", - "mach2 0.4.3", + "mach2 0.6.0", "parking_lot", ] @@ -4463,19 +4459,6 @@ dependencies = [ "typenum", ] -[[package]] -name = "cssparser" -version = "0.35.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e901edd733a1472f944a45116df3f846f54d37e67e68640ac8bb69689aca2aa" -dependencies = [ - "cssparser-macros", - "dtoa-short", - "itoa", - "phf 0.11.3", - "smallvec", -] - [[package]] name = "cssparser" version = "0.36.0" @@ -4489,6 +4472,17 @@ dependencies = [ "smallvec", ] +[[package]] +name = "cssparser" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c9cdaae01d5ed7882b04d795e7f752f46ff52d2fa3b50a20d28c464510bba98" +dependencies = [ + "dtoa-short", + "itoa", + "smallvec", +] + [[package]] name = "cssparser-macros" version = "0.6.1" @@ -5204,27 +5198,27 @@ dependencies = [ [[package]] name = "documented" -version = "0.9.2" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed6b3e31251e87acd1b74911aed84071c8364fc9087972748ade2f1094ccce34" +checksum = "c278cf01d971a2ce2e4a97f2af1c13706e111c2c05636a88f93520b61c75b3cb" dependencies = [ "documented-macros", - "phf 0.12.1", + "phf 0.13.1", "thiserror 2.0.17", ] [[package]] name = "documented-macros" -version = "0.9.2" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1149cf7462e5e79e17a3c05fd5b1f9055092bbfa95e04c319395c3beacc9370f" +checksum = "3605d4f0b4326a3a1909b6d258b47478c0d47bb668ad2cb7d4a6e2d22e852f5c" dependencies = [ - "convert_case 0.8.0", - "itertools 0.14.0", + "convert_case 0.11.0", + "itertools 0.15.0", "optfield", "proc-macro2", "quote", - "strum 0.27.2", + "strum 0.28.0", "syn 2.0.117", ] @@ -5380,7 +5374,7 @@ dependencies = [ "serde", "serde_json", "settings", - "strum 0.27.2", + "strum 0.28.0", "telemetry", "telemetry_events", "text", @@ -5450,7 +5444,7 @@ dependencies = [ "smol", "sqlez", "sqlez_macros", - "strum 0.27.2", + "strum 0.28.0", "telemetry_events", "tempfile", "terminal_view", @@ -5626,7 +5620,7 @@ dependencies = [ "ui_input", "unicode-script", "unicode-segmentation", - "unicode-width", + "unicode-width 0.2.2", "unindent", "url", "urlencoding", @@ -5735,11 +5729,11 @@ checksum = "edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d" [[package]] name = "emojis" -version = "0.6.4" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99e1f1df1f181f2539bac8bf027d31ca5ffbf9e559e3f2d09413b9107b5c02f4" +checksum = "0b1514ced566c94991ed9563258ecf61e311fd773bf0a3f20606830386bf66e3" dependencies = [ - "phf 0.11.3", + "phf 0.13.1", ] [[package]] @@ -6139,7 +6133,7 @@ dependencies = [ "util", "wasm-encoder 0.252.0", "wasmparser 0.252.0", - "which 6.0.3", + "which", "ztracing", ] @@ -6253,7 +6247,7 @@ dependencies = [ "semver", "serde", "settings", - "strum 0.27.2", + "strum 0.28.0", "telemetry", "theme_settings", "ui", @@ -6271,20 +6265,9 @@ checksum = "c942e64b20ecd39933d5ff938ca4fdb6ef0d298cc3855b231179a5ef0b24948d" [[package]] name = "fancy-regex" -version = "0.16.2" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "998b056554fbe42e03ae0e152895cd1a7e1002aec800fdc6635d20270260c46f" -dependencies = [ - "bit-set 0.8.0", - "regex-automata", - "regex-syntax", -] - -[[package]] -name = "fancy-regex" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1e1dacd0d2082dfcf1351c4bdd566bbe89a2b263235a2b50058f1e130a47277" +checksum = "476de73bddf2ef8490aa4ee8f1cf40b430bf1d56c48c22080e5186952cd580e6" dependencies = [ "bit-set 0.8.0", "regex-automata", @@ -6460,12 +6443,6 @@ version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d45db016d36b838f563236e9193d0ee6ce38f3f68b6c94e914b4929c96bbb890" -[[package]] -name = "fixedbitset" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" - [[package]] name = "fixedbitset" version = "0.5.7" @@ -6655,12 +6632,12 @@ dependencies = [ [[package]] name = "fraction" -version = "0.15.3" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f158e3ff0a1b334408dc9fb811cd99b446986f4d8b741bb08f9df1604085ae7" +checksum = "33fee0259ffdc3d7bd64438b6b08437884d4df5700f9cb8a23b079c3958ae578" dependencies = [ - "lazy_static", "num", + "num-bigint", ] [[package]] @@ -6699,7 +6676,7 @@ dependencies = [ "paths", "proto", "rope", - "rustix 1.1.4", + "rustix", "serde", "serde_json", "slotmap", @@ -6721,7 +6698,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94e7099f6313ecacbe1256e8ff9d617b75d1bcb16a6fddef94866d225a01a14a" dependencies = [ "io-lifetimes 2.0.4", - "rustix 1.1.4", + "rustix", "windows-sys 0.59.0", ] @@ -6771,16 +6748,6 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" -[[package]] -name = "futf" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843" -dependencies = [ - "mac", - "new_debug_unreachable", -] - [[package]] name = "futures" version = "0.1.31" @@ -6818,7 +6785,7 @@ version = "7.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "175cd8cca9e1d45b87f18ffa75088f2099e3c4fe5e2f83e42de112560bea8ea6" dependencies = [ - "fixedbitset 0.5.7", + "fixedbitset", "futures-core", "futures-lite 2.6.1", "pin-project", @@ -7005,7 +6972,7 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1bd49230192a3797a9a4d6abe9b3eed6f7fa4c8a8a4947977c6f80025f92cbd8" dependencies = [ - "rustix 1.1.4", + "rustix", "windows-link 0.2.1", ] @@ -7225,7 +7192,7 @@ dependencies = [ "serde_json", "settings", "smallvec", - "strum 0.27.2", + "strum 0.28.0", "sysinfo 0.37.2", "task", "telemetry", @@ -7451,7 +7418,7 @@ dependencies = [ "schemars 1.0.4", "serde", "serde_json", - "strum 0.27.2", + "strum 0.28.0", ] [[package]] @@ -7548,7 +7515,7 @@ dependencies = [ "smallvec", "spin 0.10.0", "stacksafe", - "strum 0.27.2", + "strum 0.28.0", "sum_tree", "taffy", "thiserror 2.0.17", @@ -7619,7 +7586,7 @@ dependencies = [ "raw-window-handle", "smallvec", "smol", - "strum 0.27.2", + "strum 0.28.0", "url", "uuid", "wayland-backend", @@ -7675,7 +7642,7 @@ dependencies = [ "raw-window-handle", "semver", "smallvec", - "strum 0.27.2", + "strum 0.28.0", "uuid", "zed-font-kit", ] @@ -7728,7 +7695,7 @@ version = "0.1.0" dependencies = [ "anyhow", "log", - "which 6.0.3", + "which", ] [[package]] @@ -8037,11 +8004,7 @@ version = "7.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "765c9198f173dd59ce26ff9f95ef0aafd0a0fe01fb9d72841bc5066a4c06511d" dependencies = [ - "base64 0.21.7", "byteorder", - "crossbeam-channel", - "flate2", - "nom 7.1.3", "num-traits", ] @@ -8079,15 +8042,6 @@ dependencies = [ "stable_deref_trait", ] -[[package]] -name = "heck" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" -dependencies = [ - "unicode-segmentation", -] - [[package]] name = "heck" version = "0.4.1" @@ -8194,27 +8148,12 @@ checksum = "62adaabb884c94955b19907d60019f4e145d091c75345379e70d1ee696f7854f" [[package]] name = "html5ever" -version = "0.27.0" +version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c13771afe0e6e846f1e67d038d4cb29998a6779f93c809212e4e9c32efd244d4" +checksum = "46a1761807faccc9a19e86944bbf40610014066306f96edcdedc2fb714bcb7b8" dependencies = [ "log", - "mac", - "markup5ever 0.12.1", - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "html5ever" -version = "0.35.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55d958c2f74b664487a2035fe1dadb032c48718a03b63f3ab0b8537db8549ed4" -dependencies = [ - "log", - "markup5ever 0.35.0", - "match_token", + "markup5ever", ] [[package]] @@ -8222,7 +8161,7 @@ name = "html_to_markdown" version = "0.1.0" dependencies = [ "anyhow", - "html5ever 0.27.0", + "html5ever", "indoc", "markup5ever_rcdom", "pretty_assertions", @@ -8238,7 +8177,7 @@ dependencies = [ "memchr", "pastey", "phf 0.13.1", - "phf_codegen 0.13.1", + "phf_codegen", "serde_json", ] @@ -8332,8 +8271,10 @@ dependencies = [ name = "http_client_tls" version = "0.1.0" dependencies = [ + "log", "rustls 0.23.40", "rustls-platform-verifier", + "webpki-roots 1.0.8", ] [[package]] @@ -8448,7 +8389,7 @@ dependencies = [ "hyper-util", "log", "rustls 0.23.40", - "rustls-native-certs 0.8.3", + "rustls-native-certs", "tokio", "tokio-rustls 0.26.4", "tower-service", @@ -8533,7 +8474,7 @@ name = "icons" version = "0.1.0" dependencies = [ "serde", - "strum 0.27.2", + "strum 0.28.0", ] [[package]] @@ -9026,16 +8967,6 @@ version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" 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" version = "0.2.0" @@ -9108,6 +9039,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b4baf93f58d4425749ca49a51c50ebab072c5df6994d08fed93541c331481dc" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.18" @@ -9147,19 +9087,68 @@ dependencies = [ "cesu8", "cfg-if", "combine", - "jni-sys", + "jni-sys 0.3.0", "log", "thiserror 1.0.69", "walkdir", "windows-sys 0.45.0", ] +[[package]] +name = "jni" +version = "0.22.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5efd9a482cf3a427f00d6b35f14332adc7902ce91efb778580e180ff90fa3498" +dependencies = [ + "cfg-if", + "combine", + "jni-macros", + "jni-sys 0.4.1", + "log", + "simd_cesu8", + "thiserror 2.0.17", + "walkdir", + "windows-link 0.2.1", +] + +[[package]] +name = "jni-macros" +version = "0.22.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a00109accc170f0bdb141fed3e393c565b6f5e072365c3bd58f5b062591560a3" +dependencies = [ + "proc-macro2", + "quote", + "rustc_version", + "simd_cesu8", + "syn 2.0.117", +] + [[package]] name = "jni-sys" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" +[[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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38c0b942f458fe50cdac086d2f946512305e5631e720728f2a61aabcd47a6264" +dependencies = [ + "quote", + "syn 2.0.117", +] + [[package]] name = "jobserver" version = "0.1.34" @@ -9243,32 +9232,56 @@ dependencies = [ [[package]] name = "jsonschema" -version = "0.37.4" +version = "0.51.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73c9ffb2b5c56d58030e1b532d8e8389da94590515f118cf35b5cb68e4764a7e" +checksum = "152999731bfbe0bb82d561550be73b0c31a9827d6ebe3fe96ad47563703b5328" dependencies = [ "ahash 0.8.12", "bytecount", "data-encoding", "email_address", - "fancy-regex 0.16.2", + "fancy-regex", "fraction", "getrandom 0.3.4", "idna", "itoa", + "jsonschema-regex", + "jsonschema-value", "num-cmp", "num-traits", "percent-encoding", "referencing", "regex", - "regex-syntax", - "reqwest 0.12.24", "serde", "serde_json", + "strum 0.28.0", "unicode-general-category", "uuid-simd", ] +[[package]] +name = "jsonschema-regex" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8cb2e614e1c610e31e947d53156e877340c718e053cfce0dfe9b9ce7beff4d31" +dependencies = [ + "regex-syntax", +] + +[[package]] +name = "jsonschema-value" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24373bc85409cb935a46af0ffb41294c5372c08cf9b0709913d908154cd10582" +dependencies = [ + "ahash 0.8.12", + "bytecount", + "fraction", + "num-cmp", + "num-traits", + "serde_json", +] + [[package]] name = "jsonwebtoken" version = "10.3.0" @@ -9506,7 +9519,7 @@ dependencies = [ "schemars 1.0.4", "serde", "serde_json", - "strum 0.27.2", + "strum 0.28.0", "toml 0.8.23", "tree-sitter", ] @@ -9570,7 +9583,7 @@ dependencies = [ "schemars 1.0.4", "serde", "serde_json", - "strum 0.27.2", + "strum 0.28.0", "thiserror 2.0.17", ] @@ -9631,7 +9644,7 @@ dependencies = [ "serde_json", "settings", "sha2", - "strum 0.27.2", + "strum 0.28.0", "tokio", "ui", "ui_input", @@ -9914,11 +9927,11 @@ dependencies = [ [[package]] name = "libwebrtc" version = "0.3.26" -source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=d0e27be0cdad89eadab3e36207cda0a2b6e359ee#d0e27be0cdad89eadab3e36207cda0a2b6e359ee" +source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=0a1c519cfce9b365229026b55de9b9dbdb6fed3c#0a1c519cfce9b365229026b55de9b9dbdb6fed3c" dependencies = [ "cxx", "glib", - "jni", + "jni 0.21.1", "js-sys", "lazy_static", "livekit-protocol", @@ -9985,12 +9998,6 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "348d0075b1fc163b26d72a7f75fc5141daf2fd1bdf128d873cbaf6785d495bdf" -[[package]] -name = "linux-raw-sys" -version = "0.4.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" - [[package]] name = "linux-raw-sys" version = "0.12.1" @@ -10012,7 +10019,7 @@ checksum = "11d3d7f243d5c5a8b9bb5d6dd2b1602c0cb0b9db1621bafc7ed66e35ff9fe092" [[package]] name = "livekit" version = "0.7.32" -source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=d0e27be0cdad89eadab3e36207cda0a2b6e359ee#d0e27be0cdad89eadab3e36207cda0a2b6e359ee" +source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=0a1c519cfce9b365229026b55de9b9dbdb6fed3c#0a1c519cfce9b365229026b55de9b9dbdb6fed3c" dependencies = [ "base64 0.22.1", "bmrng", @@ -10027,7 +10034,7 @@ dependencies = [ "livekit-runtime", "log", "parking_lot", - "prost 0.12.6", + "prost", "semver", "serde", "serde_json", @@ -10038,9 +10045,9 @@ dependencies = [ [[package]] name = "livekit-api" version = "0.4.14" -source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=d0e27be0cdad89eadab3e36207cda0a2b6e359ee#d0e27be0cdad89eadab3e36207cda0a2b6e359ee" +source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=0a1c519cfce9b365229026b55de9b9dbdb6fed3c#0a1c519cfce9b365229026b55de9b9dbdb6fed3c" dependencies = [ - "base64 0.21.7", + "base64 0.22.1", "futures-util", "http 1.3.1", "livekit-protocol", @@ -10048,10 +10055,10 @@ dependencies = [ "log", "parking_lot", "pbjson-types", - "prost 0.12.6", + "prost", "rand 0.9.4", "reqwest 0.12.24", - "rustls-native-certs 0.6.3", + "rustls-native-certs", "scopeguard", "serde", "sha2", @@ -10065,14 +10072,14 @@ dependencies = [ [[package]] name = "livekit-protocol" version = "0.7.1" -source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=d0e27be0cdad89eadab3e36207cda0a2b6e359ee#d0e27be0cdad89eadab3e36207cda0a2b6e359ee" +source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=0a1c519cfce9b365229026b55de9b9dbdb6fed3c#0a1c519cfce9b365229026b55de9b9dbdb6fed3c" dependencies = [ "futures-util", "livekit-runtime", "parking_lot", "pbjson", "pbjson-types", - "prost 0.12.6", + "prost", "serde", "thiserror 1.0.69", "tokio", @@ -10081,7 +10088,7 @@ dependencies = [ [[package]] name = "livekit-runtime" version = "0.4.0" -source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=d0e27be0cdad89eadab3e36207cda0a2b6e359ee#d0e27be0cdad89eadab3e36207cda0a2b6e359ee" +source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=0a1c519cfce9b365229026b55de9b9dbdb6fed3c#0a1c519cfce9b365229026b55de9b9dbdb6fed3c" dependencies = [ "tokio", "tokio-stream", @@ -10095,9 +10102,10 @@ dependencies = [ "async-trait", "jsonwebtoken", "log", - "prost 0.9.0", - "prost-build 0.9.0", - "prost-types 0.9.0", + "prost", + "prost-build", + "prost-types", + "protox", "serde", "zed-reqwest", ] @@ -10198,6 +10206,72 @@ dependencies = [ "value-bag", ] +[[package]] +name = "logos" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff472f899b4ec2d99161c51f60ff7075eeb3097069a36050d8037a6325eb8154" +dependencies = [ + "logos-derive 0.15.1", +] + +[[package]] +name = "logos" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb2c55a318a87600ea870ff8c2012148b44bf18b74fad48d0f835c38c7d07c5f" +dependencies = [ + "logos-derive 0.16.1", +] + +[[package]] +name = "logos-codegen" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "192a3a2b90b0c05b27a0b2c43eecdb7c415e29243acc3f89cc8247a5b693045c" +dependencies = [ + "beef", + "fnv", + "lazy_static", + "proc-macro2", + "quote", + "regex-syntax", + "rustc_version", + "syn 2.0.117", +] + +[[package]] +name = "logos-codegen" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58b3ffaa284e1350d017a57d04ada118c4583cf260c8fb01e0fe28a2e9cf8970" +dependencies = [ + "fnv", + "proc-macro2", + "quote", + "regex-automata", + "regex-syntax", + "syn 2.0.117", +] + +[[package]] +name = "logos-derive" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "605d9697bcd5ef3a42d38efc51541aa3d6a4a25f7ab6d1ed0da5ac632a26b470" +dependencies = [ + "logos-codegen 0.15.1", +] + +[[package]] +name = "logos-derive" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52d3a9855747c17eaf4383823f135220716ab49bea5fbea7dd42cc9a92f8aa31" +dependencies = [ + "logos-codegen 0.16.1", +] + [[package]] name = "lol_html" version = "3.0.1" @@ -10379,12 +10453,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "mac" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" - [[package]] name = "mac-notification-sys" version = "0.6.15" @@ -10399,15 +10467,6 @@ dependencies = [ "uuid", ] -[[package]] -name = "mach2" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d640282b302c0bb0a2a8e0233ead9035e3bed871f0b7e81fe4a1ec829765db44" -dependencies = [ - "libc", -] - [[package]] name = "mach2" version = "0.5.0" @@ -10462,7 +10521,7 @@ dependencies = [ "fs", "gpui", "gpui_platform", - "html5ever 0.27.0", + "html5ever", "image", "indoc", "language", @@ -10510,23 +10569,9 @@ dependencies = [ [[package]] name = "markup5ever" -version = "0.12.1" +version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16ce3abbeba692c8b8441d036ef91aea6df8da2c6b6e21c7e14d3c18e526be45" -dependencies = [ - "log", - "phf 0.11.3", - "phf_codegen 0.11.3", - "string_cache", - "string_cache_codegen", - "tendril", -] - -[[package]] -name = "markup5ever" -version = "0.35.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "311fe69c934650f8f19652b3946075f0fc41ad8757dbb68f1ca14e7900ecc1c3" +checksum = "7122d987ec5f704ee56f6e5b41a7d93722e9aae27ae07cafa4036c4d3f9757de" dependencies = [ "log", "tendril", @@ -10535,27 +10580,16 @@ dependencies = [ [[package]] name = "markup5ever_rcdom" -version = "0.3.0" +version = "0.39.0+unofficial" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edaa21ab3701bfee5099ade5f7e1f84553fd19228cf332f13cd6e964bf59be18" +checksum = "3ac010f19d6c4af81eeb4018a39d7a115de9d285af45c126a4ac02e6fc5716b7" dependencies = [ - "html5ever 0.27.0", - "markup5ever 0.12.1", + "html5ever", + "markup5ever", "tendril", "xml5ever", ] -[[package]] -name = "match_token" -version = "0.35.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac84fd3f360fcc43dc5f5d186f02a94192761a080e8bc58621ad4d12296a58cf" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - [[package]] name = "matchers" version = "0.2.0" @@ -10658,7 +10692,7 @@ version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ad38eb12aea514a0466ea40a80fd8cc83637065948eb4a426e4aa46261175227" dependencies = [ - "rustix 1.1.4", + "rustix", ] [[package]] @@ -10786,7 +10820,7 @@ dependencies = [ "thiserror 2.0.17", "unicode-linebreak", "unicode-segmentation", - "unicode-width", + "unicode-width 0.2.2", ] [[package]] @@ -10804,6 +10838,34 @@ dependencies = [ "paste", ] +[[package]] +name = "micromap" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2a86d3146ed3995b5913c414f6664344b9617457320782e64f0bb44afd49d74" + +[[package]] +name = "miette" +version = "7.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f98efec8807c63c752b5bd61f862c165c115b0a35685bdcfd9238c7aeb592b7" +dependencies = [ + "cfg-if", + "miette-derive", + "unicode-width 0.1.14", +] + +[[package]] +name = "miette-derive" +version = "7.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db5b29714e950dbb20d5e6f74f9dcec4edbcc1067bb7f8ed198c097b8c1a818b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + [[package]] name = "migrator" version = "0.1.0" @@ -10865,9 +10927,9 @@ dependencies = [ [[package]] name = "minidump-writer" -version = "0.11.0" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e1fc14d6ded915b8e850801465e7096f77ed60bf87e4e85878d463720d9dc4d" +checksum = "f742d7445a9d4c63826d302dadbbcb607745560108e88b21c4014a9724d09dbe" dependencies = [ "bitflags 2.13.1", "byteorder", @@ -10878,24 +10940,22 @@ dependencies = [ "goblin", "libc", "log", - "mach2 0.4.3", + "mach2 0.6.0", "memmap2", - "memoffset", "minidump-common", - "nix 0.29.0", + "process-backend", "procfs-core", "scroll", "serde", "serde_json", - "tempfile", "thiserror 2.0.17", ] [[package]] name = "minidumper" -version = "0.9.0" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10d9254e42a48098d045472a5c0cb892007a42e25342eddbf2642f6978bf381a" +checksum = "c56279c70e341c9de54c18c804950595e76799e8ee627ff8931b64f795f09741" dependencies = [ "cfg-if", "crash-context", @@ -10984,7 +11044,7 @@ dependencies = [ "schemars 1.0.4", "serde", "serde_json", - "strum 0.27.2", + "strum 0.28.0", ] [[package]] @@ -11107,10 +11167,10 @@ dependencies = [ "libc", "log", "openssl", - "openssl-probe 0.2.1", + "openssl-probe", "openssl-sys", "schannel", - "security-framework 3.5.1", + "security-framework", "security-framework-sys", "tempfile", ] @@ -11137,7 +11197,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" dependencies = [ "bitflags 2.13.1", - "jni-sys", + "jni-sys 0.3.0", "log", "ndk-sys", "num_enum", @@ -11156,7 +11216,7 @@ version = "0.6.0+11769913" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ee6cda3051665f1fb8d9e08fc35c96d5a244fb1be711a03b71118828afc9a873" dependencies = [ - "jni-sys", + "jni-sys 0.3.0", ] [[package]] @@ -11232,7 +11292,7 @@ dependencies = [ "smol", "util", "watch", - "which 6.0.3", + "which", ] [[package]] @@ -11414,9 +11474,9 @@ dependencies = [ [[package]] name = "num-bigint" -version = "0.4.6" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" +checksum = "c89e69e7e0f03bea5ef08013795c25018e101932225a656383bd384495ecc367" dependencies = [ "num-integer", "num-traits", @@ -11965,7 +12025,7 @@ dependencies = [ "snafu", "tokio", "tower 0.5.2", - "tower-http 0.6.6", + "tower-http 0.6.11", "url", "web-time", ] @@ -12094,7 +12154,7 @@ dependencies = [ "schemars 1.0.4", "serde", "serde_json", - "strum 0.27.2", + "strum 0.28.0", "thiserror 2.0.17", ] @@ -12172,7 +12232,7 @@ dependencies = [ "schemars 1.0.4", "serde", "serde_json", - "strum 0.27.2", + "strum 0.28.0", ] [[package]] @@ -12212,12 +12272,6 @@ dependencies = [ "syn 2.0.117", ] -[[package]] -name = "openssl-probe" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" - [[package]] name = "openssl-probe" version = "0.2.1" @@ -12540,38 +12594,38 @@ dependencies = [ [[package]] name = "pbjson" -version = "0.6.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1030c719b0ec2a2d25a5df729d6cff1acf3cc230bf766f4f97833591f7577b90" +checksum = "e8edd1efdd8ab23ba9cb9ace3d9987a72663d5d7c9f74fa00b51d6213645cf6c" dependencies = [ - "base64 0.21.7", + "base64 0.22.1", "serde", ] [[package]] name = "pbjson-build" -version = "0.6.2" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2580e33f2292d34be285c5bc3dba5259542b083cfad6037b6d70345f24dcb735" +checksum = "2ed4d5c6ae95e08ac768883c8401cf0e8deb4e6e1d6a4e1fd3d2ec4f0ec63200" dependencies = [ - "heck 0.4.1", - "itertools 0.11.0", - "prost 0.12.6", - "prost-types 0.12.6", + "heck 0.5.0", + "itertools 0.14.0", + "prost", + "prost-types", ] [[package]] name = "pbjson-types" -version = "0.6.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18f596653ba4ac51bdecbb4ef6773bc7f56042dc13927910de1684ad3d32aa12" +checksum = "a14e2757d877c0f607a82ce1b8560e224370f159d66c5d52eb55ea187ef0350e" dependencies = [ "bytes 1.11.1", "chrono", "pbjson", "pbjson-build", - "prost 0.12.6", - "prost-build 0.12.6", + "prost", + "prost-build", "serde", ] @@ -13136,11 +13190,12 @@ dependencies = [ [[package]] name = "petgraph" -version = "0.6.5" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" +checksum = "8701b58ea97060d5e5b155d383a69952a60943f0e6dfe30b04c287beb0b27455" dependencies = [ - "fixedbitset 0.4.2", + "fixedbitset", + "hashbrown 0.15.5", "indexmap 2.14.0", ] @@ -13163,16 +13218,6 @@ dependencies = [ "phf_shared 0.11.3", ] -[[package]] -name = "phf" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "913273894cec178f401a31ec4b656318d95473527be05c0752cc41cdc32be8b7" -dependencies = [ - "phf_macros 0.12.1", - "phf_shared 0.12.1", -] - [[package]] name = "phf" version = "0.13.1" @@ -13184,16 +13229,6 @@ dependencies = [ "serde", ] -[[package]] -name = "phf_codegen" -version = "0.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aef8048c789fa5e851558d709946d6d79a8ff88c0440c587967f8e94bfb1216a" -dependencies = [ - "phf_generator 0.11.3", - "phf_shared 0.11.3", -] - [[package]] name = "phf_codegen" version = "0.13.1" @@ -13214,16 +13249,6 @@ dependencies = [ "rand 0.8.6", ] -[[package]] -name = "phf_generator" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cbb1126afed61dd6368748dae63b1ee7dc480191c6262a3b4ff1e29d86a6c5b" -dependencies = [ - "fastrand 2.3.0", - "phf_shared 0.12.1", -] - [[package]] name = "phf_generator" version = "0.13.1" @@ -13247,19 +13272,6 @@ dependencies = [ "syn 2.0.117", ] -[[package]] -name = "phf_macros" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d713258393a82f091ead52047ca779d37e5766226d009de21696c4e667044368" -dependencies = [ - "phf_generator 0.12.1", - "phf_shared 0.12.1", - "proc-macro2", - "quote", - "syn 2.0.117", -] - [[package]] name = "phf_macros" version = "0.13.1" @@ -13282,15 +13294,6 @@ dependencies = [ "siphasher 1.0.1", ] -[[package]] -name = "phf_shared" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06005508882fb681fd97892ecff4b7fd0fee13ef1aa569f8695dae7ab9099981" -dependencies = [ - "siphasher 1.0.1", -] - [[package]] name = "phf_shared" version = "0.13.1" @@ -13525,7 +13528,7 @@ dependencies = [ "concurrent-queue", "hermit-abi", "pin-project-lite", - "rustix 1.1.4", + "rustix", "windows-sys 0.61.2", ] @@ -13756,10 +13759,33 @@ dependencies = [ ] [[package]] -name = "procfs-core" -version = "0.17.0" +name = "process-backend" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "239df02d8349b06fc07398a3a1697b06418223b1c7725085e801e7c0fc6a12ec" +checksum = "07c02e259a3522eccc4957ee6e922db4945648fb7730a41192d919518d06a530" +dependencies = [ + "libc", + "log", + "process-reader", + "serde", + "thiserror 2.0.17", +] + +[[package]] +name = "process-reader" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3024e1803f4b8c40cca8c1955243410354cb4d67f053af9210147416a7265535" +dependencies = [ + "libc", + "serde", +] + +[[package]] +name = "procfs-core" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6401bf7b6af22f78b563665d15a22e9aef27775b79b149a66ca022468a4e405" dependencies = [ "bitflags 2.13.1", "hex", @@ -13805,7 +13831,7 @@ dependencies = [ "dap", "encoding_rs", "extension", - "fancy-regex 0.18.0", + "fancy-regex", "fs", "futures 0.3.32", "fuzzy", @@ -13859,7 +13885,7 @@ dependencies = [ "util", "watch", "wax", - "which 6.0.3", + "which", "worktree", "zed_credentials_provider", "zeroize", @@ -13993,7 +14019,7 @@ dependencies = [ "paths", "serde", "serde_json", - "strum 0.27.2", + "strum 0.28.0", "tempfile", "text", "util", @@ -14043,60 +14069,28 @@ dependencies = [ [[package]] name = "prost" -version = "0.9.0" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "444879275cb4fd84958b1a1d5420d15e6fcf7c235fe47f053c9c2a80aceb6001" +checksum = "528ac67416ff8646872a3c02cad9cc4ee5dc9f9540c9b10771855c95cb2e5ae1" dependencies = [ "bytes 1.11.1", - "prost-derive 0.9.0", -] - -[[package]] -name = "prost" -version = "0.12.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "deb1435c188b76130da55f17a466d252ff7b1418b2ad3e037d127b94e3411f29" -dependencies = [ - "bytes 1.11.1", - "prost-derive 0.12.6", + "prost-derive", ] [[package]] name = "prost-build" -version = "0.9.0" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62941722fb675d463659e49c4f3fe1fe792ff24fe5bbaa9c08cd3b98a1c354f5" +checksum = "03da047801ff44bb6a4d407d4860c05fd70bb81714e6b2f3812603d5b145b042" dependencies = [ - "bytes 1.11.1", - "heck 0.3.3", - "itertools 0.10.5", - "lazy_static", - "log", - "multimap", - "petgraph", - "prost 0.9.0", - "prost-types 0.9.0", - "regex", - "tempfile", - "which 4.4.2", -] - -[[package]] -name = "prost-build" -version = "0.12.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22505a5c94da8e3b7c2996394d1c933236c4d743e81a410bcca4e6989fc066a4" -dependencies = [ - "bytes 1.11.1", "heck 0.5.0", - "itertools 0.11.0", + "itertools 0.14.0", "log", "multimap", - "once_cell", "petgraph", "prettyplease", - "prost 0.12.6", - "prost-types 0.12.6", + "prost", + "prost-types", "regex", "syn 2.0.117", "tempfile", @@ -14104,47 +14098,36 @@ dependencies = [ [[package]] name = "prost-derive" -version = "0.9.0" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9cc1a3263e07e0bf68e96268f37665207b49560d98739662cdfaae215c720fe" +checksum = "b570b25f7617e43d59005d0990ccb79e950a423952cea19671b7a876da390adf" dependencies = [ "anyhow", - "itertools 0.10.5", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "prost-derive" -version = "0.12.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" -dependencies = [ - "anyhow", - "itertools 0.11.0", + "itertools 0.14.0", "proc-macro2", "quote", "syn 2.0.117", ] [[package]] -name = "prost-types" -version = "0.9.0" +name = "prost-reflect" +version = "0.16.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534b7a0e836e3c482d2693070f982e39e7611da9695d4d1f5a4b186b51faef0a" +checksum = "01b80ea363c31af2de2b92e3c07ed1156628f7838c4afb4df75ee78a37fedbd1" dependencies = [ - "bytes 1.11.1", - "prost 0.9.0", + "logos 0.16.1", + "miette", + "prost", + "prost-types", ] [[package]] name = "prost-types" -version = "0.12.6" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9091c90b0a32608e984ff2fa4091273cbdd755d54935c51d520887f4a1dbd5b0" +checksum = "f94967dc7688f3054c7fac87473ffae4cc4c3904800e2d9f5b857246d8963b0a" dependencies = [ - "prost 0.12.6", + "prost", ] [[package]] @@ -14152,8 +14135,9 @@ name = "proto" version = "0.1.0" dependencies = [ "anyhow", - "prost 0.9.0", - "prost-build 0.9.0", + "prost", + "prost-build", + "protox", "serde", ] @@ -14177,6 +14161,33 @@ dependencies = [ "thiserror 1.0.69", ] +[[package]] +name = "protox" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f25a07a73c6717f0b9bbbd685918f5df9815f7efba450b83d9c9dea41f0e3a1" +dependencies = [ + "bytes 1.11.1", + "miette", + "prost", + "prost-reflect", + "prost-types", + "protox-parse", + "thiserror 2.0.17", +] + +[[package]] +name = "protox-parse" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "072eee358134396a4643dff81cfff1c255c9fbd3fb296be14bdb6a26f9156366" +dependencies = [ + "logos 0.15.1", + "miette", + "prost-types", + "thiserror 2.0.17", +] + [[package]] name = "proxy_handshake" version = "0.1.0" @@ -14820,14 +14831,16 @@ dependencies = [ [[package]] name = "referencing" -version = "0.37.4" +version = "0.51.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4283168a506f0dcbdce31c9f9cce3129c924da4c6bca46e46707fcb746d2d70c" +checksum = "0aff997fc7eecb671a947b0f73f5ce4bcb4ad3534fd5bff2dd752718a8107525" dependencies = [ "ahash 0.8.12", "fluent-uri", "getrandom 0.3.4", - "hashbrown 0.16.1", + "hashbrown 0.17.1", + "itoa", + "micromap", "parking_lot", "percent-encoding", "serde_json", @@ -14869,9 +14882,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.14" +version = "0.4.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f" +checksum = "ad8553b9b26413251cbf30e620595c7a41b3887f03da04579c0e6b0d6a06b4b2" dependencies = [ "aho-corasick", "memchr", @@ -14886,9 +14899,9 @@ checksum = "8d942b98df5e658f56f20d592c7f868833fe38115e65c33003d8cd224b0155da" [[package]] name = "regex-syntax" -version = "0.8.8" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" +checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" [[package]] name = "release_channel" @@ -14913,7 +14926,7 @@ dependencies = [ "log", "parking_lot", "paths", - "prost 0.9.0", + "prost", "release_channel", "rpc", "schemars 1.0.4", @@ -14927,7 +14940,7 @@ dependencies = [ "thiserror 2.0.17", "urlencoding", "util", - "which 6.0.3", + "which", ] [[package]] @@ -15162,7 +15175,7 @@ dependencies = [ "pin-project-lite", "quinn", "rustls 0.23.40", - "rustls-native-certs 0.8.3", + "rustls-native-certs", "rustls-pki-types", "serde", "serde_json", @@ -15171,7 +15184,7 @@ dependencies = [ "tokio", "tokio-rustls 0.26.4", "tower 0.5.2", - "tower-http 0.6.6", + "tower-http 0.6.11", "tower-service", "url", "wasm-bindgen", @@ -15386,7 +15399,7 @@ dependencies = [ "serde", "serde_json", "sha2", - "strum 0.27.2", + "strum 0.28.0", "tracing", "util", "zlog", @@ -15533,19 +15546,6 @@ dependencies = [ "semver", ] -[[package]] -name = "rustix" -version = "0.38.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" -dependencies = [ - "bitflags 2.13.1", - "errno 0.3.14", - "libc", - "linux-raw-sys 0.4.15", - "windows-sys 0.59.0", -] - [[package]] name = "rustix" version = "1.1.4" @@ -15555,7 +15555,7 @@ dependencies = [ "bitflags 2.13.1", "errno 0.3.14", "libc", - "linux-raw-sys 0.12.1", + "linux-raw-sys", "windows-sys 0.61.2", ] @@ -15566,7 +15566,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2fc84bf7e9aa16c4f2c758f27412dc9841341e16aa682d9c7ac308fe3ee12056" dependencies = [ "once_cell", - "rustix 1.1.4", + "rustix", ] [[package]] @@ -15577,7 +15577,7 @@ checksum = "1de16c7c59892b870a6336f185dc10943517f1327447096bbb7bb32cd85e2393" dependencies = [ "errno 0.3.14", "libc", - "rustix 1.1.4", + "rustix", ] [[package]] @@ -15608,28 +15608,16 @@ dependencies = [ "zeroize", ] -[[package]] -name = "rustls-native-certs" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" -dependencies = [ - "openssl-probe 0.1.6", - "rustls-pemfile 1.0.4", - "schannel", - "security-framework 2.11.1", -] - [[package]] name = "rustls-native-certs" version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "612460d5f7bea540c490b2b6395d8e34a953e52b491accd6c86c8164c5932a63" dependencies = [ - "openssl-probe 0.2.1", + "openssl-probe", "rustls-pki-types", "schannel", - "security-framework 3.5.1", + "security-framework", ] [[package]] @@ -15662,23 +15650,23 @@ dependencies = [ [[package]] name = "rustls-platform-verifier" -version = "0.5.3" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19787cda76408ec5404443dc8b31795c87cd8fec49762dc75fa727740d34acc1" +checksum = "26d1e2536ce4f35f4846aa13bff16bd0ff40157cdb14cc056c7b14ba41233ba0" dependencies = [ "core-foundation 0.10.0", "core-foundation-sys", - "jni", + "jni 0.22.4", "log", "once_cell", "rustls 0.23.40", - "rustls-native-certs 0.8.3", + "rustls-native-certs", "rustls-platform-verifier-android", "rustls-webpki 0.103.13", - "security-framework 3.5.1", + "security-framework", "security-framework-sys", "webpki-root-certs", - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -16120,19 +16108,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "security-framework" -version = "2.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" -dependencies = [ - "bitflags 2.13.1", - "core-foundation 0.9.4", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - [[package]] name = "security-framework" version = "3.5.1" @@ -16168,7 +16143,7 @@ dependencies = [ "log", "new_debug_unreachable", "phf 0.13.1", - "phf_codegen 0.13.1", + "phf_codegen", "precomputed-hash", "rustc-hash 2.1.1", "servo_arc", @@ -16466,7 +16441,7 @@ dependencies = [ "serde_json_lenient", "settings_json", "settings_macros", - "strum 0.27.2", + "strum 0.28.0", "util", ] @@ -16565,7 +16540,7 @@ dependencies = [ "serde_yaml_ng", "settings", "shell_command_parser", - "strum 0.27.2", + "strum 0.28.0", "telemetry", "theme", "theme_settings", @@ -16775,6 +16750,16 @@ version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" +[[package]] +name = "simd_cesu8" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11031e251abf8611c80f460e19dbdeb54a66db918e49c65a7065b46ac7aec520" +dependencies = [ + "rustc_version", + "simdutf8", +] + [[package]] name = "simd_helpers" version = "0.1.0" @@ -17385,25 +17370,25 @@ dependencies = [ [[package]] name = "string_cache" -version = "0.8.9" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf776ba3fa74f83bf4b63c3dcbbf82173db2632ed8452cb2d891d33f459de70f" +checksum = "a18596f8c785a729f2819c0f6a7eae6ebeebdfffbfe4214ae6b087f690e31901" dependencies = [ "new_debug_unreachable", "parking_lot", - "phf_shared 0.11.3", + "phf_shared 0.13.1", "precomputed-hash", "serde", ] [[package]] name = "string_cache_codegen" -version = "0.5.4" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c711928715f1fe0fe509c53b43e993a9a557babc2d0a3567d0a3006f1ac931a0" +checksum = "585635e46db231059f76c5849798146164652513eb9e8ab2685939dd90f29b69" dependencies = [ - "phf_generator 0.11.3", - "phf_shared 0.11.3", + "phf_generator 0.13.1", + "phf_shared 0.13.1", "proc-macro2", "quote", ] @@ -17431,15 +17416,6 @@ version = "0.26.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" -[[package]] -name = "strum" -version = "0.27.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af23d6f6c1a224baef9d3f61e287d2761385a5b88fdab4eb4c6f11aeb54c4bcf" -dependencies = [ - "strum_macros 0.27.2", -] - [[package]] name = "strum" version = "0.28.0" @@ -17886,12 +17862,12 @@ dependencies = [ [[package]] name = "system-configuration" -version = "0.6.1" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" +checksum = "501336eb7ba9e417300a6a0fa985721065467aa83a6dcf0422a8e43e4c0328fa" dependencies = [ "bitflags 2.13.1", - "core-foundation 0.9.4", + "core-foundation 0.10.0", "system-configuration-sys 0.6.0", ] @@ -18118,19 +18094,17 @@ dependencies = [ "fastrand 2.3.0", "getrandom 0.3.4", "once_cell", - "rustix 1.1.4", + "rustix", "windows-sys 0.61.2", ] [[package]] name = "tendril" -version = "0.4.3" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0" +checksum = "5fed54709c5b3a53d09bb1c113ea4f5ceafd1e772ddcb0030a82e1d56c087b08" dependencies = [ - "futf", - "mac", - "utf-8", + "new_debug_unreachable", ] [[package]] @@ -18183,7 +18157,7 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "60b8cb979cb11c32ce1603f8137b22262a9d131aaa5c37b5678025f22b8becd0" dependencies = [ - "rustix 1.1.4", + "rustix", "windows-sys 0.60.2", ] @@ -18262,7 +18236,7 @@ dependencies = [ "serde", "serde_json", "serde_json_lenient", - "strum 0.27.2", + "strum 0.28.0", "syntax_theme", "thiserror 2.0.17", "uuid", @@ -18295,7 +18269,7 @@ dependencies = [ "serde_json", "serde_json_lenient", "simplelog", - "strum 0.27.2", + "strum 0.28.0", "theme", "theme_settings", "vscode_theme", @@ -18697,7 +18671,7 @@ dependencies = [ "futures-util", "log", "rustls 0.23.40", - "rustls-native-certs 0.8.3", + "rustls-native-certs", "rustls-pki-types", "tokio", "tokio-rustls 0.26.4", @@ -18899,21 +18873,21 @@ dependencies = [ [[package]] name = "tower-http" -version = "0.6.6" +version = "0.6.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" +checksum = "4cfcf7e2740e6fc6d4d688b4ef00650406bb94adf4731e43c096c3a19fe40840" dependencies = [ "bitflags 2.13.1", "bytes 1.11.1", "futures-util", "http 1.3.1", "http-body 1.0.1", - "iri-string", "pin-project-lite", "tower 0.5.2", "tower-layer", "tower-service", "tracing", + "url", ] [[package]] @@ -19346,25 +19320,6 @@ dependencies = [ "utf-8", ] -[[package]] -name = "tungstenite" -version = "0.27.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eadc29d668c91fcc564941132e17b28a7ceb2f3ebf0b9dae3e03fd7a6748eb0d" -dependencies = [ - "bytes 1.11.1", - "data-encoding", - "http 1.3.1", - "httparse", - "log", - "rand 0.9.4", - "rustls 0.23.40", - "rustls-pki-types", - "sha1", - "thiserror 2.0.17", - "utf-8", -] - [[package]] name = "tungstenite" version = "0.28.0" @@ -19441,7 +19396,7 @@ dependencies = [ "serde", "settings", "smallvec", - "strum 0.27.2", + "strum 0.28.0", "theme", "theme_settings", "ui_macros", @@ -19562,6 +19517,12 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b1d386ff53b415b7fe27b50bb44679e2cc4660272694b7b6f3326d8480823a94" +[[package]] +name = "unicode-width" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" + [[package]] name = "unicode-width" version = "0.2.2" @@ -19720,7 +19681,7 @@ dependencies = [ "url", "util_macros", "walkdir", - "which 6.0.3", + "which", "windows 0.61.3", ] @@ -20311,7 +20272,7 @@ dependencies = [ "postcard", "pulley-interpreter", "rayon", - "rustix 1.1.4", + "rustix", "semver", "serde", "serde_derive", @@ -20451,7 +20412,7 @@ checksum = "596f1d85e06cbf9c9add9c78ea135171c5753264ffe94a83dcc082a1ff49fc9b" dependencies = [ "cc", "libc", - "rustix 1.1.4", + "rustix", "wasmtime-environ", "wasmtime-internal-versioned-export-macros", "windows-sys 0.61.2", @@ -20528,7 +20489,7 @@ dependencies = [ "cap-primitives", "futures 0.3.32", "rand 0.10.2", - "rustix 1.1.4", + "rustix", "thiserror 2.0.17", "tokio", "tracing", @@ -20595,7 +20556,7 @@ checksum = "2857dd20b54e916ec7253b3d6b4d5c4d7d4ca2c33c2e11c6c76a99bd8744755d" dependencies = [ "cc", "downcast-rs", - "rustix 1.1.4", + "rustix", "scoped-tls", "smallvec", "wayland-sys", @@ -20608,7 +20569,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c66a47e840dc20793f2264eb4b3e4ecb4b75d91c0dd4af04b456128e0bdd449d" dependencies = [ "bitflags 2.13.1", - "rustix 1.1.4", + "rustix", "wayland-backend", "wayland-scanner", ] @@ -20619,7 +20580,7 @@ version = "0.31.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "447ccc440a881271b19e9989f75726d60faa09b95b0200a9b7eb5cc47c3eeb29" dependencies = [ - "rustix 1.1.4", + "rustix", "wayland-client", "xcursor", ] @@ -20708,12 +20669,12 @@ dependencies = [ [[package]] name = "web_atoms" -version = "0.1.3" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57ffde1dc01240bdf9992e3205668b235e59421fd085e8a317ed98da0178d414" +checksum = "ba8b815c1b593dc0baf78dd0f4fc8fdb2de53198fb1163738093e9a311c33fb3" dependencies = [ - "phf 0.11.3", - "phf_codegen 0.11.3", + "phf 0.13.1", + "phf_codegen", "string_cache", "string_cache_codegen", ] @@ -20747,9 +20708,9 @@ dependencies = [ [[package]] name = "webpki-root-certs" -version = "0.26.8" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09aed61f5e8d2c18344b3faa33a4c837855fe56642757754775548fee21386c4" +checksum = "b96554aa2acc8ccdb7e1c9a58a7a68dd5d13bccc69cd124cb09406db612a1c9b" dependencies = [ "rustls-pki-types", ] @@ -20775,7 +20736,7 @@ dependencies = [ [[package]] name = "webrtc-sys" version = "0.3.23" -source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=d0e27be0cdad89eadab3e36207cda0a2b6e359ee#d0e27be0cdad89eadab3e36207cda0a2b6e359ee" +source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=0a1c519cfce9b365229026b55de9b9dbdb6fed3c#0a1c519cfce9b365229026b55de9b9dbdb6fed3c" dependencies = [ "cc", "cxx", @@ -20789,7 +20750,7 @@ dependencies = [ [[package]] name = "webrtc-sys-build" version = "0.3.13" -source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=d0e27be0cdad89eadab3e36207cda0a2b6e359ee#d0e27be0cdad89eadab3e36207cda0a2b6e359ee" +source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=0a1c519cfce9b365229026b55de9b9dbdb6fed3c#0a1c519cfce9b365229026b55de9b9dbdb6fed3c" dependencies = [ "anyhow", "fs2", @@ -20986,26 +20947,11 @@ dependencies = [ [[package]] name = "which" -version = "4.4.2" +version = "8.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" +checksum = "8f3ef584124b911bcc3875c2f1472e80f24361ceb789bd1c62b3e9a3df9ff43c" dependencies = [ - "either", - "home", - "once_cell", - "rustix 0.38.44", -] - -[[package]] -name = "which" -version = "6.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4ee928febd44d98f2f459a4a79bd4d928591333a494a10a868418ac1b39cf1f" -dependencies = [ - "either", - "home", - "rustix 0.38.44", - "winsafe", + "libc", ] [[package]] @@ -21899,12 +21845,6 @@ dependencies = [ "version_check", ] -[[package]] -name = "winsafe" -version = "0.0.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d135d17ab770252ad95e9a872d365cf3090e3be864a34ab46f48555993efc904" - [[package]] name = "winx" version = "0.36.4" @@ -22301,7 +22241,7 @@ dependencies = [ "settings", "smallvec", "sqlez", - "strum 0.27.2", + "strum 0.28.0", "task", "telemetry", "tempfile", @@ -22424,7 +22364,7 @@ dependencies = [ "as-raw-xcb-connection", "gethostname", "libc", - "rustix 1.1.4", + "rustix", "x11rb-protocol", "xcursor", ] @@ -22442,7 +22382,7 @@ dependencies = [ "anyhow", "schemars 1.0.4", "serde", - "strum 0.27.2", + "strum 0.28.0", ] [[package]] @@ -22452,7 +22392,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32e45ad4206f6d2479085147f02bc2ef834ac85886624a23575ae137c8aa8156" dependencies = [ "libc", - "rustix 1.1.4", + "rustix", ] [[package]] @@ -22515,13 +22455,12 @@ checksum = "3ae8337f8a065cfc972643663ea4279e04e7256de865aa66fe25cec5fb912d3f" [[package]] name = "xml5ever" -version = "0.18.1" +version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bbb26405d8e919bc1547a5aa9abc95cbfa438f04844f5fdd9dc7596b748bf69" +checksum = "5ab627f34ff61b80d756180d556f9c68801d836d271b3b8c094504ceca69d221" dependencies = [ "log", - "mac", - "markup5ever 0.12.1", + "markup5ever", ] [[package]] @@ -22555,7 +22494,7 @@ dependencies = [ "serde", "serde_json", "serde_yaml", - "strum 0.27.2", + "strum 0.28.0", "tokio", "toml 0.8.23", "toml_edit 0.22.27", @@ -22682,7 +22621,7 @@ dependencies = [ "hex", "libc", "ordered-stream", - "rustix 1.1.4", + "rustix", "serde", "serde_repr", "tracing", @@ -22960,7 +22899,7 @@ dependencies = [ [[package]] name = "zed-reqwest" version = "0.12.15-zed" -source = "git+https://github.com/zed-industries/reqwest.git?rev=c15662463bda39148ba154100dd44d3fba5873a4#c15662463bda39148ba154100dd44d3fba5873a4" +source = "git+https://github.com/zed-industries/reqwest.git?rev=33bc764aa15ff7b200bf7c93bd96e24878d53e14#33bc764aa15ff7b200bf7c93bd96e24878d53e14" dependencies = [ "base64 0.22.1", "bytes 1.11.1", @@ -22984,14 +22923,14 @@ dependencies = [ "pin-project-lite", "quinn", "rustls 0.23.40", - "rustls-native-certs 0.8.3", + "rustls-native-certs", "rustls-pemfile 2.2.0", "rustls-pki-types", "serde", "serde_json", "serde_urlencoded", "sync_wrapper 1.0.2", - "system-configuration 0.6.1", + "system-configuration 0.8.0", "tokio", "tokio-rustls 0.26.4", "tokio-socks", @@ -23263,7 +23202,7 @@ dependencies = [ "imara-diff", "indoc", "serde", - "strum 0.27.2", + "strum 0.28.0", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index df1de093d3..641ad6b98c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -542,14 +542,16 @@ async-std = { version = "1.12", features = ["unstable"] } async-tar = { git = "https://github.com/zed-industries/async-tar", rev = "bd3ad6f89df9a9da7a8535958756d6bf465936a0" } async-task = "4.7" async-trait = "0.1" -async-tungstenite = "0.31.0" +async-tungstenite = "0.33" async_zip = { version = "0.0.18", features = ["deflate", "deflate64"] } aws-config = { version = "1.8.10", features = ["behavior-version-latest"] } aws-credential-types = { version = "1.2.8", features = [ "hardcoded-credentials", ] } -aws-sdk-bedrockruntime = { version = "1.112.0", features = [ +aws-sdk-bedrockruntime = { version = "1.112.0", default-features = false, features = [ "behavior-version-latest", + "default-https-client", + "rt-tokio", ] } aws-sigv4 = { version = "1.4.0", features = ["http1"] } aws-smithy-runtime-api = { version = "1.9.2", features = ["http-1x", "client"] } @@ -582,7 +584,7 @@ core-graphics = "0.24" core-text = "21" core-video = { version = "0.5.2", features = ["metal"] } cpal = "0.17" -crash-handler = "0.7" +crash-handler = "0.8" criterion = { version = "0.5", features = ["html_reports"] } crossbeam = "0.8.4" ctor = "1.0.12" @@ -602,16 +604,16 @@ derive_more = { version = "2.1.1", features = [ ] } dialoguer = { version = "0.12", default-features = false } dirs = "6.0" -documented = "0.9.1" +documented = "0.10" dotenvy = "0.15.0" dunce = "1.0" ec4rs = { version = "1.2", features = ["allow-empty-values"] } -emojis = "0.6.1" +emojis = "0.9" encoding_rs = "0.8" env_logger = "0.11" etagere = "0.2" exec = "0.3.1" -fancy-regex = "0.18.0" +fancy-regex = "0.19" flume = "0.12" foreign-types = "0.5" fork = "0.4.0" @@ -621,12 +623,12 @@ futures-lite = "1.13" gh-workflow = { git = "https://github.com/zed-industries/gh-workflow", rev = "37f3c0575d379c218a9c455ee67585184e40d43f" } globset = "0.4" handlebars = "4.3" -hdrhistogram = "7" +hdrhistogram = { version = "7", default-features = false } heapless = "0.9.2" heck = "0.5" heed = { version = "0.21.0", features = ["read-txn-no-tls"] } hex = "0.4.3" -html5ever = "0.27.0" +html5ever = "0.39" http = "1.1" http-body = "1.0" httparse = "1.10" @@ -659,7 +661,7 @@ inventory = "0.3.19" itertools = "0.14.0" js-sys = "0.3" json_dotpath = "1.1" -jsonschema = "0.37.0" +jsonschema = { version = "0.51", default-features = false } jsonwebtoken = "10.0" jupyter-protocol = "1.4.0" jupyter-websocket-client = "1.1.0" @@ -672,10 +674,10 @@ log = { version = "0.4.16", features = ["kv_unstable_serde", "serde"] } lru = "0.16" lsp-types = { git = "https://github.com/zed-industries/lsp-types", rev = "f4dfa89a21ca35cd929b70354b1583fabae325f8" } mach2 = "0.5" -markup5ever_rcdom = "0.3.0" +markup5ever_rcdom = "0.39" metal = "0.33" mime = "0.3.17" -minidumper = "0.9" +minidumper = "0.11" moka = { version = "0.12.10", features = ["sync"] } nanoid = "0.4" nbformat = "1.2.0" @@ -747,9 +749,10 @@ profiling = "1" pollster = "0.4.0" proptest = { git = "https://github.com/proptest-rs/proptest", rev = "3dca198a8fef1b32e3a66f1e1897c955b4dc5b5b", features = ["attr-macro"] } proptest-derive = "0.8.0" -prost = "0.9" -prost-build = "0.9" -prost-types = "0.9" +prost = "0.14" +prost-build = "0.14" +prost-types = "0.14" +protox = "0.9" proxyvars = "0.2" pulldown-cmark = { version = "0.13.0", default-features = false } quick-xml = "0.38" @@ -759,7 +762,7 @@ raw-window-handle = "0.6" rayon = "1.8" regex = "1.5" # WARNING: If you change this, you must also publish a new version of zed-reqwest to crates.io -reqwest = { git = "https://github.com/zed-industries/reqwest.git", rev = "c15662463bda39148ba154100dd44d3fba5873a4", default-features = false, features = [ +reqwest = { git = "https://github.com/zed-industries/reqwest.git", rev = "33bc764aa15ff7b200bf7c93bd96e24878d53e14", default-features = false, features = [ "charset", "http2", "macos-system-configuration", @@ -782,7 +785,7 @@ rust-embed = { version = "8.11", features = ["include-exclude"] } rustc-hash = "2.1.0" rustix = { version = "1.1", features = ["fs"] } rustls = { version = "0.23.26" } -rustls-platform-verifier = "0.5.0" +rustls-platform-verifier = "0.7" # WARNING: If you change this, you must also publish a new version of zed-scap to crates.io scap = { git = "https://github.com/zed-industries/scap", rev = "4afea48c3b002197176fb19cd0f9b180dd36eaac", default-features = false, package = "zed-scap", version = "0.0.8-zed" } schemars = { version = "1.0", features = ["indexmap2"] } @@ -809,7 +812,7 @@ sqlformat = "0.2" stacksafe = "1.0" streaming-iterator = "0.1" strsim = "0.11" -strum = { version = "0.27.2", features = ["derive"] } +strum = { version = "0.28", features = ["derive"] } swash = "0.2.6" syn = { version = "2.0.101", features = ["full", "extra-traits", "visit-mut"] } sys-locale = "0.3.1" @@ -889,9 +892,10 @@ wasm-bindgen-futures = "0.4" wasmtime-wasi = "48" wax = "0.7" web-time = "1.1.0" +webpki-roots = "1.0.8" webrtc-sys = "0.3.23" wgpu = "29.0.4" -which = "6.0.0" +which = "8" windows-core = "0.61" windows-registry = "0.6.0" yaml-rust2 = "0.8" @@ -970,11 +974,11 @@ async-process = { git = "https://github.com/zed-industries/async-process.git", r async-task = { git = "https://github.com/smol-rs/async-task.git", rev = "b4486cd71e4e94fbda54ce6302444de14f4d190e" } windows-capture = { git = "https://github.com/zed-industries/windows-capture.git", rev = "f0d6c1b6691db75461b732f6d5ff56eed002eeb9" } calloop = { git = "https://github.com/zed-industries/calloop" } -livekit = { git = "https://github.com/zed-industries/livekit-rust-sdks", rev = "d0e27be0cdad89eadab3e36207cda0a2b6e359ee" } -libwebrtc = { git = "https://github.com/zed-industries/livekit-rust-sdks", rev = "d0e27be0cdad89eadab3e36207cda0a2b6e359ee" } +livekit = { git = "https://github.com/zed-industries/livekit-rust-sdks", rev = "0a1c519cfce9b365229026b55de9b9dbdb6fed3c" } +libwebrtc = { git = "https://github.com/zed-industries/livekit-rust-sdks", rev = "0a1c519cfce9b365229026b55de9b9dbdb6fed3c" } notify = { git = "https://github.com/zed-industries/notify", rev = "0890bbb8ca40a4b5d1f67031698dd7918b37d991" } notify-types = { git = "https://github.com/zed-industries/notify", rev = "0890bbb8ca40a4b5d1f67031698dd7918b37d991" } -webrtc-sys = { git = "https://github.com/zed-industries/livekit-rust-sdks", rev = "d0e27be0cdad89eadab3e36207cda0a2b6e359ee" } +webrtc-sys = { git = "https://github.com/zed-industries/livekit-rust-sdks", rev = "0a1c519cfce9b365229026b55de9b9dbdb6fed3c" } [profile.dev] split-debuginfo = "unpacked" diff --git a/crates/activity_indicator/src/activity_indicator.rs b/crates/activity_indicator/src/activity_indicator.rs index d16b9db634..dccc0bcafc 100644 --- a/crates/activity_indicator/src/activity_indicator.rs +++ b/crates/activity_indicator/src/activity_indicator.rs @@ -147,7 +147,7 @@ impl ActivityIndicator { let status = match &status_update.status { Some(proto::status_update::Status::Binary(binary_status)) => { if let Some(binary_status) = - proto::ServerBinaryStatus::from_i32(*binary_status) + proto::ServerBinaryStatus::try_from(*binary_status).ok() { let binary_status = match binary_status { proto::ServerBinaryStatus::None => BinaryStatus::None, @@ -181,7 +181,7 @@ impl ActivityIndicator { } Some(proto::status_update::Status::Health(health_status)) => { if let Some(health) = - proto::ServerHealth::from_i32(*health_status) + proto::ServerHealth::try_from(*health_status).ok() { let health = match health { proto::ServerHealth::Ok => ServerHealth::Ok, diff --git a/crates/channel/src/channel_store.rs b/crates/channel/src/channel_store.rs index 7d6632de4a..aed42130b3 100644 --- a/crates/channel/src/channel_store.rs +++ b/crates/channel/src/channel_store.rs @@ -863,7 +863,7 @@ impl ChannelStore { ); } for membership in message.payload.channel_memberships { - if let Some(role) = ChannelRole::from_i32(membership.role) { + if let Some(role) = ChannelRole::try_from(membership.role).ok() { this.channel_states .entry(ChannelId(membership.channel_id)) .or_default() diff --git a/crates/cli/Cargo.toml b/crates/cli/Cargo.toml index 04594e7790..b1743fa98b 100644 --- a/crates/cli/Cargo.toml +++ b/crates/cli/Cargo.toml @@ -49,7 +49,7 @@ fork.workspace = true [target.'cfg(target_os = "macos")'.dependencies] core-foundation.workspace = true -core-services = "0.2" +core-services = "1" plist = "1.3" [target.'cfg(target_os = "windows")'.dependencies] diff --git a/crates/collab/src/db.rs b/crates/collab/src/db.rs index 786f750cd0..16888d4a30 100644 --- a/crates/collab/src/db.rs +++ b/crates/collab/src/db.rs @@ -746,7 +746,6 @@ fn proto_status_to_db( let (status_kind, first_status, second_status) = status_entry .status - .clone() .and_then(|status| status.variant) .map_or( (StatusKind::Untracked, None, None), diff --git a/crates/collab/src/db/queries/projects.rs b/crates/collab/src/db/queries/projects.rs index 36cceb2e65..62cfdac5a4 100644 --- a/crates/collab/src/db/queries/projects.rs +++ b/crates/collab/src/db/queries/projects.rs @@ -276,7 +276,7 @@ impl Database { if !update.updated_entries.is_empty() { worktree_entry::Entity::insert_many(update.updated_entries.iter().map(|entry| { - let mtime = entry.mtime.clone().unwrap_or_default(); + let mtime = entry.mtime.unwrap_or_default(); worktree_entry::ActiveModel { project_id: ActiveValue::set(project_id), worktree_id: ActiveValue::set(worktree_id), @@ -622,7 +622,8 @@ impl Database { ) -> Result>> { let project_id = ProjectId::from_proto(update.project_id); let kind = match update.kind { - Some(kind) => proto::LocalSettingsKind::from_i32(kind) + Some(kind) => proto::LocalSettingsKind::try_from(kind) + .ok() .with_context(|| format!("unknown worktree settings kind: {kind}"))?, None => proto::LocalSettingsKind::Settings, }; diff --git a/crates/collab/src/rpc.rs b/crates/collab/src/rpc.rs index 96e051a6bc..fff5ff29d1 100644 --- a/crates/collab/src/rpc.rs +++ b/crates/collab/src/rpc.rs @@ -656,7 +656,7 @@ impl Server { peer.send( contact_conn_id, proto::UpdateContacts { - contacts: vec![updated_contact.clone()], + contacts: vec![updated_contact], remove_contacts: Default::default(), incoming_requests: Default::default(), remove_incoming_requests: Default::default(), @@ -1945,7 +1945,7 @@ async fn unshare_project_internal( broadcast( Some(connection_id), guest_connection_ids.iter().copied(), - |conn_id| session.peer.send(conn_id, message.clone()), + |conn_id| session.peer.send(conn_id, message), ); if let Some(room) = room { room_updated(room, &session.peer); @@ -2259,7 +2259,7 @@ async fn remove_repository( |connection_id| { session .peer - .forward_send(session.connection_id, connection_id, request.clone()) + .forward_send(session.connection_id, connection_id, request) }, ); response.send(proto::Ack {})?; @@ -4037,7 +4037,7 @@ async fn update_user_contacts(user_id: UserId, session: &Session) -> Result<()> .send( contact_conn_id, proto::UpdateContacts { - contacts: vec![updated_contact.clone()], + contacts: vec![updated_contact], remove_contacts: Default::default(), incoming_requests: Default::default(), remove_incoming_requests: Default::default(), diff --git a/crates/dap/src/proto_conversions.rs b/crates/dap/src/proto_conversions.rs index b865c81756..051f1c21cb 100644 --- a/crates/dap/src/proto_conversions.rs +++ b/crates/dap/src/proto_conversions.rs @@ -55,7 +55,7 @@ impl ProtoConversion for dap_types::Scope { fn from_proto(payload: Self::ProtoType) -> Self { let presentation_hint = payload .presentation_hint - .and_then(DapScopePresentationHint::from_i32); + .and_then(|value| DapScopePresentationHint::try_from(value).ok()); Self { name: payload.name, presentation_hint: presentation_hint.map(ScopePresentationHint::from_proto), @@ -222,7 +222,7 @@ impl ProtoConversion for dap_types::Source { source_reference: payload.source_reference, presentation_hint: payload .presentation_hint - .and_then(DapSourcePresentationHint::from_i32) + .and_then(|value| DapSourcePresentationHint::try_from(value).ok()) .map(dap_types::SourcePresentationHint::from_proto), origin: payload.origin, sources: Some(Vec::::from_proto(payload.sources)), @@ -401,7 +401,7 @@ impl ProtoConversion for dap_types::OutputEvent { Self { category: payload .category - .and_then(proto::DapOutputCategory::from_i32) + .and_then(|value| proto::DapOutputCategory::try_from(value).ok()) .map(OutputEventCategory::from_proto), output: payload.output, variables_reference: payload.variables_reference, @@ -410,7 +410,7 @@ impl ProtoConversion for dap_types::OutputEvent { column: payload.column.map(|column| column as u64), group: payload .group - .and_then(proto::DapOutputEventGroup::from_i32) + .and_then(|value| proto::DapOutputEventGroup::try_from(value).ok()) .map(OutputEventGroup::from_proto), data: None, location_reference: None, diff --git a/crates/editor/src/items.rs b/crates/editor/src/items.rs index ecc3587687..e9fea6a4c8 100644 --- a/crates/editor/src/items.rs +++ b/crates/editor/src/items.rs @@ -617,7 +617,7 @@ fn deserialize_anchor(anchor: proto::EditorAnchor, buffer: &MultiBufferSnapshot) let text_anchor = language::proto::deserialize_anchor(anchor)?; buffer.anchor_in_buffer(text_anchor) } else { - match proto::Bias::from_i32(anchor.bias)? { + match proto::Bias::try_from(anchor.bias).ok()? { proto::Bias::Left => Some(Anchor::Min), proto::Bias::Right => Some(Anchor::Max), } diff --git a/crates/http_client_tls/Cargo.toml b/crates/http_client_tls/Cargo.toml index a55268ac31..58cce9c745 100644 --- a/crates/http_client_tls/Cargo.toml +++ b/crates/http_client_tls/Cargo.toml @@ -16,5 +16,7 @@ path = "src/http_client_tls.rs" doctest = true [dependencies] +log.workspace = true rustls.workspace = true rustls-platform-verifier.workspace = true +webpki-roots.workspace = true diff --git a/crates/http_client_tls/src/http_client_tls.rs b/crates/http_client_tls/src/http_client_tls.rs index 8ddde5c15a..2e43ac29b2 100644 --- a/crates/http_client_tls/src/http_client_tls.rs +++ b/crates/http_client_tls/src/http_client_tls.rs @@ -15,7 +15,16 @@ pub fn tls_config() -> ClientConfig { .install_default() .ok(); - ClientConfig::with_platform_verifier() + ClientConfig::with_platform_verifier().unwrap_or_else(|error| { + log::error!( + "failed to load platform TLS certificate verifier, falling back to bundled webpki roots: {error}" + ); + ClientConfig::builder() + .with_root_certificates(rustls::RootCertStore { + roots: webpki_roots::TLS_SERVER_ROOTS.to_vec(), + }) + .with_no_client_auth() + }) }) .clone() } diff --git a/crates/language/src/buffer.rs b/crates/language/src/buffer.rs index da493e400b..f5515f3378 100644 --- a/crates/language/src/buffer.rs +++ b/crates/language/src/buffer.rs @@ -1018,7 +1018,9 @@ impl Buffer { let buffer = TextBuffer::new(replica_id, buffer_id, message.base_text); let mut this = Self::build(buffer, file, capability); this.text.set_line_ending(proto::deserialize_line_ending( - rpc::proto::LineEnding::from_i32(message.line_ending).context("missing line_ending")?, + rpc::proto::LineEnding::try_from(message.line_ending) + .ok() + .context("missing line_ending")?, )); this.saved_version = proto::deserialize_version(&message.saved_version); this.saved_mtime = message.saved_mtime.map(|time| time.into()); diff --git a/crates/language/src/proto.rs b/crates/language/src/proto.rs index 1bc19f4232..a6d3bfb389 100644 --- a/crates/language/src/proto.rs +++ b/crates/language/src/proto.rs @@ -332,7 +332,8 @@ pub fn deserialize_operation(message: proto::Operation) -> Result Result DiagnosticSeverity::ERROR, proto::diagnostic::Severity::Warning => DiagnosticSeverity::WARNING, proto::diagnostic::Severity::Information => DiagnosticSeverity::INFORMATION, @@ -465,9 +469,11 @@ pub fn deserialize_diagnostics( is_unnecessary: diagnostic.is_unnecessary, underline: diagnostic.underline, registration_id: diagnostic.registration_id.map(SharedString::from), - source_kind: match proto::diagnostic::SourceKind::from_i32( + source_kind: match proto::diagnostic::SourceKind::try_from( diagnostic.source_kind, - )? { + ) + .ok()? + { proto::diagnostic::SourceKind::Pulled => DiagnosticSourceKind::Pulled, proto::diagnostic::SourceKind::Pushed => DiagnosticSourceKind::Pushed, proto::diagnostic::SourceKind::Other => DiagnosticSourceKind::Other, @@ -490,7 +496,7 @@ pub fn deserialize_anchor(anchor: proto::Anchor) -> Option { replica_id: ReplicaId::new(anchor.replica_id as u16), value: anchor.timestamp, }; - let bias = match proto::Bias::from_i32(anchor.bias)? { + let bias = match proto::Bias::try_from(anchor.bias).ok()? { proto::Bias::Left => Bias::Left, proto::Bias::Right => Bias::Right, }; diff --git a/crates/language_tools/src/lsp_button.rs b/crates/language_tools/src/lsp_button.rs index 0cd9d6b60f..f5c3c2e28f 100644 --- a/crates/language_tools/src/lsp_button.rs +++ b/crates/language_tools/src/lsp_button.rs @@ -967,7 +967,8 @@ impl LspButton { let Some(name) = name.as_ref() else { return; }; - if let Some(binary_status) = proto::ServerBinaryStatus::from_i32(*binary_status) + if let Some(binary_status) = + proto::ServerBinaryStatus::try_from(*binary_status).ok() { let binary_status = match binary_status { proto::ServerBinaryStatus::None => BinaryStatus::None, @@ -996,7 +997,7 @@ impl LspButton { }; } Some(proto::status_update::Status::Health(health_status)) => { - if let Some(health) = proto::ServerHealth::from_i32(*health_status) { + if let Some(health) = proto::ServerHealth::try_from(*health_status).ok() { let health = match health { proto::ServerHealth::Ok => ServerHealth::Ok, proto::ServerHealth::Warning => ServerHealth::Warning, diff --git a/crates/livekit_api/Cargo.toml b/crates/livekit_api/Cargo.toml index f8a3a8bb8d..be6995479a 100644 --- a/crates/livekit_api/Cargo.toml +++ b/crates/livekit_api/Cargo.toml @@ -28,6 +28,7 @@ serde.workspace = true [build-dependencies] prost-build.workspace = true +protox.workspace = true [package.metadata.cargo-shear] ignored = ["prost-types"] diff --git a/crates/livekit_api/build.rs b/crates/livekit_api/build.rs index ce780dfc47..66bb98ea84 100644 --- a/crates/livekit_api/build.rs +++ b/crates/livekit_api/build.rs @@ -1,9 +1,12 @@ fn main() { + println!("cargo:rerun-if-changed=vendored/protocol"); + let file_descriptors = protox::compile( + ["vendored/protocol/livekit_room.proto"], + ["vendored/protocol"], + ) + .unwrap(); prost_build::Config::new() .type_attribute("SendDataResponse", "#[allow(clippy::empty_docs)]") - .compile_protos( - &["vendored/protocol/livekit_room.proto"], - &["vendored/protocol"], - ) + .compile_fds(file_descriptors) .unwrap(); } diff --git a/crates/livekit_api/src/livekit_api.rs b/crates/livekit_api/src/livekit_api.rs index 250f56b3fd..54adf0952e 100644 --- a/crates/livekit_api/src/livekit_api.rs +++ b/crates/livekit_api/src/livekit_api.rs @@ -73,7 +73,7 @@ impl LiveKitClient { body: Req, ) -> impl Future> where - Req: Message, + Req: Message + std::fmt::Debug, Res: Default + Message, { let client = self.http.clone(); diff --git a/crates/project/src/buffer_store.rs b/crates/project/src/buffer_store.rs index 4f01061aa9..283eae7523 100644 --- a/crates/project/src/buffer_store.rs +++ b/crates/project/src/buffer_store.rs @@ -1497,7 +1497,7 @@ impl BufferStore { ) -> Result<()> { let buffer_id = BufferId::new(envelope.payload.buffer_id)?; let version = deserialize_version(&envelope.payload.version); - let mtime = envelope.payload.mtime.clone().map(|time| time.into()); + let mtime = envelope.payload.mtime.map(|time| time.into()); this.update(&mut cx, move |this, cx| { if let Some(buffer) = this.get_possibly_incomplete(buffer_id) { buffer.update(cx, |buffer, cx| { @@ -1526,9 +1526,10 @@ impl BufferStore { ) -> Result<()> { let buffer_id = BufferId::new(envelope.payload.buffer_id)?; let version = deserialize_version(&envelope.payload.version); - let mtime = envelope.payload.mtime.clone().map(|time| time.into()); + let mtime = envelope.payload.mtime.map(|time| time.into()); let line_ending = deserialize_line_ending( - proto::LineEnding::from_i32(envelope.payload.line_ending) + proto::LineEnding::try_from(envelope.payload.line_ending) + .ok() .context("missing line ending")?, ); this.update(&mut cx, |this, cx| { diff --git a/crates/project/src/debugger/breakpoint_store.rs b/crates/project/src/debugger/breakpoint_store.rs index 16266fe728..073eb3877d 100644 --- a/crates/project/src/debugger/breakpoint_store.rs +++ b/crates/project/src/debugger/breakpoint_store.rs @@ -242,8 +242,7 @@ impl BreakpointStore { .breakpoints .into_iter() .filter_map(|breakpoint| { - let position = - language::proto::deserialize_anchor(breakpoint.position.clone()?)?; + let position = language::proto::deserialize_anchor(breakpoint.position?)?; let session_state = breakpoint .session_state .iter() @@ -295,7 +294,6 @@ impl BreakpointStore { let position = language::proto::deserialize_anchor( breakpoint .position - .clone() .context("Anchor not present in RPC payload")?, ) .context("Anchor deserialization failed")?; @@ -1032,7 +1030,7 @@ impl Breakpoint { fn from_proto(breakpoint: client::proto::Breakpoint) -> Option { Some(Self { - state: match proto::BreakpointState::from_i32(breakpoint.state) { + state: match proto::BreakpointState::try_from(breakpoint.state).ok() { Some(proto::BreakpointState::Disabled) => BreakpointState::Disabled, None | Some(proto::BreakpointState::Enabled) => BreakpointState::Enabled, }, diff --git a/crates/project/src/debugger/dap_command.rs b/crates/project/src/debugger/dap_command.rs index 772ff2dcfe..5f4d257cb7 100644 --- a/crates/project/src/debugger/dap_command.rs +++ b/crates/project/src/debugger/dap_command.rs @@ -165,7 +165,7 @@ impl DapCommand for NextCommand { fn from_proto(request: &Self::ProtoRequest) -> Self { Self { - inner: StepCommand::from_proto(request.clone()), + inner: StepCommand::from_proto(*request), } } diff --git a/crates/project/src/git_store.rs b/crates/project/src/git_store.rs index 706fa2edaf..8ad12fa182 100644 --- a/crates/project/src/git_store.rs +++ b/crates/project/src/git_store.rs @@ -5400,7 +5400,7 @@ impl BufferGitState { ) { use proto::update_diff_bases::Mode; - let Some(mode) = Mode::from_i32(message.mode) else { + let Some(mode) = Mode::try_from(message.mode).ok() else { return; }; @@ -10105,7 +10105,7 @@ impl Repository { buffer_id: buffer_id.to_proto(), }) .await?; - let mode = Mode::from_i32(response.mode).context("Invalid mode")?; + let mode = Mode::try_from(response.mode).ok().context("Invalid mode")?; let bases = match mode { Mode::IndexMatchesHead => DiffBasesChange::SetBoth(response.committed_text), Mode::IndexAndHead => DiffBasesChange::SetEach { @@ -12247,7 +12247,8 @@ fn status_from_proto( use proto::git_file_status::Variant; let Some(variant) = status.and_then(|status| status.variant) else { - let code = proto::GitStatus::from_i32(simple_status) + let code = proto::GitStatus::try_from(simple_status) + .ok() .with_context(|| format!("Invalid git status code: {simple_status}"))?; let result = match code { proto::GitStatus::Added => TrackedStatus { @@ -12281,7 +12282,8 @@ fn status_from_proto( Variant::Unmerged(unmerged) => { let [first_head, second_head] = [unmerged.first_head, unmerged.second_head].map(|head| { - let code = proto::GitStatus::from_i32(head) + let code = proto::GitStatus::try_from(head) + .ok() .with_context(|| format!("Invalid git status code: {head}"))?; let result = match code { proto::GitStatus::Added => UnmergedStatusCode::Added, @@ -12301,7 +12303,8 @@ fn status_from_proto( Variant::Tracked(tracked) => { let [index_status, worktree_status] = [tracked.index_status, tracked.worktree_status] .map(|status| { - let code = proto::GitStatus::from_i32(status) + let code = proto::GitStatus::try_from(status) + .ok() .with_context(|| format!("Invalid git status code: {status}"))?; let result = match code { proto::GitStatus::Modified => StatusCode::Modified, diff --git a/crates/project/src/lsp_command.rs b/crates/project/src/lsp_command.rs index ec0c8777b5..6370991cb6 100644 --- a/crates/project/src/lsp_command.rs +++ b/crates/project/src/lsp_command.rs @@ -1963,7 +1963,7 @@ impl LspCommand for GetDocumentHighlights { buffer .update(&mut cx, |buffer, _| buffer.wait_for_anchors([start, end])) .await?; - let kind = match proto::document_highlight::Kind::from_i32(highlight.kind) { + let kind = match proto::document_highlight::Kind::try_from(highlight.kind).ok() { Some(proto::document_highlight::Kind::Text) => DocumentHighlightKind::TEXT, Some(proto::document_highlight::Kind::Read) => DocumentHighlightKind::READ, Some(proto::document_highlight::Kind::Write) => DocumentHighlightKind::WRITE, @@ -4489,7 +4489,7 @@ impl GetDocumentDiagnostics { let tags = diagnostic .tags .into_iter() - .filter_map(|tag| match proto::LspDiagnosticTag::from_i32(tag) { + .filter_map(|tag| match proto::LspDiagnosticTag::try_from(tag).ok() { Some(proto::LspDiagnosticTag::Unnecessary) => Some(lsp::DiagnosticTag::UNNECESSARY), Some(proto::LspDiagnosticTag::Deprecated) => Some(lsp::DiagnosticTag::DEPRECATED), _ => None, @@ -4498,7 +4498,9 @@ impl GetDocumentDiagnostics { Ok(lsp::Diagnostic { range: language::range_to_lsp(range)?, - severity: match proto::lsp_diagnostic::Severity::from_i32(diagnostic.severity).unwrap() + severity: match proto::lsp_diagnostic::Severity::try_from(diagnostic.severity) + .ok() + .unwrap() { proto::lsp_diagnostic::Severity::Error => Some(lsp::DiagnosticSeverity::ERROR), proto::lsp_diagnostic::Severity::Warning => Some(lsp::DiagnosticSeverity::WARNING), diff --git a/crates/project/src/lsp_store.rs b/crates/project/src/lsp_store.rs index c152a8832e..c25f380ef1 100644 --- a/crates/project/src/lsp_store.rs +++ b/crates/project/src/lsp_store.rs @@ -9781,7 +9781,7 @@ impl LspStore { let server_id = lsp_query.server_id.map(LanguageServerId::from_proto); match lsp_query.request.context("invalid LSP query request")? { Request::GetReferences(get_references) => { - let position = get_references.position.clone().and_then(deserialize_anchor); + let position = get_references.position.and_then(deserialize_anchor); Self::query_lsp_locally::( lsp_store, server_id, @@ -9860,7 +9860,7 @@ impl LspStore { }); } Request::GetHover(get_hover) => { - let position = get_hover.position.clone().and_then(deserialize_anchor); + let position = get_hover.position.and_then(deserialize_anchor); Self::query_lsp_locally::( lsp_store, server_id, @@ -9885,10 +9885,7 @@ impl LspStore { .await?; } Request::GetSignatureHelp(get_signature_help) => { - let position = get_signature_help - .position - .clone() - .and_then(deserialize_anchor); + let position = get_signature_help.position.and_then(deserialize_anchor); Self::query_lsp_locally::( lsp_store, server_id, @@ -9913,7 +9910,7 @@ impl LspStore { .await?; } Request::GetDefinition(get_definition) => { - let position = get_definition.position.clone().and_then(deserialize_anchor); + let position = get_definition.position.and_then(deserialize_anchor); Self::query_lsp_locally::( lsp_store, server_id, @@ -9928,7 +9925,6 @@ impl LspStore { Request::GetEditPredictionDefinition(get_edit_prediction_definition) => { let position = get_edit_prediction_definition .position - .clone() .and_then(deserialize_anchor); Self::query_lsp_locally::( lsp_store, @@ -9942,10 +9938,7 @@ impl LspStore { .await?; } Request::GetDeclaration(get_declaration) => { - let position = get_declaration - .position - .clone() - .and_then(deserialize_anchor); + let position = get_declaration.position.and_then(deserialize_anchor); Self::query_lsp_locally::( lsp_store, server_id, @@ -9958,10 +9951,7 @@ impl LspStore { .await?; } Request::GetTypeDefinition(get_type_definition) => { - let position = get_type_definition - .position - .clone() - .and_then(deserialize_anchor); + let position = get_type_definition.position.and_then(deserialize_anchor); Self::query_lsp_locally::( lsp_store, server_id, @@ -9976,7 +9966,6 @@ impl LspStore { Request::GetEditPredictionTypeDefinition(get_edit_prediction_type_definition) => { let position = get_edit_prediction_type_definition .position - .clone() .and_then(deserialize_anchor); Self::query_lsp_locally::( lsp_store, @@ -9990,10 +9979,7 @@ impl LspStore { .await?; } Request::GetImplementation(get_implementation) => { - let position = get_implementation - .position - .clone() - .and_then(deserialize_anchor); + let position = get_implementation.position.and_then(deserialize_anchor); Self::query_lsp_locally::( lsp_store, server_id, @@ -10008,12 +9994,10 @@ impl LspStore { Request::InlayHints(inlay_hints) => { let query_start = inlay_hints .start - .clone() .and_then(deserialize_anchor) .context("invalid inlay hints range start")?; let query_end = inlay_hints .end - .clone() .and_then(deserialize_anchor) .context("invalid inlay hints range end")?; Self::deduplicate_range_based_lsp_requests::( @@ -11666,7 +11650,7 @@ impl LspStore { .ranges .iter() .map(|range| { - deserialize_anchor_range(range.clone()).context("invalid anchor range") + deserialize_anchor_range(*range).context("invalid anchor range") }) .collect(); ranges_map.insert(buffer_id, ranges?); @@ -12989,7 +12973,7 @@ impl LspStore { Ok(CoreCompletion { replace_range: old_replace_start..old_replace_end, new_text: completion.new_text, - source: match proto::completion::Source::from_i32(completion.source) { + source: match proto::completion::Source::try_from(completion.source).ok() { Some(proto::completion::Source::Custom) => CompletionSource::Custom, Some(proto::completion::Source::Lsp) => CompletionSource::Lsp { insert_range, @@ -13061,7 +13045,7 @@ impl LspStore { .end .and_then(deserialize_anchor) .context("invalid end")?; - let lsp_action = match proto::code_action::Kind::from_i32(action.kind) { + let lsp_action = match proto::code_action::Kind::try_from(action.kind).ok() { Some(proto::code_action::Kind::Action) => { LspAction::Action(serde_json::from_slice(&action.lsp_action)?) } @@ -14447,7 +14431,10 @@ impl LanguageServerLogType { use proto::rpc_message; match log_type { proto::language_server_log::LogType::Log(message_type) => Self::Log( - match LogLevel::from_i32(message_type.level).unwrap_or(LogLevel::Log) { + match LogLevel::try_from(message_type.level) + .ok() + .unwrap_or(LogLevel::Log) + { LogLevel::Error => MessageType::ERROR, LogLevel::Warning => MessageType::WARNING, LogLevel::Info => MessageType::INFO, @@ -14458,7 +14445,8 @@ impl LanguageServerLogType { verbose_info: trace_message.verbose_info, }, proto::language_server_log::LogType::Rpc(message) => Self::Rpc { - received: match rpc_message::Kind::from_i32(message.kind) + received: match rpc_message::Kind::try_from(message.kind) + .ok() .unwrap_or(rpc_message::Kind::Received) { rpc_message::Kind::Received => true, diff --git a/crates/project/src/project.rs b/crates/project/src/project.rs index 3a6e053740..79042b5a28 100644 --- a/crates/project/src/project.rs +++ b/crates/project/src/project.rs @@ -5718,7 +5718,8 @@ impl Project { mut cx: AsyncApp, ) -> Result<()> { let toggled_log_kind = - match proto::toggle_lsp_logs::LogType::from_i32(envelope.payload.log_type) + match proto::toggle_lsp_logs::LogType::try_from(envelope.payload.log_type) + .ok() .context("invalid log type")? { proto::toggle_lsp_logs::LogType::Log => LogKind::Logs, diff --git a/crates/project/src/project_settings.rs b/crates/project/src/project_settings.rs index e4c806dbe6..078711c864 100644 --- a/crates/project/src/project_settings.rs +++ b/crates/project/src/project_settings.rs @@ -1081,7 +1081,8 @@ impl SettingsObserver { mut cx: AsyncApp, ) -> anyhow::Result<()> { let kind = match envelope.payload.kind { - Some(kind) => proto::LocalSettingsKind::from_i32(kind) + Some(kind) => proto::LocalSettingsKind::try_from(kind) + .ok() .with_context(|| format!("unknown kind {kind}"))?, None => proto::LocalSettingsKind::Settings, }; diff --git a/crates/project/src/search.rs b/crates/project/src/search.rs index 9fdf3a1661..fb2e88a124 100644 --- a/crates/project/src/search.rs +++ b/crates/project/src/search.rs @@ -477,7 +477,7 @@ impl SearchQuery { LazyLock::new(|| Regex::new(r"\\\\|\\n|\\t").unwrap()); let replacement = TEXT_REPLACEMENT_SPECIAL_CHARACTERS_REGEX.replace_all( replacement, - |c: &Captures| match c.get(0).unwrap().as_str() { + |c: &Captures| match c.get(0).unwrap().as_str() { r"\\" => "\\", r"\n" => "\n", r"\t" => "\t", diff --git a/crates/proto/Cargo.toml b/crates/proto/Cargo.toml index dfa4166f20..68ad460a0b 100644 --- a/crates/proto/Cargo.toml +++ b/crates/proto/Cargo.toml @@ -23,5 +23,6 @@ serde.workspace = true [build-dependencies] prost-build.workspace = true +protox.workspace = true [dev-dependencies] diff --git a/crates/proto/build.rs b/crates/proto/build.rs index 184d0e53d5..3662ea83a7 100644 --- a/crates/proto/build.rs +++ b/crates/proto/build.rs @@ -1,10 +1,9 @@ fn main() { println!("cargo:rerun-if-changed=proto"); + let file_descriptors = protox::compile(["proto/zed.proto"], ["proto"]).unwrap(); let mut build = prost_build::Config::new(); build .type_attribute(".", "#[derive(serde::Serialize, serde::Deserialize)]") - .type_attribute("ProjectPath", "#[derive(Hash, Eq)]") - .type_attribute("Anchor", "#[derive(Hash, Eq)]") - .compile_protos(&["proto/zed.proto"], &["proto"]) + .compile_fds(file_descriptors) .unwrap(); } diff --git a/crates/proto/src/typed_envelope.rs b/crates/proto/src/typed_envelope.rs index a7a8a1c7a2..e84281b858 100644 --- a/crates/proto/src/typed_envelope.rs +++ b/crates/proto/src/typed_envelope.rs @@ -138,10 +138,6 @@ impl PeerId { } } -impl Copy for PeerId {} - -impl Eq for PeerId {} - impl Ord for PeerId { fn cmp(&self, other: &Self) -> cmp::Ordering { self.owner_id @@ -156,13 +152,6 @@ impl PartialOrd for PeerId { } } -impl std::hash::Hash for PeerId { - fn hash(&self, state: &mut H) { - self.owner_id.hash(state); - self.id.hash(state); - } -} - impl fmt::Display for PeerId { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { write!(f, "{}/{}", self.owner_id, self.id) diff --git a/crates/remote_server/src/headless_project.rs b/crates/remote_server/src/headless_project.rs index 01bf3d680a..7f916b3c81 100644 --- a/crates/remote_server/src/headless_project.rs +++ b/crates/remote_server/src/headless_project.rs @@ -848,7 +848,8 @@ impl HeadlessProject { .map(|global_log_store| global_log_store.0.clone()) .context("lsp logs store is missing")?; let toggled_log_kind = - match proto::toggle_lsp_logs::LogType::from_i32(envelope.payload.log_type) + match proto::toggle_lsp_logs::LogType::try_from(envelope.payload.log_type) + .ok() .context("invalid log type")? { proto::toggle_lsp_logs::LogType::Log => LogKind::Logs, diff --git a/crates/rpc/src/peer.rs b/crates/rpc/src/peer.rs index 03bbf5028b..4fac9d84ca 100644 --- a/crates/rpc/src/peer.rs +++ b/crates/rpc/src/peer.rs @@ -829,7 +829,7 @@ mod tests { peer.respond(receipt, proto::Ack {})? } else if let Some(envelope) = envelope.downcast_ref::>() { - peer.respond(envelope.receipt(), envelope.payload.clone())? + peer.respond(envelope.receipt(), envelope.payload)? } else { panic!("unknown message type"); } diff --git a/crates/util/Cargo.toml b/crates/util/Cargo.toml index 0ab698b84d..bebac886f4 100644 --- a/crates/util/Cargo.toml +++ b/crates/util/Cargo.toml @@ -60,7 +60,7 @@ nix = { workspace = true, features = ["user"] } mach2.workspace = true [target.'cfg(windows)'.dependencies] -tendril = "0.4.3" +tendril = "0.5" windows.workspace = true [dev-dependencies] diff --git a/crates/workspace/src/workspace.rs b/crates/workspace/src/workspace.rs index aac63cb1c9..0267ddd1a2 100644 --- a/crates/workspace/src/workspace.rs +++ b/crates/workspace/src/workspace.rs @@ -6102,7 +6102,7 @@ impl Workspace { state.active_view_id = response .active_view .as_ref() - .and_then(|view| ViewId::from_proto(view.id.clone()?).ok()); + .and_then(|view| ViewId::from_proto(view.id?).ok()); anyhow::Ok(()) })??; if let Some(view) = response.active_view { @@ -6559,7 +6559,7 @@ impl Workspace { ) -> Result<()> { match update.variant.context("invalid update")? { proto::update_followers::Variant::CreateView(view) => { - let view_id = ViewId::from_proto(view.id.clone().context("invalid view id")?)?; + let view_id = ViewId::from_proto(view.id.context("invalid view id")?)?; let should_add_view = this.update(cx, |this, _| { if let Some(state) = this.follower_states.get_mut(&leader_id.into()) { anyhow::Ok(!state.items_by_leader_view_id.contains_key(&view_id)) @@ -6578,7 +6578,7 @@ impl Workspace { state.active_view_id = update_active_view .view .as_ref() - .and_then(|view| ViewId::from_proto(view.id.clone()?).ok()); + .and_then(|view| ViewId::from_proto(view.id?).ok()); if state.active_view_id.is_some_and(|view_id| { !state.items_by_leader_view_id.contains_key(&view_id) @@ -6603,7 +6603,7 @@ impl Workspace { this.update_in(cx, |this, window, cx| { let project = this.project.clone(); if let Some(state) = this.follower_states.get(&leader_id.into()) { - let view_id = ViewId::from_proto(id.clone())?; + let view_id = ViewId::from_proto(id)?; if let Some(item) = state.items_by_leader_view_id.get(&view_id) { tasks.push(item.view.apply_update_proto( &project, @@ -6632,11 +6632,13 @@ impl Workspace { ) -> Result<()> { let this = this.upgrade().context("workspace dropped")?; - let Some(id) = view.id.clone() else { + let Some(id) = view.id else { anyhow::bail!("no id for view"); }; let id = ViewId::from_proto(id)?; - let panel_id = view.panel_id.and_then(proto::PanelId::from_i32); + let panel_id = view + .panel_id + .and_then(|value| proto::PanelId::try_from(value).ok()); let pane = this.update(cx, |this, _cx| { let state = this