From 5aee0f4dfbeff4b180d15fe0feb3208fa552831a Mon Sep 17 00:00:00 2001 From: Matt Toohey Date: Wed, 15 Jul 2026 15:27:14 +1000 Subject: [PATCH] fix(desktop): enable the windows-sys features the ACP node launcher needs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Windows Rust CI job fails to compile buzz-acp-node-launcher: CreateJobObjectW and JOBOBJECT_EXTENDED_LIMIT_INFORMATION are unresolved (E0432). In windows-sys 0.61 the JobObjects module gates items on the features of the types in their signatures: CreateJobObjectW behind Win32_Security (its SECURITY_ATTRIBUTES parameter) and the JOBOBJECT_* limit structs behind Win32_System_Threading. The launcher's Job Object code was copied from buzz-dev-mcp's KillGroup, but its Cargo.toml only enabled Win32_Foundation + Win32_System_JobObjects — and since the dependency sits under [target.'cfg(windows)'], none of the macOS-host verification for the Windows bundling commit ever compiled it. Add Win32_Security and Win32_System_Threading, matching buzz-dev-mcp's feature set minus its registry lookup, with a comment recording why JobObjects alone is not enough. Verification (macOS host, rust-std for x86_64-pc-windows-msvc added via rustup): - cargo check -p buzz-acp-node-launcher --target x86_64-pc-windows-msvc --all-targets: clean (reproduced the E0432 before the fix) - cargo clippy -p buzz-acp-node-launcher --target x86_64-pc-windows-msvc --all-targets -D warnings: clean - host cargo test -p buzz-acp-node-launcher: 9 passed; host clippy -D warnings and cargo fmt --check: clean Co-Authored-By: Claude Fable 5 Signed-off-by: Matt Toohey --- crates/buzz-acp-node-launcher/Cargo.toml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/crates/buzz-acp-node-launcher/Cargo.toml b/crates/buzz-acp-node-launcher/Cargo.toml index f6c00e08a..831a1dcb5 100644 --- a/crates/buzz-acp-node-launcher/Cargo.toml +++ b/crates/buzz-acp-node-launcher/Cargo.toml @@ -15,7 +15,11 @@ serde = { workspace = true } serde_json = { workspace = true } [target.'cfg(windows)'.dependencies] -windows-sys = { version = "0.61", features = ["Win32_Foundation", "Win32_System_JobObjects"] } +# Win32_System_JobObjects alone is not enough: CreateJobObjectW is gated on +# Win32_Security (its SECURITY_ATTRIBUTES parameter) and the JOBOBJECT_* +# limit structs on Win32_System_Threading. Same set as buzz-dev-mcp's +# KillGroup, minus its registry lookup. +windows-sys = { version = "0.61", features = ["Win32_Foundation", "Win32_Security", "Win32_System_JobObjects", "Win32_System_Threading"] } [dev-dependencies] tempfile = "3"