fix(tools): improve Windows local execution#12795
Conversation
|
This does not claim full native Windows support; it fixes existing Windows-specific local execution paths and adds regression coverage |
|
Thanks for this — appreciate the work. We're closing the entire cluster of open native-Windows PRs (44 of them spanning installer, terminal routing, file ops, gateway PID handling, encoding, docs, and more) because the surface area needs a designed, consolidated approach rather than piecemeal merges. Cherry-picking individual fixes keeps leaving inconsistencies and we'd rather land Windows support properly, in one coherent pass.\n\nYour PR is catalogued in our internal Windows support plan. When we pick this back up (soon), we'll mine every PR in the cluster for its fix shape and credit all contributors whose work informs the final patch via lines. Watch for the consolidating PR and feel free to chime in with context on the specific failure mode you were hitting.\n\nClosing for now, not as a rejection of the fix — just queueing it for the designed rollout. Thanks again. |
Summary
Fixes native Windows local terminal execution issues discovered while running Hermes from a Windows checkout with Git Bash installed.
What changed
bash.exelaunchers when resolving the local shell on Windows.select.select()for subprocess pipes.taskkill /T /Ffor Windows process-tree termination in local execution and process registry paths.python3maps topythonwhenpython3is unavailable.Why
The existing local backend could execute commands on Windows but lose stdout because Windows pipes are not compatible with the POSIX
select.select()drain loop. In this environment,LocalEnvironment.execute('echo hermes-local-test')returnedreturncode: 0with empty output before the fix. The Windows PATH also resolvedbashto the WSL launcher before Git Bash, which is not the shell the native Windows local backend expects.Validation
Tested on Windows with Git Bash installed:
Result:
86 passed.Also ran:
git diff --checkonly reported expected CRLF conversion warnings from Git for this Windows checkout.