John Paul Soliva
1a451bfaeb
fix(mcp): pick the Windows launcher, not the sh script, from an npx cache
...
Review follow-up, and a real platform bug. On Windows npm's `.bin` holds three
siblings per binary — the extensionless sh script, `<name>.cmd` and
`<name>.ps1`. Spawning the sh one from a Windows process fails, and
`os.access(X_OK)` there is effectively an existence check, so the previous
candidate test could not tell them apart: it would have picked a file that
cannot run and broken server startup that works today via npx.
Select by extension instead (`.cmd`, then `.exe`), the same precedence
hermes_constants._candidate_node_command_names already uses for npm/npx/node,
and fall back to npx when no launcher is present.
The platform branch moved into `_npx_bin_candidates(..., windows=...)` so it is
testable by injection. Patching `os.name` instead took pytest's own traceback
formatting down with an INTERNALERROR — a test that cannot report its own
failure is worse than no test.
Also from review: an `npx pkg -y` shape (flag AFTER the spec) now falls back to
npx, since those args are forwarded verbatim and would hand the server a flag
npx would have consumed. And the structural OSV-ordering guard reports a rename
explicitly instead of raising a bare ValueError that reads like a broken test.
2026-09-03 04:40:44 +05:30
..
2026-09-01 10:56:49 -07:00
2026-09-03 02:27:52 +05:30
2026-09-01 12:07:52 -07:00
2026-08-23 20:07:21 -07:00
2026-08-25 13:27:20 +05:30
2026-08-24 16:18:45 +05:30
2026-08-30 07:04:16 -07:00
2026-08-23 18:25:19 -07:00
2026-08-30 22:19:10 -07:00
2026-08-23 21:12:32 -07:00
2026-09-02 06:18:55 -07:00
2026-08-24 03:21:37 -07:00
2026-09-02 03:42:01 -07:00
2026-08-24 03:21:37 -07:00
2026-08-24 03:21:37 -07:00
2026-08-28 04:57:52 -07:00
2026-09-02 07:00:13 -07:00
2026-08-24 20:11:18 -07:00
2026-08-26 19:25:33 -07:00
2026-08-24 21:45:56 -07:00
2026-08-31 21:17:37 +05:30
2026-09-03 03:18:08 +05:30
2026-09-01 09:27:00 -07:00
2026-08-25 01:34:56 +05:30
2026-08-27 16:11:16 +05:30
2026-09-01 09:27:00 -07:00
2026-08-29 18:35:12 -07:00
2026-08-29 20:40:04 -07:00
2026-08-24 20:11:18 -07:00
2026-08-24 21:51:44 -07:00
2026-08-27 16:11:16 +05:30
2026-08-31 21:59:11 +05:30
2026-08-23 18:27:15 -07:00
2026-08-26 18:02:17 +05:30
2026-08-26 16:42:44 -07:00
2026-08-28 23:10:01 -07:00
2026-08-27 22:22:39 -07:00
2026-08-28 03:05:03 -07:00
2026-08-28 01:39:33 -07:00
2026-08-28 03:04:51 -07:00
2026-08-26 19:25:33 -07:00
2026-08-29 18:35:17 -07:00
2026-08-27 23:26:40 +08:00
2026-08-26 04:50:13 -07:00
2026-08-25 02:31:34 -07:00
2026-08-26 19:25:33 -07:00
2026-09-03 01:33:18 +05:30
2026-08-30 07:04:16 -07:00
2026-09-02 00:52:58 -07:00
2026-09-02 00:52:58 -07:00
2026-08-30 19:47:30 -07:00
2026-08-28 06:36:22 -07:00
2026-09-01 22:28:52 -07:00
2026-08-25 16:39:12 -07:00
2026-09-02 10:12:54 -07:00
2026-08-27 07:38:53 -07:00
2026-08-30 05:16:10 -07:00
2026-08-31 07:28:18 -07:00
2026-08-31 01:02:42 -07:00
2026-08-29 19:13:23 -07:00
2026-09-01 12:07:52 -07:00
2026-08-30 22:19:10 -07:00
2026-08-29 18:23:07 -07:00
2026-08-31 21:11:11 -05:00
2026-09-02 06:16:54 -07:00
2026-08-31 11:29:17 -07:00
2026-08-31 07:35:47 -07:00
2026-09-03 02:27:52 +05:30
2026-09-03 02:27:52 +05:30
2026-09-03 02:27:52 +05:30
2026-09-03 03:07:37 +05:30
2026-09-03 04:34:45 +05:30
2026-08-28 12:59:41 -07:00
2026-08-24 03:20:14 -07:00
2026-08-31 07:35:47 -07:00
2026-08-28 03:58:52 -07:00
2026-08-28 03:58:52 -07:00
2026-08-28 03:58:52 -07:00
2026-08-28 04:58:21 -07:00
2026-08-31 10:42:39 -07:00
2026-09-02 00:03:55 -07:00
2026-08-31 20:43:00 -05:00
2026-08-31 07:35:47 -07:00
2026-08-25 01:34:56 +05:30
2026-08-28 07:50:33 -07:00
2026-08-26 06:26:02 -07:00
2026-08-25 02:45:10 -07:00
2026-09-01 23:56:41 -07:00
2026-09-03 02:24:06 +05:30
2026-09-02 07:00:13 -07:00
2026-09-03 04:40:44 +05:30
2026-08-28 20:16:26 -07:00
2026-08-28 20:16:26 -07:00
2026-08-26 08:40:07 -07:00
2026-08-26 08:40:07 -07:00
2026-08-26 08:40:07 -07:00
2026-09-01 23:28:39 -07:00
2026-09-01 22:11:01 -07:00
2026-09-01 23:28:39 -07:00
2026-09-03 03:18:19 +05:30
2026-08-24 17:12:15 +05:30
2026-08-26 08:40:07 -07:00
2026-08-26 02:54:35 +05:30
2026-08-29 18:23:07 -07:00
2026-08-26 19:23:39 -07:00
2026-08-28 23:10:01 -07:00
2026-09-03 02:05:42 +05:30
2026-08-28 12:59:41 -07:00
2026-09-01 02:32:53 -07:00
2026-09-03 02:20:46 +05:30
2026-08-28 09:23:00 -07:00
2026-08-28 08:46:11 -07:00
2026-08-28 23:10:01 -07:00
2026-09-02 07:22:59 -07:00
2026-09-01 10:56:49 -07:00
2026-08-26 04:51:41 -07:00
2026-09-03 03:18:44 +05:30
2026-08-27 07:33:36 -07:00
2026-08-26 16:06:09 +05:30
2026-08-31 10:06:34 -07:00
2026-08-24 20:03:24 -07:00
2026-09-03 04:23:35 +05:30
2026-08-29 17:58:51 -07:00
2026-08-25 04:00:27 -07:00
2026-08-23 21:12:32 -07:00
2026-08-29 20:39:09 -07:00
2026-09-01 07:32:45 -07:00
2026-08-27 07:09:26 -07:00
2026-08-31 10:08:13 -07:00
2026-08-29 19:38:31 +05:30
2026-08-28 12:15:18 -07:00
2026-08-30 20:04:40 +05:30
2026-08-29 19:14:15 -07:00
2026-08-28 03:24:43 -07:00
2026-08-28 03:46:21 -07:00
2026-08-29 20:39:09 -07:00
2026-08-30 20:04:40 +05:30
2026-08-27 14:28:22 +05:30
2026-08-31 00:56:41 -07:00
2026-08-23 19:00:47 -07:00
2026-08-29 18:34:35 -07:00
2026-08-31 10:42:39 -07:00
2026-09-03 03:32:32 +05:30
2026-09-02 05:34:28 -07:00
2026-08-31 09:59:39 -07:00
2026-09-02 06:48:31 -07:00
2026-08-29 20:39:31 -07:00
2026-09-01 21:49:14 -07:00
2026-08-29 07:25:12 -07:00
2026-08-28 08:58:12 -07:00
2026-08-29 18:40:51 -07:00
2026-08-25 16:39:12 -07:00
2026-09-01 23:30:33 -07:00
2026-09-01 21:50:19 -07:00
2026-08-23 18:25:35 -07:00
2026-09-02 05:35:14 -07:00
2026-09-02 06:48:31 -07:00
2026-08-28 05:10:33 -07:00
2026-08-28 05:10:33 -07:00
2026-08-28 05:10:33 -07:00
2026-08-28 04:58:21 -07:00
2026-08-28 04:58:21 -07:00
2026-08-26 19:23:39 -07:00
2026-09-01 10:56:49 -07:00
2026-08-31 00:56:41 -07:00
2026-08-31 00:56:41 -07:00
2026-08-31 00:56:41 -07:00
2026-08-31 00:56:41 -07:00
2026-08-31 00:56:41 -07:00
2026-08-31 00:56:41 -07:00
2026-08-31 00:56:41 -07:00
2026-09-01 10:56:49 -07:00
2026-09-01 10:56:49 -07:00
2026-08-31 10:41:54 -07:00