Self-Review Checklist: - [x] I've reviewed my own diff for quality, security, and reliability - [x] Unsafe blocks (if any) have justifying comments - [x] The content is consistent with the [UI/UX checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist) - [x] Tests cover the new/changed behavior - [x] Performance impact has been considered and is acceptable Closes #55022 ## Summary When a task explicitly uses `cmd.exe`, Zed prepares it as a shell invocation like `cmd.exe /S /C "<command>"`. If Python virtual environment activation is enabled, `Project::create_terminal_task` wraps that prepared task in an outer activation shell so the venv can be activated before the task runs. Before this change, the activation formatter treated the prepared `/C` command string as a normal shell argument and quoted it again. On Windows, that can make cmd receive escaped quotes literally, producing errors like `'\\"echo Hi there\\"' is not recognized...`. This preserves the prepared cmd `/C` command string while building the activation command, and keeps the existing quoting path for ordinary task arguments. ## Verification - `cargo test -p project formats_prepared_cmd_task` - `cargo test -p project formats_non_cmd_task_for_activation` - `cargo check -p project` - `cargo fmt --check --package project` - Manually verified on Windows with a selected Python `.venv` that a `cmd.exe` task prints `Hi there` and finishes successfully. Release Notes: - Fixed Windows `cmd.exe` tasks failing when run with a selected Python virtual environment.
1 file changedLine totals unavailable