Skip to content

acp: Fix npm version spec breaking on Windows - #55938

Merged
agu-z merged 1 commit into
mainfrom
acp-windows-npm-version-spec
May 6, 2026
Merged

acp: Fix npm version spec breaking on Windows#55938
agu-z merged 1 commit into
mainfrom
acp-windows-npm-version-spec

Conversation

@agu-z

@agu-z agu-z commented May 6, 2026

Copy link
Copy Markdown
Contributor

Self-Review Checklist:

  • I've reviewed my own diff for quality, security, and reliability
  • Unsafe blocks (if any) have justifying comments
  • The content is consistent with the UI/UX checklist
  • Tests cover the new/changed behavior
  • Performance impact has been considered and is acceptable

#55770 changed the npm package version spec to package@<=1.2.3. On Windows this fails with The system cannot find the file specified. because:

  • npm resolves to npm.cmd, a batch file. Windows runs .cmd files via cmd.exe, which parses the invocation and treats unquoted < as input redirection.
  • The single quotes our shell builder emits around args are PowerShell string-literal syntax that PS strips during parsing. PS only re-adds CRT-style transport quotes around native command args containing whitespace, so package@<=0.25.3 reaches npm.cmd bare and cmd.exe fails before the batch body even runs.

This is surprisingly hard to avoid, so this PR switches to npm's hyphen-range syntax (0.0.0 - <version>, equivalent to <=<version>), which has no <.

Closes #55921

Release Notes:

  • Fixed ACP agents failing to launch on Windows with "The system cannot find the file specified"

@cla-bot cla-bot Bot added the cla-signed The user has signed the Contributor License Agreement label May 6, 2026
@zed-community-bot zed-community-bot Bot added the staff Pull requests authored by a current member of Zed staff label May 6, 2026
@agu-z

agu-z commented May 6, 2026

Copy link
Copy Markdown
Contributor Author

/cherry-pick preview

@agu-z

agu-z commented May 6, 2026

Copy link
Copy Markdown
Contributor Author

/cherry-pick stable

@agu-z
agu-z force-pushed the acp-windows-npm-version-spec branch from c5441f5 to 915e051 Compare May 6, 2026 19:27
@agu-z
agu-z enabled auto-merge May 6, 2026 19:29
@agu-z
agu-z force-pushed the acp-windows-npm-version-spec branch 2 times, most recently from f496048 to fdac189 Compare May 6, 2026 19:33
@agu-z
agu-z added this pull request to the merge queue May 6, 2026
Merged via the queue into main with commit a4005b6 May 6, 2026
32 checks passed
@agu-z
agu-z deleted the acp-windows-npm-version-spec branch May 6, 2026 19:59
zed-zippy Bot added a commit that referenced this pull request May 6, 2026
…o stable) (#55947)

Cherry-pick of #55938 to stable

----
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

#55770 changed the npm package version spec to `package@<=1.2.3`. On
Windows this fails with `The system cannot find the file specified.`
because:

- `npm` resolves to `npm.cmd`, a batch file. Windows runs `.cmd` files
via cmd.exe, which parses the invocation and treats unquoted `<` as
input redirection.
- The single quotes our shell builder emits around args are PowerShell
string-literal syntax that PS strips during parsing. PS only re-adds
CRT-style transport quotes around native command args containing
whitespace, so `package@<=0.25.3` reaches `npm.cmd` bare and cmd.exe
fails before the batch body even runs.

Switch to npm's hyphen-range syntax (`0.0.0 - <version>`, equivalent to
`<=<version>`), which has no `<`.

Closes #55921

Release Notes:

- Fixed ACP agents failing to launch on Windows with "The system cannot
find the file specified"

Co-authored-by: Agus Zubiaga <agus@zed.dev>
zed-zippy Bot added a commit that referenced this pull request May 6, 2026
…o preview) (#55946)

Cherry-pick of #55938 to preview

----
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

#55770 changed the npm package version spec to `package@<=1.2.3`. On
Windows this fails with `The system cannot find the file specified.`
because:

- `npm` resolves to `npm.cmd`, a batch file. Windows runs `.cmd` files
via cmd.exe, which parses the invocation and treats unquoted `<` as
input redirection.
- The single quotes our shell builder emits around args are PowerShell
string-literal syntax that PS strips during parsing. PS only re-adds
CRT-style transport quotes around native command args containing
whitespace, so `package@<=0.25.3` reaches `npm.cmd` bare and cmd.exe
fails before the batch body even runs.

Switch to npm's hyphen-range syntax (`0.0.0 - <version>`, equivalent to
`<=<version>`), which has no `<`.

