Update futures to 0.3.32 (#52910)

As part of the work that is being developed for the Project Panel's Undo
& Redo system, in
https://github.com/zed-industries/zed/tree/5039-create-redo , we're
implementing an asynchronous task queue which simply receives a message
with the operation/change that is meant to be carried out, in order to
ensure these run in a sequential fashion.

While trying to use `futures_channel::mpsc::Receiver`, it was noted that
`recv` method was not available so this Pull Request updates the
`futures` crate to `0.3.32`, where it is available.

This version also deprecates `try_next` in favor of `try_recv` so this
Pull Request updates existing callers of `try_next` to use `try_recv`,
which was mostly updating the expected return type from
`Result<Option<T>>` to `Result<T>`.

Co-authored-by: Yara <git@yara.blue>
This commit is contained in:
Dino 2026-04-05 23:05:35 +01:00 committed by GitHub
parent 1ebcde8164
commit c0f01c4278
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
23 changed files with 220 additions and 247 deletions

256
Cargo.lock generated
View file

@ -15,7 +15,7 @@ dependencies = [
"collections",
"env_logger 0.11.8",
"file_icons",
"futures 0.3.31",
"futures 0.3.32",
"gpui",
"image",
"indoc",
@ -75,7 +75,7 @@ dependencies = [
"collections",
"ctor",
"fs",
"futures 0.3.31",
"futures 0.3.32",
"gpui",
"language",
"log",
@ -100,7 +100,7 @@ dependencies = [
"editor",
"extension_host",
"fs",
"futures 0.3.31",
"futures 0.3.32",
"gpui",
"language",
"project",
@ -163,7 +163,7 @@ dependencies = [
"eval_utils",
"feature_flags",
"fs",
"futures 0.3.31",
"futures 0.3.32",
"git",
"gpui",
"gpui_tokio",
@ -227,7 +227,7 @@ dependencies = [
"async-broadcast",
"async-trait",
"derive_more",
"futures 0.3.31",
"futures 0.3.32",
"log",
"serde",
"serde_json",
@ -263,7 +263,7 @@ dependencies = [
"env_logger 0.11.8",
"feature_flags",
"fs",
"futures 0.3.31",
"futures 0.3.32",
"google_ai",
"gpui",
"gpui_tokio",
@ -344,7 +344,7 @@ dependencies = [
"feature_flags",
"file_icons",
"fs",
"futures 0.3.31",
"futures 0.3.32",
"fuzzy",
"git",
"gpui",
@ -629,7 +629,7 @@ version = "0.1.0"
dependencies = [
"anyhow",
"chrono",
"futures 0.3.31",
"futures 0.3.32",
"http_client",
"schemars",
"serde",
@ -750,7 +750,7 @@ name = "askpass"
version = "0.1.0"
dependencies = [
"anyhow",
"futures 0.3.31",
"futures 0.3.32",
"gpui",
"log",
"net",
@ -945,7 +945,7 @@ name = "async-pipe"
version = "0.1.3"
source = "git+https://github.com/zed-industries/async-pipe-rs?rev=82d00a04211cf4e1236029aa03e6b6ce2a74c553#82d00a04211cf4e1236029aa03e6b6ce2a74c553"
dependencies = [
"futures 0.3.31",
"futures 0.3.32",
"log",
]
@ -1183,7 +1183,7 @@ dependencies = [
"clock",
"ctor",
"db",
"futures 0.3.31",
"futures 0.3.32",
"futures-lite 1.13.0",
"gpui",
"http_client",
@ -1862,7 +1862,7 @@ dependencies = [
"anyhow",
"aws-sdk-bedrockruntime",
"aws-smithy-types",
"futures 0.3.31",
"futures 0.3.32",
"schemars",
"serde",
"serde_json",
@ -2151,7 +2151,7 @@ version = "0.1.0"
dependencies = [
"clock",
"ctor",
"futures 0.3.31",
"futures 0.3.32",
"git2",
"gpui",
"language",
@ -2348,7 +2348,7 @@ dependencies = [
"collections",
"feature_flags",
"fs",
"futures 0.3.31",
"futures 0.3.32",
"gpui",
"gpui_tokio",
"language",
@ -2669,7 +2669,7 @@ dependencies = [
"client",
"clock",
"collections",
"futures 0.3.31",
"futures 0.3.32",
"gpui",
"http_client",
"language",
@ -2864,7 +2864,7 @@ dependencies = [
"derive_more",
"feature_flags",
"fs",
"futures 0.3.31",
"futures 0.3.32",
"gpui",
"gpui_tokio",
"http_client",
@ -2920,7 +2920,7 @@ version = "0.1.0"
dependencies = [
"anyhow",
"cloud_api_types",
"futures 0.3.31",
"futures 0.3.32",
"gpui",
"gpui_tokio",
"http_client",
@ -3052,7 +3052,7 @@ dependencies = [
"anyhow",
"edit_prediction",
"edit_prediction_types",
"futures 0.3.31",
"futures 0.3.32",
"gpui",
"http_client",
"icons",
@ -3099,7 +3099,7 @@ dependencies = [
"extension",
"file_finder",
"fs",
"futures 0.3.31",
"futures 0.3.32",
"git",
"git_hosting_providers",
"git_ui",
@ -3176,7 +3176,7 @@ dependencies = [
"collections",
"db",
"editor",
"futures 0.3.31",
"futures 0.3.32",
"fuzzy",
"gpui",
"livekit_client",
@ -3437,7 +3437,7 @@ dependencies = [
"async-trait",
"base64 0.22.1",
"collections",
"futures 0.3.31",
"futures 0.3.32",
"gpui",
"http_client",
"log",
@ -3498,7 +3498,7 @@ dependencies = [
"edit_prediction_types",
"editor",
"fs",
"futures 0.3.31",
"futures 0.3.32",
"gpui",
"icons",
"indoc",
@ -3532,7 +3532,7 @@ dependencies = [
"collections",
"dirs 4.0.0",
"fs",
"futures 0.3.31",
"futures 0.3.32",
"gpui",
"http_client",
"log",
@ -3982,7 +3982,7 @@ version = "0.1.0"
dependencies = [
"cfg-if",
"crash-handler",
"futures 0.3.31",
"futures 0.3.32",
"log",
"mach2 0.5.0",
"minidumper",
@ -4318,7 +4318,7 @@ dependencies = [
"collections",
"dap-types",
"fs",
"futures 0.3.31",
"futures 0.3.32",
"gpui",
"http_client",
"language",
@ -4360,7 +4360,7 @@ dependencies = [
"dap",
"dotenvy",
"fs",
"futures 0.3.31",
"futures 0.3.32",
"gpui",
"http_client",
"json_dotpath",
@ -4531,7 +4531,7 @@ dependencies = [
"anyhow",
"dap",
"editor",
"futures 0.3.31",
"futures 0.3.32",
"gpui",
"project",
"serde_json",
@ -4558,7 +4558,7 @@ dependencies = [
"editor",
"feature_flags",
"file_icons",
"futures 0.3.31",
"futures 0.3.32",
"fuzzy",
"gpui",
"hex",
@ -4613,7 +4613,7 @@ name = "deepseek"
version = "0.1.0"
dependencies = [
"anyhow",
"futures 0.3.31",
"futures 0.3.32",
"http_client",
"schemars",
"serde",
@ -4733,7 +4733,7 @@ dependencies = [
"async-trait",
"env_logger 0.11.8",
"fs",
"futures 0.3.31",
"futures 0.3.32",
"gpui",
"http 1.3.1",
"http_client",
@ -5122,7 +5122,7 @@ dependencies = [
"edit_prediction_types",
"feature_flags",
"fs",
"futures 0.3.31",
"futures 0.3.32",
"gpui",
"heapless",
"indoc",
@ -5183,7 +5183,7 @@ dependencies = [
"extension",
"flate2",
"fs",
"futures 0.3.31",
"futures 0.3.32",
"gaoya",
"gpui",
"gpui_platform",
@ -5235,7 +5235,7 @@ dependencies = [
"clock",
"collections",
"env_logger 0.11.8",
"futures 0.3.31",
"futures 0.3.32",
"gpui",
"indoc",
"language",
@ -5284,7 +5284,7 @@ dependencies = [
"editor",
"feature_flags",
"fs",
"futures 0.3.31",
"futures 0.3.32",
"gpui",
"indoc",
"language",
@ -5329,7 +5329,7 @@ dependencies = [
"feature_flags",
"file_icons",
"fs",
"futures 0.3.31",
"futures 0.3.32",
"fuzzy",
"git",
"gpui",
@ -5743,7 +5743,7 @@ dependencies = [
"extension",
"feature_flags",
"fs",
"futures 0.3.31",
"futures 0.3.32",
"gpui",
"gpui_platform",
"gpui_tokio",
@ -5853,7 +5853,7 @@ dependencies = [
"collections",
"dap",
"fs",
"futures 0.3.31",
"futures 0.3.32",
"gpui",
"heck 0.5.0",
"http_client",
@ -5921,7 +5921,7 @@ dependencies = [
"dap",
"extension",
"fs",
"futures 0.3.31",
"futures 0.3.32",
"gpui",
"gpui_tokio",
"http_client",
@ -6129,7 +6129,7 @@ dependencies = [
"ctor",
"editor",
"file_icons",
"futures 0.3.31",
"futures 0.3.32",
"fuzzy",
"gpui",
"menu",
@ -6431,7 +6431,7 @@ dependencies = [
"collections",
"dunce",
"fs",
"futures 0.3.31",
"futures 0.3.32",
"git",
"gpui",
"ignore",
@ -6529,9 +6529,9 @@ checksum = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678"
[[package]]
name = "futures"
version = "0.3.31"
version = "0.3.32"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876"
checksum = "8b147ee9d1f6d097cef9ce628cd2ee62288d963e16fb287bd9286455b241382d"
dependencies = [
"futures-channel",
"futures-core",
@ -6544,9 +6544,9 @@ dependencies = [
[[package]]
name = "futures-channel"
version = "0.3.31"
version = "0.3.32"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10"
checksum = "07bbe89c50d7a535e539b8c17bc0b49bdb77747034daa8087407d655f3f7cc1d"
dependencies = [
"futures-core",
"futures-sink",
@ -6567,15 +6567,15 @@ dependencies = [
[[package]]
name = "futures-core"
version = "0.3.31"
version = "0.3.32"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e"
checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d"
[[package]]
name = "futures-executor"
version = "0.3.31"
version = "0.3.32"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f"
checksum = "baf29c38818342a3b26b5b923639e7b1f4a61fc5e76102d4b1981c6dc7a7579d"
dependencies = [
"futures-core",
"futures-task",
@ -6595,9 +6595,9 @@ dependencies = [
[[package]]
name = "futures-io"
version = "0.3.31"
version = "0.3.32"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6"
checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718"
[[package]]
name = "futures-lite"
@ -6629,9 +6629,9 @@ dependencies = [
[[package]]
name = "futures-macro"
version = "0.3.31"
version = "0.3.32"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650"
checksum = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b"
dependencies = [
"proc-macro2",
"quote",
@ -6640,21 +6640,21 @@ dependencies = [
[[package]]
name = "futures-sink"
version = "0.3.31"
version = "0.3.32"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7"
checksum = "c39754e157331b013978ec91992bde1ac089843443c49cbc7f46150b0fad0893"
[[package]]
name = "futures-task"
version = "0.3.31"
version = "0.3.32"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988"
checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393"
[[package]]
name = "futures-util"
version = "0.3.31"
version = "0.3.32"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81"
checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6"
dependencies = [
"futures 0.1.31",
"futures-channel",
@ -6663,9 +6663,9 @@ dependencies = [
"futures-macro",
"futures-sink",
"futures-task",
"libc",
"memchr",
"pin-project-lite",
"pin-utils",
"slab",
"tokio-io",
]
@ -7092,7 +7092,7 @@ dependencies = [
"async-trait",
"collections",
"derive_more",
"futures 0.3.31",
"futures 0.3.32",
"git2",
"gpui",
"http_client",
@ -7168,7 +7168,7 @@ version = "0.1.0"
dependencies = [
"anyhow",
"async-trait",
"futures 0.3.31",
"futures 0.3.32",
"git",
"gpui",
"http_client",
@ -7199,7 +7199,7 @@ dependencies = [
"db",
"editor",
"file_icons",
"futures 0.3.31",
"futures 0.3.32",
"fuzzy",
"git",
"gpui",
@ -7404,7 +7404,7 @@ name = "google_ai"
version = "0.1.0"
dependencies = [
"anyhow",
"futures 0.3.31",
"futures 0.3.32",
"http_client",
"schemars",
"serde",
@ -7474,7 +7474,7 @@ dependencies = [
"env_logger 0.11.8",
"etagere",
"foreign-types 0.5.0",
"futures 0.3.31",
"futures 0.3.32",
"futures-concurrency",
"getrandom 0.3.4",
"gpui_macros",
@ -7549,7 +7549,7 @@ dependencies = [
"calloop-wayland-source",
"collections",
"filedescriptor",
"futures 0.3.31",
"futures 0.3.32",
"gpui",
"gpui_wgpu",
"http_client",
@ -7603,7 +7603,7 @@ dependencies = [
"dispatch2",
"etagere",
"foreign-types 0.5.0",
"futures 0.3.31",
"futures 0.3.32",
"gpui",
"image",
"itertools 0.14.0",
@ -7672,7 +7672,7 @@ version = "0.1.0"
dependencies = [
"anyhow",
"console_error_panic_hook",
"futures 0.3.31",
"futures 0.3.32",
"gpui",
"gpui_wgpu",
"http_client",
@ -7723,7 +7723,7 @@ dependencies = [
"anyhow",
"collections",
"etagere",
"futures 0.3.31",
"futures 0.3.32",
"gpui",
"image",
"itertools 0.14.0",
@ -8207,7 +8207,7 @@ dependencies = [
"async-tar",
"bytes 1.11.1",
"derive_more",
"futures 0.3.31",
"futures 0.3.32",
"http 1.3.1",
"http-body 1.0.1",
"log",
@ -9090,7 +9090,7 @@ dependencies = [
"async-trait",
"bytes 1.11.1",
"chrono",
"futures 0.3.31",
"futures 0.3.32",
"serde",
"serde_json",
"thiserror 2.0.17",
@ -9106,7 +9106,7 @@ dependencies = [
"anyhow",
"async-trait",
"async-tungstenite",
"futures 0.3.31",
"futures 0.3.32",
"jupyter-protocol",
"serde",
"serde_json",
@ -9224,7 +9224,7 @@ dependencies = [
"ec4rs",
"encoding_rs",
"fs",
"futures 0.3.31",
"futures 0.3.32",
"fuzzy",
"globset",
"gpui",
@ -9304,7 +9304,7 @@ dependencies = [
"collections",
"extension",
"fs",
"futures 0.3.31",
"futures 0.3.32",
"gpui",
"language",
"log",
@ -9330,7 +9330,7 @@ dependencies = [
"collections",
"credentials_provider",
"env_var",
"futures 0.3.31",
"futures 0.3.32",
"gpui",
"http_client",
"icons",
@ -9373,7 +9373,7 @@ dependencies = [
"extension",
"extension_host",
"fs",
"futures 0.3.31",
"futures 0.3.32",
"google_ai",
"gpui",
"gpui_tokio",
@ -9450,7 +9450,7 @@ dependencies = [
"command_palette_hooks",
"edit_prediction",
"editor",
"futures 0.3.31",
"futures 0.3.32",
"gpui",
"itertools 0.14.0",
"language",
@ -9486,7 +9486,7 @@ dependencies = [
"chrono",
"collections",
"fs",
"futures 0.3.31",
"futures 0.3.32",
"globset",
"gpui",
"grammars",
@ -9873,7 +9873,7 @@ dependencies = [
"core-video",
"coreaudio-rs 0.12.1",
"cpal",
"futures 0.3.31",
"futures 0.3.32",
"gpui",
"gpui_platform",
"gpui_tokio",
@ -9917,7 +9917,7 @@ name = "lmstudio"
version = "0.1.0"
dependencies = [
"anyhow",
"futures 0.3.31",
"futures 0.3.32",
"http_client",
"schemars",
"serde",
@ -9988,7 +9988,7 @@ dependencies = [
"async-pipe",
"collections",
"ctor",
"futures 0.3.31",
"futures 0.3.32",
"gpui",
"gpui_util",
"log",
@ -10128,7 +10128,7 @@ dependencies = [
"collections",
"env_logger 0.11.8",
"fs",
"futures 0.3.31",
"futures 0.3.32",
"gpui",
"gpui_platform",
"html5ever 0.27.0",
@ -10575,7 +10575,7 @@ name = "mistral"
version = "0.1.0"
dependencies = [
"anyhow",
"futures 0.3.31",
"futures 0.3.32",
"http_client",
"schemars",
"serde",
@ -10764,7 +10764,7 @@ name = "nc"
version = "0.1.0"
dependencies = [
"anyhow",
"futures 0.3.31",
"futures 0.3.32",
"net",
"smol",
]
@ -10860,7 +10860,7 @@ dependencies = [
"async-std",
"async-tar",
"async-trait",
"futures 0.3.31",
"futures 0.3.32",
"http_client",
"log",
"paths",
@ -11184,7 +11184,7 @@ version = "0.9.2"
source = "git+https://github.com/KillTheMule/nvim-rs?rev=764dd270c642f77f10f3e19d05cc178a6cbe69f3#764dd270c642f77f10f3e19d05cc178a6cbe69f3"
dependencies = [
"async-trait",
"futures 0.3.31",
"futures 0.3.32",
"log",
"rmp",
"rmpv",
@ -11384,7 +11384,7 @@ name = "ollama"
version = "0.1.0"
dependencies = [
"anyhow",
"futures 0.3.31",
"futures 0.3.32",
"http_client",
"schemars",
"serde",
@ -11491,7 +11491,7 @@ name = "open_ai"
version = "0.1.0"
dependencies = [
"anyhow",
"futures 0.3.31",
"futures 0.3.32",
"http_client",
"log",
"rand 0.9.2",
@ -11509,7 +11509,7 @@ version = "0.1.0"
dependencies = [
"editor",
"file_icons",
"futures 0.3.31",
"futures 0.3.32",
"fuzzy",
"gpui",
"picker",
@ -11530,7 +11530,7 @@ name = "open_router"
version = "0.1.0"
dependencies = [
"anyhow",
"futures 0.3.31",
"futures 0.3.32",
"http_client",
"schemars",
"serde",
@ -11545,7 +11545,7 @@ name = "opencode"
version = "0.1.0"
dependencies = [
"anyhow",
"futures 0.3.31",
"futures 0.3.32",
"google_ai",
"http_client",
"schemars",
@ -12859,7 +12859,7 @@ checksum = "af3fb618632874fb76937c2361a7f22afd393c982a2165595407edc75b06d3c1"
dependencies = [
"atomic",
"crossbeam-queue",
"futures 0.3.31",
"futures 0.3.32",
"log",
"parking_lot",
"pin-project",
@ -13092,7 +13092,7 @@ dependencies = [
"extension",
"fancy-regex 0.17.0",
"fs",
"futures 0.3.31",
"futures 0.3.32",
"fuzzy",
"git",
"git2",
@ -13159,7 +13159,7 @@ dependencies = [
"askpass",
"clap",
"client",
"futures 0.3.31",
"futures 0.3.32",
"gpui",
"gpui_platform",
"http_client",
@ -13220,7 +13220,7 @@ version = "0.1.0"
dependencies = [
"anyhow",
"editor",
"futures 0.3.31",
"futures 0.3.32",
"fuzzy",
"gpui",
"language",
@ -13262,7 +13262,7 @@ dependencies = [
"chrono",
"collections",
"fs",
"futures 0.3.31",
"futures 0.3.32",
"fuzzy",
"gpui",
"handlebars 4.5.0",
@ -14017,7 +14017,7 @@ dependencies = [
"extension",
"extension_host",
"fs",
"futures 0.3.31",
"futures 0.3.32",
"fuzzy",
"gpui",
"http_client",
@ -14201,7 +14201,7 @@ dependencies = [
"base64 0.22.1",
"collections",
"fs",
"futures 0.3.31",
"futures 0.3.32",
"gpui",
"log",
"parking_lot",
@ -14229,7 +14229,7 @@ dependencies = [
"anyhow",
"askpass",
"auto_update",
"futures 0.3.31",
"futures 0.3.32",
"gpui",
"log",
"markdown",
@ -14267,7 +14267,7 @@ dependencies = [
"extension_host",
"fork",
"fs",
"futures 0.3.31",
"futures 0.3.32",
"git",
"git2",
"git_hosting_providers",
@ -14349,7 +14349,7 @@ dependencies = [
"editor",
"feature_flags",
"file_icons",
"futures 0.3.31",
"futures 0.3.32",
"gpui",
"html_to_markdown",
"http_client",
@ -14474,7 +14474,7 @@ version = "0.1.0"
dependencies = [
"anyhow",
"bytes 1.11.1",
"futures 0.3.31",
"futures 0.3.32",
"gpui_util",
"http_client",
"http_client_tls",
@ -14646,7 +14646,7 @@ dependencies = [
"async-tungstenite",
"base64 0.22.1",
"collections",
"futures 0.3.31",
"futures 0.3.32",
"gpui",
"parking_lot",
"proto",
@ -14739,7 +14739,7 @@ dependencies = [
"chrono",
"data-encoding",
"dirs 6.0.0",
"futures 0.3.31",
"futures 0.3.32",
"glob",
"jupyter-protocol",
"serde",
@ -15113,7 +15113,7 @@ dependencies = [
"backtrace",
"chrono",
"flume",
"futures 0.3.31",
"futures 0.3.32",
"parking_lot",
"rand 0.9.2",
"web-time",
@ -15341,7 +15341,7 @@ dependencies = [
"collections",
"editor",
"fs",
"futures 0.3.31",
"futures 0.3.32",
"gpui",
"itertools 0.14.0",
"language",
@ -15620,7 +15620,7 @@ dependencies = [
"collections",
"ec4rs",
"fs",
"futures 0.3.31",
"futures 0.3.32",
"gpui",
"indoc",
"inventory",
@ -15724,7 +15724,7 @@ dependencies = [
"editor",
"feature_flags",
"fs",
"futures 0.3.31",
"futures 0.3.32",
"fuzzy",
"gpui",
"heck 0.5.0",
@ -16100,7 +16100,7 @@ dependencies = [
"collections",
"extension",
"fs",
"futures 0.3.31",
"futures 0.3.32",
"gpui",
"indoc",
"parking_lot",
@ -16212,7 +16212,7 @@ version = "0.1.0"
dependencies = [
"anyhow",
"collections",
"futures 0.3.31",
"futures 0.3.32",
"indoc",
"libsqlite3-sys",
"log",
@ -17258,7 +17258,7 @@ version = "0.1.0"
dependencies = [
"anyhow",
"collections",
"futures 0.3.31",
"futures 0.3.32",
"gpui",
"hex",
"log",
@ -17305,7 +17305,7 @@ dependencies = [
name = "telemetry"
version = "0.1.0"
dependencies = [
"futures 0.3.31",
"futures 0.3.32",
"serde",
"serde_json",
"telemetry_events",
@ -17360,7 +17360,7 @@ dependencies = [
"alacritty_terminal",
"anyhow",
"collections",
"futures 0.3.31",
"futures 0.3.32",
"gpui",
"itertools 0.14.0",
"libc",
@ -17406,7 +17406,7 @@ dependencies = [
"db",
"dirs 4.0.0",
"editor",
"futures 0.3.31",
"futures 0.3.32",
"gpui",
"itertools 0.14.0",
"language",
@ -18042,7 +18042,7 @@ dependencies = [
"anyhow",
"convert_case 0.8.0",
"editor",
"futures 0.3.31",
"futures 0.3.32",
"fuzzy",
"gpui",
"language",
@ -18918,7 +18918,7 @@ dependencies = [
"command-fds",
"dirs 4.0.0",
"dunce",
"futures 0.3.31",
"futures 0.3.32",
"futures-lite 1.13.0",
"git2",
"globset",
@ -19075,7 +19075,7 @@ dependencies = [
"db",
"editor",
"env_logger 0.11.8",
"futures 0.3.31",
"futures 0.3.32",
"fuzzy",
"git_ui",
"gpui",
@ -19439,7 +19439,7 @@ version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b7516db7f32decdadb1c3b8deb1b7d78b9df7606c5cc2f6241737c2ab3a0258e"
dependencies = [
"futures 0.3.31",
"futures 0.3.32",
"js-sys",
"wasm-bindgen",
"web-sys",
@ -19795,7 +19795,7 @@ dependencies = [
"cap-std",
"cap-time-ext",
"fs-set-times",
"futures 0.3.31",
"futures 0.3.32",
"io-extras",
"io-lifetimes",
"rustix 1.1.2",
@ -19819,7 +19819,7 @@ dependencies = [
"anyhow",
"async-trait",
"bytes 1.11.1",
"futures 0.3.31",
"futures 0.3.32",
"wasmtime",
]
@ -19837,7 +19837,7 @@ name = "watch"
version = "0.1.0"
dependencies = [
"ctor",
"futures 0.3.31",
"futures 0.3.32",
"gpui",
"parking_lot",
"zlog",
@ -20007,7 +20007,7 @@ dependencies = [
"client",
"cloud_api_types",
"cloud_llm_client",
"futures 0.3.31",
"futures 0.3.32",
"gpui",
"http_client",
"language_model",
@ -21201,7 +21201,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c4db52a11d4dfb0a59f194c064055794ee6564eb1ced88c25da2cf76e50c5621"
dependencies = [
"bitflags 2.10.0",
"futures 0.3.31",
"futures 0.3.32",
"once_cell",
]
@ -21452,7 +21452,7 @@ dependencies = [
"db",
"feature_flags",
"fs",
"futures 0.3.31",
"futures 0.3.32",
"git",
"gpui",
"http_client",
@ -21500,7 +21500,7 @@ dependencies = [
"collections",
"encoding_rs",
"fs",
"futures 0.3.31",
"futures 0.3.32",
"fuzzy",
"git",
"gpui",
@ -21752,7 +21752,7 @@ dependencies = [
"base64 0.22.1",
"bytes 1.11.1",
"flate2",
"futures 0.3.31",
"futures 0.3.32",
"http-body-util",
"hyper 1.7.0",
"hyper-util",
@ -21957,7 +21957,7 @@ dependencies = [
"feedback",
"file_finder",
"fs",
"futures 0.3.31",
"futures 0.3.32",
"git",
"git_graph",
"git_hosting_providers",
@ -22194,7 +22194,7 @@ version = "0.1.0"
dependencies = [
"anyhow",
"credentials_provider",
"futures 0.3.31",
"futures 0.3.32",
"gpui",
"paths",
"release_channel",
@ -22347,7 +22347,7 @@ dependencies = [
"asynchronous-codec",
"bytes 1.11.1",
"crossbeam-queue",
"futures 0.3.31",
"futures 0.3.32",
"log",
"num-traits",
"once_cell",

View file

@ -1519,7 +1519,7 @@ mod tests {
stream: &mut UnboundedReceiver<EditAgentOutputEvent>,
) -> Vec<EditAgentOutputEvent> {
let mut events = Vec::new();
while let Ok(Some(event)) = stream.try_next() {
while let Ok(event) = stream.try_recv() {
events.push(event);
}
events

View file

@ -6208,9 +6208,9 @@ async fn test_edit_file_tool_allow_rule_skips_confirmation(cx: &mut TestAppConte
cx.run_until_parked();
let event = rx.try_next();
let event = rx.try_recv();
assert!(
!matches!(event, Ok(Some(Ok(ThreadEvent::ToolCallAuthorization(_))))),
!matches!(event, Ok(Ok(ThreadEvent::ToolCallAuthorization(_)))),
"expected no authorization request for allowed .md file"
);
}
@ -6352,9 +6352,9 @@ async fn test_fetch_tool_allow_rule_skips_confirmation(cx: &mut TestAppContext)
cx.run_until_parked();
let event = rx.try_next();
let event = rx.try_recv();
assert!(
!matches!(event, Ok(Some(Ok(ThreadEvent::ToolCallAuthorization(_))))),
!matches!(event, Ok(Ok(ThreadEvent::ToolCallAuthorization(_)))),
"expected no authorization request for allowed docs.rs URL"
);
}

View file

@ -383,8 +383,8 @@ mod tests {
assert!(
!matches!(
event_rx.try_next(),
Ok(Some(Ok(crate::ThreadEvent::ToolCallAuthorization(_))))
event_rx.try_recv(),
Ok(Ok(crate::ThreadEvent::ToolCallAuthorization(_)))
),
"Expected a single authorization prompt",
);
@ -450,8 +450,8 @@ mod tests {
assert!(result.is_err(), "Tool should fail when policy denies");
assert!(
!matches!(
event_rx.try_next(),
Ok(Some(Ok(crate::ThreadEvent::ToolCallAuthorization(_))))
event_rx.try_recv(),
Ok(Ok(crate::ThreadEvent::ToolCallAuthorization(_)))
),
"Deny policy should not emit symlink authorization prompt",
);

View file

@ -370,8 +370,8 @@ mod tests {
assert!(
!matches!(
event_rx.try_next(),
Ok(Some(Ok(crate::ThreadEvent::ToolCallAuthorization(_))))
event_rx.try_recv(),
Ok(Ok(crate::ThreadEvent::ToolCallAuthorization(_)))
),
"Expected a single authorization prompt",
);
@ -440,8 +440,8 @@ mod tests {
assert!(result.is_err(), "Tool should fail when policy denies");
assert!(
!matches!(
event_rx.try_next(),
Ok(Some(Ok(crate::ThreadEvent::ToolCallAuthorization(_))))
event_rx.try_recv(),
Ok(Ok(crate::ThreadEvent::ToolCallAuthorization(_)))
),
"Deny policy should not emit symlink authorization prompt",
);

View file

@ -439,8 +439,8 @@ mod tests {
assert!(
!matches!(
event_rx.try_next(),
Ok(Some(Ok(crate::ThreadEvent::ToolCallAuthorization(_))))
event_rx.try_recv(),
Ok(Ok(crate::ThreadEvent::ToolCallAuthorization(_)))
),
"Expected a single authorization prompt",
);
@ -513,8 +513,8 @@ mod tests {
assert!(result.is_err(), "Tool should fail when policy denies");
assert!(
!matches!(
event_rx.try_next(),
Ok(Some(Ok(crate::ThreadEvent::ToolCallAuthorization(_))))
event_rx.try_recv(),
Ok(Ok(crate::ThreadEvent::ToolCallAuthorization(_)))
),
"Deny policy should not emit symlink authorization prompt",
);

View file

@ -1188,7 +1188,7 @@ mod tests {
})
.await
.unwrap();
assert!(stream_rx.try_next().is_err());
assert!(stream_rx.try_recv().is_err());
// Test 4: Path with .zed in the middle should require confirmation
let (stream_tx, mut stream_rx) = ToolCallEventStream::test();
@ -1251,7 +1251,7 @@ mod tests {
})
.await
.unwrap();
assert!(stream_rx.try_next().is_err());
assert!(stream_rx.try_recv().is_err());
// 5.3: Normal in-project path with allow — no confirmation needed
let (stream_tx, mut stream_rx) = ToolCallEventStream::test();
@ -1268,7 +1268,7 @@ mod tests {
})
.await
.unwrap();
assert!(stream_rx.try_next().is_err());
assert!(stream_rx.try_recv().is_err());
// 5.4: With Confirm default, non-project paths still prompt
cx.update(|cx| {
@ -1586,8 +1586,8 @@ mod tests {
assert!(result.is_err(), "Tool should fail when policy denies");
assert!(
!matches!(
stream_rx.try_next(),
Ok(Some(Ok(crate::ThreadEvent::ToolCallAuthorization(_))))
stream_rx.try_recv(),
Ok(Ok(crate::ThreadEvent::ToolCallAuthorization(_)))
),
"Deny policy should not emit symlink authorization prompt",
);
@ -1658,7 +1658,7 @@ mod tests {
} else {
auth.await.unwrap();
assert!(
stream_rx.try_next().is_err(),
stream_rx.try_recv().is_err(),
"Failed for case: {} - path: {} - expected no confirmation but got one",
description,
path
@ -1769,7 +1769,7 @@ mod tests {
} else {
auth.await.unwrap();
assert!(
stream_rx.try_next().is_err(),
stream_rx.try_recv().is_err(),
"Failed for case: {} - path: {} - expected no confirmation but got one",
description,
path
@ -1862,7 +1862,7 @@ mod tests {
stream_rx.expect_authorization().await;
} else {
assert!(
stream_rx.try_next().is_err(),
stream_rx.try_recv().is_err(),
"Failed for case: {} - path: {} - expected no confirmation but got one",
description,
path
@ -1963,7 +1963,7 @@ mod tests {
})
.await
.unwrap();
assert!(stream_rx.try_next().is_err());
assert!(stream_rx.try_recv().is_err());
}
}

View file

@ -982,13 +982,11 @@ mod tests {
"Expected private path validation error, got: {error}"
);
let event = event_rx.try_next();
let event = event_rx.try_recv();
assert!(
!matches!(
event,
Ok(Some(Ok(crate::thread::ThreadEvent::ToolCallAuthorization(
_
))))
Ok(Ok(crate::thread::ThreadEvent::ToolCallAuthorization(_)))
),
"No authorization should be requested when validation fails before listing",
);
@ -1030,13 +1028,11 @@ mod tests {
"Normal path should succeed without authorization"
);
let event = event_rx.try_next();
let event = event_rx.try_recv();
assert!(
!matches!(
event,
Ok(Some(Ok(crate::thread::ThreadEvent::ToolCallAuthorization(
_
))))
Ok(Ok(crate::thread::ThreadEvent::ToolCallAuthorization(_)))
),
"No authorization should be requested for normal paths",
);
@ -1087,13 +1083,11 @@ mod tests {
"Intra-project symlink should succeed without authorization: {result:?}",
);
let event = event_rx.try_next();
let event = event_rx.try_recv();
assert!(
!matches!(
event,
Ok(Some(Ok(crate::thread::ThreadEvent::ToolCallAuthorization(
_
))))
Ok(Ok(crate::thread::ThreadEvent::ToolCallAuthorization(_)))
),
"No authorization should be requested for intra-project symlinks",
);

View file

@ -390,8 +390,8 @@ mod tests {
assert!(
!matches!(
event_rx.try_next(),
Ok(Some(Ok(crate::ThreadEvent::ToolCallAuthorization(_))))
event_rx.try_recv(),
Ok(Ok(crate::ThreadEvent::ToolCallAuthorization(_)))
),
"Expected a single authorization prompt",
);
@ -457,8 +457,8 @@ mod tests {
assert!(result.is_err(), "Tool should fail when policy denies");
assert!(
!matches!(
event_rx.try_next(),
Ok(Some(Ok(crate::ThreadEvent::ToolCallAuthorization(_))))
event_rx.try_recv(),
Ok(Ok(crate::ThreadEvent::ToolCallAuthorization(_)))
),
"Deny policy should not emit symlink authorization prompt",
);

View file

@ -1317,13 +1317,11 @@ mod test {
"Expected private-files validation error, got: {error}"
);
let event = event_rx.try_next();
let event = event_rx.try_recv();
assert!(
!matches!(
event,
Ok(Some(Ok(crate::thread::ThreadEvent::ToolCallAuthorization(
_
))))
Ok(Ok(crate::thread::ThreadEvent::ToolCallAuthorization(_)))
),
"No authorization should be requested when validation fails before read",
);

View file

@ -589,8 +589,8 @@ mod tests {
assert!(result.is_err(), "Tool should fail when policy denies");
assert!(
!matches!(
event_rx.try_next(),
Ok(Some(Ok(crate::ThreadEvent::ToolCallAuthorization(_))))
event_rx.try_recv(),
Ok(Ok(crate::ThreadEvent::ToolCallAuthorization(_)))
),
"Deny policy should not emit symlink authorization prompt",
);
@ -662,8 +662,8 @@ mod tests {
assert!(
!matches!(
event_rx.try_next(),
Ok(Some(Ok(crate::ThreadEvent::ToolCallAuthorization(_))))
event_rx.try_recv(),
Ok(Ok(crate::ThreadEvent::ToolCallAuthorization(_)))
),
"Expected a single authorization prompt",
);

View file

@ -584,8 +584,8 @@ mod tests {
assert!(result.is_err(), "Tool should fail when policy denies");
assert!(
!matches!(
event_rx.try_next(),
Ok(Some(Ok(crate::ThreadEvent::ToolCallAuthorization(_))))
event_rx.try_recv(),
Ok(Ok(crate::ThreadEvent::ToolCallAuthorization(_)))
),
"Deny policy should not emit symlink authorization prompt",
);
@ -657,8 +657,8 @@ mod tests {
assert!(
!matches!(
event_rx.try_next(),
Ok(Some(Ok(crate::ThreadEvent::ToolCallAuthorization(_))))
event_rx.try_recv(),
Ok(Ok(crate::ThreadEvent::ToolCallAuthorization(_)))
),
"Expected a single authorization prompt",
);

View file

@ -2493,7 +2493,7 @@ mod tests {
})
.await
.unwrap();
assert!(stream_rx.try_next().is_err());
assert!(stream_rx.try_recv().is_err());
// Test 4: Path with .zed in the middle should require confirmation
let (stream_tx, mut stream_rx) = ToolCallEventStream::test();
@ -2540,7 +2540,7 @@ mod tests {
cx.update(|cx| tool.authorize(&PathBuf::from("/etc/hosts"), "test 5.2", &stream_tx, cx))
.await
.unwrap();
assert!(stream_rx.try_next().is_err());
assert!(stream_rx.try_recv().is_err());
// 5.3: Normal in-project path with allow — no confirmation needed
let (stream_tx, mut stream_rx) = ToolCallEventStream::test();
@ -2554,7 +2554,7 @@ mod tests {
})
.await
.unwrap();
assert!(stream_rx.try_next().is_err());
assert!(stream_rx.try_recv().is_err());
// 5.4: With Confirm default, non-project paths still prompt
cx.update(|cx| {
@ -2767,8 +2767,8 @@ mod tests {
assert!(result.is_err(), "Tool should fail when policy denies");
assert!(
!matches!(
stream_rx.try_next(),
Ok(Some(Ok(crate::ThreadEvent::ToolCallAuthorization(_))))
stream_rx.try_recv(),
Ok(Ok(crate::ThreadEvent::ToolCallAuthorization(_)))
),
"Deny policy should not emit symlink authorization prompt",
);
@ -2810,7 +2810,7 @@ mod tests {
} else {
auth.await.unwrap();
assert!(
stream_rx.try_next().is_err(),
stream_rx.try_recv().is_err(),
"Failed for case: {} - path: {} - expected no confirmation but got one",
description,
path
@ -2887,7 +2887,7 @@ mod tests {
} else {
auth.await.unwrap();
assert!(
stream_rx.try_next().is_err(),
stream_rx.try_recv().is_err(),
"Failed for case: {} - path: {} - expected no confirmation but got one",
description,
path
@ -2947,7 +2947,7 @@ mod tests {
stream_rx.expect_authorization().await;
} else {
assert!(
stream_rx.try_next().is_err(),
stream_rx.try_recv().is_err(),
"Failed for case: {} - path: {} - expected no confirmation but got one",
description,
path
@ -3015,7 +3015,7 @@ mod tests {
})
.await
.unwrap();
assert!(stream_rx.try_next().is_err());
assert!(stream_rx.try_recv().is_err());
}
}

View file

@ -681,17 +681,17 @@ mod tests {
);
assert!(
!matches!(
rx.try_next(),
Ok(Some(Ok(crate::ThreadEvent::ToolCallAuthorization(_))))
rx.try_recv(),
Ok(Ok(crate::ThreadEvent::ToolCallAuthorization(_)))
),
"invalid command should not request authorization"
);
assert!(
!matches!(
rx.try_next(),
Ok(Some(Ok(crate::ThreadEvent::ToolCallUpdate(
rx.try_recv(),
Ok(Ok(crate::ThreadEvent::ToolCallUpdate(
acp_thread::ToolCallUpdate::UpdateFields(_)
))))
)))
),
"invalid command should not emit a terminal card update"
);
@ -810,8 +810,8 @@ mod tests {
);
assert!(
!matches!(
rx.try_next(),
Ok(Some(Ok(crate::ThreadEvent::ToolCallAuthorization(_))))
rx.try_recv(),
Ok(Ok(crate::ThreadEvent::ToolCallAuthorization(_)))
),
"hardcoded denial should not request authorization"
);
@ -1058,8 +1058,8 @@ mod tests {
);
assert!(
!matches!(
rx.try_next(),
Ok(Some(Ok(crate::ThreadEvent::ToolCallAuthorization(_))))
rx.try_recv(),
Ok(Ok(crate::ThreadEvent::ToolCallAuthorization(_)))
),
"rejected command {command:?} should not request authorization"
);

View file

@ -2733,10 +2733,7 @@ mod tests {
assert!(refreshed);
assert_eq!(provider.access_token().as_deref(), Some("new-access"));
let notified_session = rx
.try_next()
.unwrap()
.expect("channel should have a session");
let notified_session = rx.try_recv().expect("channel should have a session");
assert_eq!(notified_session.tokens.access_token, "new-access");
assert_eq!(
notified_session.tokens.refresh_token.as_deref(),
@ -2768,10 +2765,7 @@ mod tests {
let refreshed = provider.try_refresh().await.unwrap();
assert!(refreshed);
let notified_session = rx
.try_next()
.unwrap()
.expect("channel should have a session");
let notified_session = rx.try_recv().expect("channel should have a session");
assert_eq!(notified_session.tokens.access_token, "new-access");
assert_eq!(
notified_session.tokens.refresh_token.as_deref(),

View file

@ -1045,7 +1045,7 @@ mod tests {
});
executor.advance_clock(COPILOT_DEBOUNCE_TIMEOUT);
assert!(copilot_requests.try_next().is_err());
assert!(copilot_requests.try_recv().is_err());
_ = editor.update(cx, |editor, window, cx| {
editor.change_selections(SelectionEffects::no_scroll(), window, cx, |s| {
@ -1055,7 +1055,7 @@ mod tests {
});
executor.advance_clock(COPILOT_DEBOUNCE_TIMEOUT);
assert!(copilot_requests.try_next().is_ok());
assert!(copilot_requests.try_recv().is_ok());
}
fn handle_copilot_completion_request(

View file

@ -1166,7 +1166,7 @@ mod tests {
});
cx.simulate_mouse_move(hover_point, None, Modifiers::secondary_key());
cx.background_executor.run_until_parked();
assert!(requests.try_next().is_err());
assert!(requests.try_recv().is_err());
cx.assert_editor_text_highlights(
HighlightKey::HoveredLinkState,
indoc! {"

View file

@ -6581,7 +6581,7 @@ impl Repository {
let state = RepositoryState::Local(state);
let mut jobs = VecDeque::new();
loop {
while let Ok(Some(next_job)) = job_rx.try_next() {
while let Ok(next_job) = job_rx.try_recv() {
jobs.push_back(next_job);
}
@ -6617,7 +6617,7 @@ impl Repository {
let state = RepositoryState::Remote(state);
let mut jobs = VecDeque::new();
loop {
while let Ok(Some(next_job)) = job_rx.try_next() {
while let Ok(next_job) = job_rx.try_recv() {
jobs.push_back(next_job);
}

View file

@ -4448,7 +4448,7 @@ async fn test_definition(cx: &mut gpui::TestAppContext) {
// Assert no new language server started
cx.executor().run_until_parked();
assert!(fake_servers.try_next().is_err());
assert!(fake_servers.try_recv().is_err());
assert_eq!(definitions.len(), 1);
let definition = definitions.pop().unwrap();

View file

@ -3406,17 +3406,15 @@ mod tests {
assert_eq!(initial_location, ToolbarItemLocation::Secondary);
let mut events = cx.events(&search_bar);
let mut events = cx.events::<ToolbarItemEvent, BufferSearchBar>(&search_bar);
search_bar.update_in(cx, |search_bar, window, cx| {
search_bar.dismiss(&Dismiss, window, cx);
});
assert_eq!(
events.try_next().unwrap(),
Some(ToolbarItemEvent::ChangeLocation(
ToolbarItemLocation::Hidden
))
events.try_recv().unwrap(),
(ToolbarItemEvent::ChangeLocation(ToolbarItemLocation::Hidden))
);
search_bar.update_in(cx, |search_bar, window, cx| {
@ -3424,10 +3422,8 @@ mod tests {
});
assert_eq!(
events.try_next().unwrap(),
Some(ToolbarItemEvent::ChangeLocation(
ToolbarItemLocation::Secondary
))
events.try_recv().unwrap(),
(ToolbarItemEvent::ChangeLocation(ToolbarItemLocation::Secondary))
);
}
@ -3442,17 +3438,15 @@ mod tests {
assert_eq!(initial_location, ToolbarItemLocation::PrimaryLeft);
let mut events = cx.events(&search_bar);
let mut events = cx.events::<ToolbarItemEvent, BufferSearchBar>(&search_bar);
search_bar.update_in(cx, |search_bar, window, cx| {
search_bar.dismiss(&Dismiss, window, cx);
});
assert_eq!(
events.try_next().unwrap(),
Some(ToolbarItemEvent::ChangeLocation(
ToolbarItemLocation::PrimaryLeft
))
events.try_recv().unwrap(),
(ToolbarItemEvent::ChangeLocation(ToolbarItemLocation::PrimaryLeft))
);
search_bar.update_in(cx, |search_bar, window, cx| {
@ -3460,10 +3454,8 @@ mod tests {
});
assert_eq!(
events.try_next().unwrap(),
Some(ToolbarItemEvent::ChangeLocation(
ToolbarItemLocation::PrimaryLeft
))
events.try_recv().unwrap(),
(ToolbarItemEvent::ChangeLocation(ToolbarItemLocation::PrimaryLeft))
);
}
@ -3482,17 +3474,15 @@ mod tests {
assert_eq!(initial_location, ToolbarItemLocation::Hidden);
let mut events = cx.events(&search_bar);
let mut events = cx.events::<ToolbarItemEvent, BufferSearchBar>(&search_bar);
search_bar.update_in(cx, |search_bar, window, cx| {
search_bar.dismiss(&Dismiss, window, cx);
});
assert_eq!(
events.try_next().unwrap(),
Some(ToolbarItemEvent::ChangeLocation(
ToolbarItemLocation::Hidden
))
events.try_recv().unwrap(),
(ToolbarItemEvent::ChangeLocation(ToolbarItemLocation::Hidden))
);
search_bar.update_in(cx, |search_bar, window, cx| {
@ -3500,10 +3490,8 @@ mod tests {
});
assert_eq!(
events.try_next().unwrap(),
Some(ToolbarItemEvent::ChangeLocation(
ToolbarItemLocation::Secondary
))
events.try_recv().unwrap(),
(ToolbarItemEvent::ChangeLocation(ToolbarItemLocation::Secondary))
);
}

View file

@ -9,7 +9,7 @@ use crate::{
};
use anyhow::Result;
use client::{Client, proto};
use futures::{StreamExt, channel::mpsc};
use futures::channel::mpsc;
use gpui::{
Action, AnyElement, AnyEntity, AnyView, App, AppContext, Context, Entity, EntityId,
EventEmitter, FocusHandle, Focusable, Font, Pixels, Point, Render, SharedString, Task,
@ -777,8 +777,8 @@ impl<T: Item> ItemHandle for Entity<T> {
send_follower_updates = Some(cx.spawn_in(window, {
let pending_update = pending_update.clone();
async move |workspace, cx| {
while let Some(mut leader_id) = pending_update_rx.next().await {
while let Ok(Some(id)) = pending_update_rx.try_next() {
while let Ok(mut leader_id) = pending_update_rx.recv().await {
while let Ok(id) = pending_update_rx.try_recv() {
leader_id = id;
}

View file

@ -867,9 +867,8 @@ fn main() {
}
match open_rx
.try_next()
.try_recv()
.ok()
.flatten()
.and_then(|request| OpenRequest::parse(request, cx).log_err())
{
Some(request) => {

View file

@ -2071,7 +2071,7 @@ fn run_agent_thread_view_test(
let mut tool_content: Vec<acp::ToolCallContent> = Vec::new();
let mut tool_locations: Vec<acp::ToolCallLocation> = Vec::new();
while let Ok(Some(event)) = event_receiver.try_next() {
while let Ok(event) = event_receiver.try_recv() {
if let Ok(agent::ThreadEvent::ToolCallUpdate(acp_thread::ToolCallUpdate::UpdateFields(
update,
))) = event