From a5203744d6c47a352050e7eff53d737a7848b05f Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Tue, 20 Oct 2026 20:22:01 +0000 Subject: [PATCH 1/3] chore: bump vite-task to 8db455e Pin vite-task to the latest main and combine fspy's per-operation path accesses into the existing access-mode set. Co-authored-by: Charles Wang --- Cargo.lock | 106 +++++++++++++++++++----------- Cargo.toml | 22 +++---- crates/vp_command/Cargo.toml | 1 + crates/vp_command/src/lib.rs | 29 ++++++-- packages/cli/binding/src/utils.rs | 3 +- 5 files changed, 103 insertions(+), 58 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 60da7bd85d..862de608da 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1918,6 +1918,17 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" +[[package]] +name = "erased-serde" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2add8a07dd6a8d93ff627029c51de145e12686fbc36ecb298ac22e74cf02dec" +dependencies = [ + "serde", + "serde_core", + "typeid", +] + [[package]] name = "errno" version = "0.3.14" @@ -2134,7 +2145,7 @@ dependencies = [ [[package]] name = "fspy" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc#9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9#8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9" dependencies = [ "allocator-api2", "anyhow", @@ -2171,7 +2182,7 @@ dependencies = [ [[package]] name = "fspy_client_unix" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc#9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9#8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9" dependencies = [ "allocator-api2", "anyhow", @@ -2188,7 +2199,7 @@ dependencies = [ [[package]] name = "fspy_detours_sys" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc#9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9#8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9" dependencies = [ "cc", "winapi", @@ -2197,7 +2208,7 @@ dependencies = [ [[package]] name = "fspy_nostd" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc#9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9#8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9" dependencies = [ "atoi", "bitflags 2.13.2", @@ -2211,7 +2222,7 @@ dependencies = [ [[package]] name = "fspy_nostd_alloc" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc#9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9#8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9" dependencies = [ "allocator-api2", "bump-scope", @@ -2221,7 +2232,7 @@ dependencies = [ [[package]] name = "fspy_preload_unix" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc#9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9#8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9" dependencies = [ "allocator-api2", "ctor", @@ -2233,12 +2244,13 @@ dependencies = [ "libc", "nix 0.31.3", "static_cell", + "syscalls", ] [[package]] name = "fspy_preload_windows" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc#9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9#8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9" dependencies = [ "allocator-api2", "constcat", @@ -2258,7 +2270,7 @@ dependencies = [ [[package]] name = "fspy_seccomp_unotify" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc#9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9#8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9" dependencies = [ "futures-util", "libc", @@ -2275,10 +2287,9 @@ dependencies = [ [[package]] name = "fspy_shared" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc#9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9#8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9" dependencies = [ "allocator-api2", - "bitflags 2.13.2", "bstr", "bumpalo", "bytemuck", @@ -2297,7 +2308,7 @@ dependencies = [ [[package]] name = "fspy_shared_unix" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc#9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9#8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9" dependencies = [ "allocator-api2", "anyhow", @@ -2317,7 +2328,7 @@ dependencies = [ [[package]] name = "fspy_shm" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc#9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9#8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9" dependencies = [ "fspy_nostd", "windows-sys 0.61.2", @@ -6935,6 +6946,18 @@ dependencies = [ "zmij", ] +[[package]] +name = "serde-untagged" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9faf48a4a2d2693be24c6289dbe26552776eb7737074e6722891fadbe6c5058" +dependencies = [ + "erased-serde", + "serde", + "serde_core", + "typeid", +] + [[package]] name = "serde-value" version = "0.7.0" @@ -8115,6 +8138,12 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "63278e72ed4f207eb3216c944cbafb35bdb656d2eab97ef73c0c165a1cd3e319" +[[package]] +name = "typeid" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" + [[package]] name = "typenum" version = "1.20.1" @@ -8393,6 +8422,7 @@ dependencies = [ name = "vp_command" version = "0.0.0" dependencies = [ + "bitflags 2.13.2", "fspy", "nix 0.31.3", "tempfile", @@ -8672,7 +8702,7 @@ checksum = "5c3082ca00d5a5ef149bb8b555a72ae84c9c59f7250f013ac822ac2e49b19c64" [[package]] name = "vt" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc#9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9#8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9" dependencies = [ "anstream", "anyhow", @@ -8692,7 +8722,6 @@ dependencies = [ "rustc-hash", "serde", "serde_json", - "serde_norway", "supports-color 3.0.2", "tar", "thiserror 2.0.21", @@ -8735,7 +8764,7 @@ dependencies = [ [[package]] name = "vt_casefold" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc#9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9#8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9" dependencies = [ "ref-cast", "serde", @@ -8744,7 +8773,7 @@ dependencies = [ [[package]] name = "vt_client" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc#9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9#8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9" dependencies = [ "rustc-hash", "vt_casefold", @@ -8758,7 +8787,7 @@ dependencies = [ [[package]] name = "vt_client_napi" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc#9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9#8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9" dependencies = [ "napi", "napi-build", @@ -8770,7 +8799,7 @@ dependencies = [ [[package]] name = "vt_glob" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc#9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9#8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9" dependencies = [ "globset", "thiserror 2.0.21", @@ -8780,13 +8809,14 @@ dependencies = [ [[package]] name = "vt_graph" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc#9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9#8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9" dependencies = [ "anyhow", "async-trait", "petgraph", "rustc-hash", "serde", + "serde-untagged", "serde_json", "thiserror 2.0.21", "tracing", @@ -8801,7 +8831,7 @@ dependencies = [ [[package]] name = "vt_graph_ser" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc#9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9#8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9" dependencies = [ "petgraph", "serde", @@ -8810,7 +8840,7 @@ dependencies = [ [[package]] name = "vt_ipc_shared" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc#9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9#8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9" dependencies = [ "rustc-hash", "vt_ipc_str", @@ -8820,7 +8850,7 @@ dependencies = [ [[package]] name = "vt_ipc_str" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc#9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9#8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9" dependencies = [ "allocator-api2", "bumpalo", @@ -8833,7 +8863,7 @@ dependencies = [ [[package]] name = "vt_materialized_artifact" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc#9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9#8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9" dependencies = [ "tempfile", "vt_materialized_artifact_macros", @@ -8842,7 +8872,7 @@ dependencies = [ [[package]] name = "vt_materialized_artifact_macros" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc#9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9#8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9" dependencies = [ "proc-macro2", "quote", @@ -8853,7 +8883,7 @@ dependencies = [ [[package]] name = "vt_path" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc#9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9#8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9" dependencies = [ "diff-struct", "os_str_bytes", @@ -8868,7 +8898,7 @@ dependencies = [ [[package]] name = "vt_plan" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc#9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9#8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9" dependencies = [ "anyhow", "async-trait", @@ -8897,7 +8927,7 @@ dependencies = [ [[package]] name = "vt_powershell" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc#9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9#8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9" dependencies = [ "vt_path", "which", @@ -8906,7 +8936,7 @@ dependencies = [ [[package]] name = "vt_pty_terminal" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc#9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9#8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9" dependencies = [ "anyhow", "portable-pty", @@ -8916,7 +8946,7 @@ dependencies = [ [[package]] name = "vt_pty_terminal_test" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc#9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9#8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9" dependencies = [ "anyhow", "portable-pty", @@ -8927,7 +8957,7 @@ dependencies = [ [[package]] name = "vt_pty_terminal_test_client" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc#9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9#8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9" dependencies = [ "base64 0.22.1", "getrandom 0.4.3", @@ -8937,7 +8967,7 @@ dependencies = [ [[package]] name = "vt_remote_cache" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc#9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9#8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9" dependencies = [ "base64 0.22.1", "bytes", @@ -8957,7 +8987,7 @@ dependencies = [ [[package]] name = "vt_select" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc#9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9#8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9" dependencies = [ "anyhow", "crossterm", @@ -8968,7 +8998,7 @@ dependencies = [ [[package]] name = "vt_server" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc#9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9#8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9" dependencies = [ "futures", "rustc-hash", @@ -8988,7 +9018,7 @@ dependencies = [ [[package]] name = "vt_shell" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc#9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9#8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9" dependencies = [ "brush-parser", "serde", @@ -9000,7 +9030,7 @@ dependencies = [ [[package]] name = "vt_snapshot_test" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc#9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9#8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9" dependencies = [ "serde", "serde_json", @@ -9010,7 +9040,7 @@ dependencies = [ [[package]] name = "vt_socket_ipc" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc#9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9#8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9" dependencies = [ "nix 0.31.3", "tempfile", @@ -9023,7 +9053,7 @@ dependencies = [ [[package]] name = "vt_str" version = "0.1.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc#9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9#8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9" dependencies = [ "compact_str 0.9.1", "diff-struct", @@ -9034,7 +9064,7 @@ dependencies = [ [[package]] name = "vt_workspace" version = "0.0.0" -source = "git+https://github.com/voidzero-dev/vite-task.git?rev=9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc#9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc" +source = "git+https://github.com/voidzero-dev/vite-task.git?rev=8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9#8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9" dependencies = [ "clap", "petgraph", diff --git a/Cargo.toml b/Cargo.toml index bff72dcfb4..90c2c34fe6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -194,7 +194,7 @@ dunce = "1.0.5" fast-glob = "1.0.0" flate2 = { version = "=1.1.9", features = ["zlib-rs"] } form_urlencoded = "1.2.1" -fspy = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc" } +fspy = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9" } futures = "0.3.31" futures-util = "0.3.31" glob = "0.3.2" @@ -308,16 +308,16 @@ vp_setup = { path = "crates/vp_setup" } vp_shared = { path = "crates/vp_shared" } vp_static_config = { path = "crates/vp_static_config" } vp_toolchain = { path = "crates/vp_toolchain" } -vt = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc" } -vt_casefold = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc" } -vt_path = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc" } -vt_powershell = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc" } -vt_pty_terminal_test = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc" } -vt_pty_terminal_test_client = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc" } -vt_select = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc" } -vt_snapshot_test = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc" } -vt_str = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc" } -vt_workspace = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "9ba4cc93379cf2d7a6c7e657285bb8a00e8339dc" } +vt = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9" } +vt_casefold = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9" } +vt_path = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9" } +vt_powershell = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9" } +vt_pty_terminal_test = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9" } +vt_pty_terminal_test_client = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9" } +vt_select = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9" } +vt_snapshot_test = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9" } +vt_str = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9" } +vt_workspace = { git = "https://github.com/voidzero-dev/vite-task.git", rev = "8db455ef9c2b1c7b33cf70d8ba370c1f2c49d4c9" } walkdir = "2.5.0" webpki-root-certs = "1.0.9" which = "8.0.6" diff --git a/crates/vp_command/Cargo.toml b/crates/vp_command/Cargo.toml index 3c462d477c..4b9f9a91f0 100644 --- a/crates/vp_command/Cargo.toml +++ b/crates/vp_command/Cargo.toml @@ -8,6 +8,7 @@ publish = false rust-version.workspace = true [dependencies] +bitflags = { workspace = true } fspy = { workspace = true } tokio = { workspace = true } tokio-util = { workspace = true } diff --git a/crates/vp_command/src/lib.rs b/crates/vp_command/src/lib.rs index 7f6ebd6099..72b8e45c67 100644 --- a/crates/vp_command/src/lib.rs +++ b/crates/vp_command/src/lib.rs @@ -13,7 +13,7 @@ use std::{ process::{ExitStatus, Stdio}, }; -use fspy::AccessMode; +use bitflags::bitflags; use tokio::process::Command; use tokio_util::sync::CancellationToken; use vp_error::Error; @@ -23,6 +23,19 @@ mod ps1_shim; pub use ps1_shim::rewrite_cmd_to_powershell; +bitflags! { + /// File-system operations observed for one path. + /// + /// fspy reports each operation as its own access. This set combines the + /// operations that touched the same workspace-relative path. + #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] + pub struct AccessMode: u8 { + const READ = 1; + const WRITE = 1 << 1; + const READ_DIR = 1 << 2; + } +} + /// Result of running a command with fspy tracking. #[derive(Debug)] pub struct FspyCommandResult { @@ -268,8 +281,13 @@ where let mut path_accesses = HashMap::::new(); for access in tracked_accesses.iter() { tracing::debug!("Path access: {:?}", access); - let relative_path = access - .path + let (ipc_path, mode) = match access { + fspy::PathAccess::Read(path) => (path, AccessMode::READ), + fspy::PathAccess::Write(path) => (path, AccessMode::WRITE), + fspy::PathAccess::ReadWrite(path) => (path, AccessMode::READ | AccessMode::WRITE), + fspy::PathAccess::ReadDir(path) => (path, AccessMode::READ_DIR), + }; + let relative_path = ipc_path .strip_path_prefix(cwd, |strip_result| { let Ok(stripped_path) = strip_result else { return None; @@ -286,10 +304,7 @@ where let Some(relative_path) = relative_path else { continue; }; - path_accesses - .entry(relative_path) - .and_modify(|mode| *mode |= access.mode) - .or_insert(access.mode); + path_accesses.entry(relative_path).and_modify(|existing| *existing |= mode).or_insert(mode); } Ok(FspyCommandResult { status: termination.status, path_accesses }) diff --git a/packages/cli/binding/src/utils.rs b/packages/cli/binding/src/utils.rs index 27f354b159..6848653ef7 100644 --- a/packages/cli/binding/src/utils.rs +++ b/packages/cli/binding/src/utils.rs @@ -1,9 +1,8 @@ use std::{collections::HashMap, path::PathBuf}; -use fspy::AccessMode; use napi::{anyhow, bindgen_prelude::*}; use napi_derive::napi; -use vp_command::run_command_with_fspy; +use vp_command::{AccessMode, run_command_with_fspy}; use vt_path::AbsolutePathBuf; /// Build documentation links with the same compiled origin as the native CLI. From 292e57562b055267ce372d7df5f3dfa1a57b48f4 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Tue, 20 Oct 2026 20:53:22 +0000 Subject: [PATCH 2/3] chore: drop the binding's unused fspy dependency Path access modes now come from vp_command, so the native binding no longer depends on fspy directly. Co-authored-by: Charles Wang --- Cargo.lock | 1 - packages/cli/binding/Cargo.toml | 1 - 2 files changed, 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 862de608da..2f0faa8d68 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8353,7 +8353,6 @@ dependencies = [ "clap", "console", "cow-utils", - "fspy", "napi", "napi-build", "napi-derive", diff --git a/packages/cli/binding/Cargo.toml b/packages/cli/binding/Cargo.toml index 8c3614b148..4e60a2e181 100644 --- a/packages/cli/binding/Cargo.toml +++ b/packages/cli/binding/Cargo.toml @@ -17,7 +17,6 @@ async-trait = { workspace = true } base64-simd = { workspace = true } clap = { workspace = true, features = ["derive"] } cow-utils = { workspace = true } -fspy = { workspace = true } rustc-hash = { workspace = true } napi = { workspace = true } napi-derive = { workspace = true } From 696eafbbc8fc10fcdc1fa97b80e634e0850c1ea6 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Tue, 20 Oct 2026 21:23:59 +0000 Subject: [PATCH 3/3] test(migrate): retry Windows temp cleanup in oxlint extends tests The Windows CLI E2E job failed while deleting a temp project after Vite loaded its config. Node retries that EPERM when maxRetries is set. Co-authored-by: Charles Wang --- packages/cli/src/migration/__tests__/oxlint-extends.spec.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/cli/src/migration/__tests__/oxlint-extends.spec.ts b/packages/cli/src/migration/__tests__/oxlint-extends.spec.ts index 4f083d1ef1..bdaaedab20 100644 --- a/packages/cli/src/migration/__tests__/oxlint-extends.spec.ts +++ b/packages/cli/src/migration/__tests__/oxlint-extends.spec.ts @@ -83,7 +83,8 @@ describe('Oxlint JSON extends migration', () => { }); afterEach(() => { - fs.rmSync(project, { recursive: true, force: true }); + // Windows can keep the temp directory locked briefly after Vite loads the config. + fs.rmSync(project, { recursive: true, force: true, maxRetries: 5, retryDelay: 100 }); }); it('resolves nested JSONC paths relative to each declaring file and retains inheritance order', async () => {