Repository navigation
fix: make SSH command launch and cleanup portable to Windows - #181
Merged
sethtroisi merged 5 commits intoOct 22, 2026
Merged
Conversation
This was referenced Oct 20, 2026
Merged
sethtroisi
approved these changes
Oct 21, 2026
sethtroisi
approved these changes
Oct 22, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
On native Windows, the generated SSH ProxyCommand uses POSIX single quotes around Python paths and fails to start.
ssh --proxy-mode --rmalso raisesAttributeErroron the missingsignal.SIGHUPbefore connecting. This PR fixes these SSH blockers as an incremental step toward #85.Closes #178. The quoting diagnosis was previously documented by @Le-Anh-Duy in discussion #97; related broader work includes #86 and #167.
Windows support plan and remaining validation: #180
Replaces #179 with the same commits under the descriptive
fix-windows-ssh-compatibilitybranch name.Changes
subprocess.list2cmdline; retain POSIXshlex.joinand exact-argument/security regression coverage.os.devnullfor the local known-hosts sink.Validation
Tested on native Windows 11 build 26200, Python 3.12.14, with Windows OpenSSH:
test_ssh.py,test_ssh_autocreate.py,test_ssh_lifecycle.py,test_ssh_wire_contract.py,test_ssh_workdir.py,test_windows_ssh.py), including both colored and plain help output.examples/finetune_run.py.ssh --helpsmoke passes.Live Colab validation passed on 2026-10-20. After authenticating on native Windows with OAuth2,
uv run python integration/repro_windows_ssh/test.pycreated one CPU runtime, launched Windows OpenSSH with the generated ProxyCommand and an identity path containing spaces, and receivedwindows-ssh-okfrom the remote shell. The recorded test endpoint was released and the final CLI sessions query reported no active assignments. The script cleans up only its own endpoint and preserves unrelated sessions, including assignments used from WSL.The existing Linux/macOS-only support statement is retained. This PR does not claim complete native Windows support or guaranteed cleanup after forced process termination. Native interactive console, file-editing and headless REPL fixes remain separate work.