Closes #55921

Release Notes:

- Fixed ACP agents failing to launch on Windows with "The system cannot
find the file specified"

Co-authored-by: Agus Zubiaga <agus@zed.dev>
Use npm's hyphen-range syntax (`0.0.0 - <version>`) instead of `<=<version>`. On Windows, `npm` is `npm.cmd`, and PowerShell only adds CRT-style quotes around native command args containing whitespace. With `<=`, the arg reaches npm.cmd bare; the batch file's `%*` expansion re-emits it, and cmd.exe interprets `<` as input redirection.
ubunatic pushed a commit to ubunatic/zed that referenced this pull request May 16, 2026
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

zed-industries#55770 changed the npm package version spec to `package@<=1.2.3`. On
Windows this fails with `The system cannot find the file specified.`
because:

- `npm` resolves to `npm.cmd`, a batch file. Windows runs `.cmd` files
via cmd.exe, which parses the invocation and treats unquoted `<` as
input redirection.
- The single quotes our shell builder emits around args are PowerShell
string-literal syntax that PS strips during parsing. PS only re-adds
CRT-style transport quotes around native command args containing
whitespace, so `package@<=0.25.3` reaches `npm.cmd` bare and cmd.exe
fails before the batch body even runs.

Switch to npm's hyphen-range syntax (`0.0.0 - <version>`, equivalent to
`<=<version>`), which has no `<`.

Closes zed-industries#55921

Release Notes:

- Fixed ACP agents failing to launch on Windows with "The system cannot
find the file specified"
jonx pushed a commit to jonx/zed-aros that referenced this pull request Jul 17, 2026
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

zed-industries#55770 changed the npm package version spec to `package@<=1.2.3`. On
Windows this fails with `The system cannot find the file specified.`
because:

- `npm` resolves to `npm.cmd`, a batch file. Windows runs `.cmd` files
via cmd.exe, which parses the invocation and treats unquoted `<` as
input redirection.
- The single quotes our shell builder emits around args are PowerShell
string-literal syntax that PS strips during parsing. PS only re-adds
CRT-style transport quotes around native command args containing
whitespace, so `package@<=0.25.3` reaches `npm.cmd` bare and cmd.exe
fails before the batch body even runs.

Switch to npm's hyphen-range syntax (`0.0.0 - <version>`, equivalent to
`<=<version>`), which has no `<`.

Closes zed-industries#55921

Release Notes:

- Fixed ACP agents failing to launch on Windows with "The system cannot
find the file specified"
jolutz pushed a commit to jolutz/zed that referenced this pull request Aug 8, 2026
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

zed-industries#55770 changed the npm package version spec to `package@<=1.2.3`. On
Windows this fails with `The system cannot find the file specified.`
because:

- `npm` resolves to `npm.cmd`, a batch file. Windows runs `.cmd` files
via cmd.exe, which parses the invocation and treats unquoted `<` as
input redirection.
- The single quotes our shell builder emits around args are PowerShell
string-literal syntax that PS strips during parsing. PS only re-adds
CRT-style transport quotes around native command args containing
whitespace, so `package@<=0.25.3` reaches `npm.cmd` bare and cmd.exe
fails before the batch body even runs.

Switch to npm's hyphen-range syntax (`0.0.0 - <version>`, equivalent to
`<=<version>`), which has no `<`.

Closes zed-industries#55921

Release Notes:

- Fixed ACP agents failing to launch on Windows with "The system cannot
find the file specified"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cla-signed The user has signed the Contributor License Agreement staff Pull requests authored by a current member of Zed staff

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Claude Agent "Failed to Launch / Server exited with status exit code: 1" on Windows after upgrading to 1.1.5

2 participants