liuhao1024
36592bb75c
fix(mcp): drive user-hit candidates from the child env's PATHEXT
...
Review follow-up on the bare stdio PATH fix (#125318 ):
- `_first_user_which_hit` reused `_npx_bin_candidates`, whose Windows
candidate list is the npx cache layout's `.cmd`/`.exe` pair. A user
install that only ships a `.bat`/`.py` wrapper (stock PATHEXT carries
both) was never found, so the scan returned None and silently fell
back to the managed hit — the #125300 symptom persisted for those
installs. Candidates now come from `_pathext_suffixes`: the child
env's PATHEXT first (shutil.which reads the PARENT's, same source
rationale as `_which_with_config_pathext`), then the parent's, then
the OS default; a command that already carries a PATHEXT suffix is
matched as written.
- The new `_bare_` test fixtures wrote extensionless executables, which
`shutil.which` can never resolve on win32 (PATHEXT suffixes only), so
the tests could only pass on POSIX and the Windows lane skipped the
marker-less file entirely. Fixtures are now platform-shaped via
`_bare_exe` (`python3.exe` on Windows, bare name + 0o755 elsewhere),
and a direct `_first_user_which_hit` unit test covers the
PATHEXT-driven candidate walk cross-platform.
2026-10-04 12:42:25 -05:00
..
2026-09-29 02:06:58 +05:30
2026-10-02 20:30:25 -05:00
2026-10-04 11:56:08 +05:30
2026-10-04 00:08:20 -07:00
2026-10-04 00:08:20 -07:00
2026-09-29 12:25:29 -05:00
2026-09-28 10:21:41 -07:00
2026-10-01 13:23:12 -07:00
2026-09-30 21:33:08 -04:00
2026-10-01 13:23:12 -07:00
2026-10-01 13:23:12 -07:00
2026-10-01 13:23:12 -07:00
2026-10-01 13:23:12 -07:00
2026-10-02 01:24:41 +05:30
2026-09-28 10:21:41 -07:00
2026-10-01 16:18:46 +05:30
2026-09-30 10:00:37 -05:00
2026-09-30 10:00:37 -05:00
2026-09-28 06:06:17 -07:00
2026-10-01 16:18:46 +05:30
2026-09-28 10:21:41 -07:00
2026-09-28 10:21:41 -07:00
2026-09-23 20:04:27 -04:00
2026-09-28 10:21:41 -07:00
2026-09-28 12:43:03 -07:00
2026-09-24 11:50:30 -04:00
2026-10-02 11:06:58 -05:00
2026-09-23 07:36:31 -04:00
2026-10-02 22:54:53 -05:00
2026-10-01 03:18:09 -05:00
2026-10-02 22:54:53 -05:00
2026-10-02 11:24:58 -05:00
2026-09-24 01:55:51 -04:00
2026-09-24 03:42:38 -04:00
2026-09-29 14:12:41 -04:00
2026-10-01 13:23:12 -07:00
2026-10-04 13:18:57 -04:00
2026-09-28 10:21:41 -07:00
2026-09-28 06:42:00 -07:00
2026-09-28 10:11:33 -07:00
2026-09-28 12:43:03 -07:00
2026-09-28 10:21:41 -07:00
2026-09-28 10:11:33 -07:00
2026-10-02 01:18:03 +05:30
2026-10-03 16:31:09 +05:30
2026-10-04 01:52:54 +05:30
2026-09-27 18:17:20 +05:30
2026-10-02 20:24:30 -05:00
2026-10-02 21:49:36 -05:00
2026-10-02 21:49:36 -05:00
2026-10-02 21:49:36 -05:00
2026-09-28 10:21:41 -07:00
2026-10-01 01:53:55 -05:00
2026-09-28 10:21:41 -07:00
2026-09-29 12:25:29 -05:00
2026-09-29 02:06:58 +05:30
2026-09-28 10:21:41 -07:00
2026-09-28 10:21:41 -07:00
2026-09-28 10:21:41 -07:00
2026-09-25 14:58:09 -04:00
2026-10-02 01:15:39 +05:30
2026-10-02 21:47:39 -05:00
2026-10-02 01:15:39 +05:30
2026-09-27 01:10:56 +05:30
2026-09-26 22:26:05 +05:30
2026-09-28 12:43:03 -07:00
2026-09-28 10:21:41 -07:00
2026-10-02 01:15:39 +05:30
2026-10-01 16:22:28 +05:30
2026-10-01 16:22:28 +05:30
2026-09-26 18:27:10 -05:00
2026-10-02 18:41:16 -05:00
2026-10-02 20:24:01 -05:00
2026-09-29 15:08:07 +05:30
2026-10-04 00:10:54 +05:30
2026-10-03 10:26:12 -07:00
2026-09-25 14:27:51 +05:30
2026-09-23 11:41:01 -04:00
2026-09-28 10:21:41 -07:00
2026-09-28 10:21:41 -07:00
2026-09-23 15:43:51 -07:00
2026-09-28 02:03:42 +05:30
2026-10-04 12:42:25 -05:00
2026-10-04 12:42:25 -05:00
2026-09-27 21:30:10 -07:00
2026-09-22 17:54:42 +05:30
2026-10-03 09:38:33 -07:00
2026-09-27 21:30:10 -07:00
2026-09-26 22:40:54 +05:30
2026-09-28 05:24:26 -07:00
2026-10-02 20:29:17 -05:00
2026-09-28 10:21:41 -07:00
2026-09-24 15:38:22 +05:30
2026-10-02 20:24:20 -05:00
2026-09-28 10:21:41 -07:00
2026-09-28 10:21:41 -07:00
2026-09-28 10:21:41 -07:00
2026-09-25 14:58:09 -04:00
2026-09-28 10:21:41 -07:00
2026-10-03 09:43:03 -07:00
2026-10-03 09:43:03 -07:00
2026-09-28 10:21:41 -07:00
2026-09-26 17:19:34 -05:00
2026-09-26 22:19:53 -05:00
2026-10-04 11:02:21 +05:30
2026-09-24 03:52:03 -05:00
2026-09-28 10:21:41 -07:00
2026-09-28 10:21:41 -07:00
2026-09-29 12:25:29 -05:00
2026-09-29 12:25:29 -05:00
2026-09-28 10:21:41 -07:00
2026-09-23 15:26:34 -04:00
2026-09-23 18:52:49 -05:00
2026-10-04 00:08:20 -07:00
2026-10-04 00:08:20 -07:00
2026-09-23 18:29:35 -05:00
2026-09-28 10:21:41 -07:00
2026-09-28 10:21:41 -07:00
2026-10-03 23:05:48 -07:00
2026-10-03 23:05:48 -07:00
2026-10-03 23:05:48 -07:00
2026-10-03 23:05:48 -07:00
2026-09-28 10:21:41 -07:00
2026-10-01 22:05:55 -07:00
2026-09-22 07:05:11 -04:00
2026-09-28 12:43:03 -07:00
2026-09-22 07:05:11 -04:00
2026-09-28 10:21:41 -07:00
2026-09-28 10:21:41 -07:00
2026-10-03 23:05:48 -07:00
2026-09-28 10:21:41 -07:00
2026-09-30 15:16:40 -05:00
2026-10-02 01:24:41 +05:30
2026-09-28 10:21:41 -07:00
2026-09-28 12:33:01 -07:00
2026-09-26 18:27:10 -05:00
2026-09-26 18:27:10 -05:00
2026-09-26 18:27:10 -05:00
2026-09-23 17:09:54 -07:00
2026-10-02 22:42:55 -05:00
2026-09-26 23:44:55 +05:30
2026-10-03 16:30:40 +02:00
2026-09-29 17:29:05 +00:00
2026-09-29 22:07:30 +05:30
2026-10-04 00:10:54 +05:30
2026-09-28 10:21:41 -07:00
2026-09-22 17:54:42 +05:30
2026-10-04 11:56:08 +05:30
2026-10-01 23:50:31 -07:00
2026-09-27 03:45:07 -04:00
2026-09-27 03:45:07 -04:00
2026-09-30 15:16:40 -05:00
2026-10-02 18:35:34 -05:00
2026-09-26 06:19:34 +05:30
2026-09-30 23:02:33 -05:00
2026-09-28 12:23:25 -07:00
2026-09-26 06:19:34 +05:30
2026-09-28 10:21:41 -07:00
2026-09-28 10:21:41 -07:00
2026-10-01 01:50:16 -05:00
2026-10-01 01:50:16 -05:00
2026-09-29 18:19:39 -05:00
2026-10-02 18:35:45 -05:00
2026-09-29 19:14:28 -05:00
2026-09-28 10:21:41 -07:00
2026-10-01 23:55:54 +05:30
2026-10-01 23:55:54 +05:30
2026-09-28 10:21:41 -07:00
2026-09-30 23:05:43 -05:00
2026-09-23 11:41:01 -04:00
2026-09-28 10:21:41 -07:00