Repository navigation
Conversation
- Create platform/windows_compat.py with Windows alternatives for pwd/grp/termios/fcntl - Make VTE optional in main.py, window.py, and xterm_pty_bridge.py - Add platform guards to daemon/pty_runner.py for Unix-specific imports - Update terminal.py to use Windows-compatible user info fallback This commit makes the core codebase portable to Windows by wrapping Unix-specific functionality with cross-platform alternatives. Co-authored-by: Mehdi <[email protected]>
- Create PyInstaller spec for Windows with GTK4/MSYS2 support - Add Windows-specific GTK runtime hook for bundled resources - Create Windows build script (build.bat) for local builds - Add GitHub Actions workflow for automated Windows builds - Package as portable ZIP with checksums The Windows build bundles GTK4 runtime from MSYS2 and creates a self-contained portable application. Co-authored-by: Mehdi <[email protected]>
- Create comprehensive Windows build guide (BUILD_WINDOWS.md) - Document MSYS2 setup, dependencies, and build process - Document known limitations and Windows-specific behaviors - Add troubleshooting section for common Windows issues - Update README.md to mention Windows support - Add Windows to supported platforms table Co-authored-by: Mehdi <[email protected]>
Co-authored-by: Mehdi <[email protected]>
Co-authored-by: Mehdi <[email protected]>
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.
Summary
This PR implements Windows support for SSH Pilot, making it a truly cross-platform SSH connection manager for Linux, macOS, and Windows.
📋 See WINDOWS_PORT_FINAL_REPORT.md for comprehensive implementation details.
Quick Overview
✅ What Works on Windows
Key Changes
1. Platform Compatibility (
src/sshpilot/platform/windows_compat.py)2. Unix-Specific Module Guards
3. Windows Packaging
PyInstaller spec (
packaging/pyinstaller/sshpilot-windows.spec)Runtime hook (
packaging/pyinstaller/hook-gtk_runtime_windows.py)Build script (
packaging/windows/build.bat)4. CI/CD Integration
.github/workflows/build-windows.yml)5. Documentation
docs/WINDOWS_PORT_ANALYSIS.md- Technical analysis of Windows blockersdocs/BUILD_WINDOWS.md- Comprehensive build guidedocs/WINDOWS_IMPLEMENTATION.md- Implementation summarydocs/WINDOWS_PORT_FINAL_REPORT.md- Complete final reportREADME.md- Added Windows to supported platformsBuild Instructions
See docs/BUILD_WINDOWS.md for detailed instructions.
Quick Start (MSYS2 MinGW64 terminal):
System Requirements
Technical Approach
Platform-Specific Solutions
Testing
Automated
Manual Testing Checklist
Backward Compatibility
Files Changed
New Files (9)
src/sshpilot/platform/windows_compat.py- Windows compatibility layerpackaging/pyinstaller/sshpilot-windows.spec- Windows build specpackaging/pyinstaller/hook-gtk_runtime_windows.py- GTK runtime hookpackaging/windows/build.bat- Build script.github/workflows/build-windows.yml- CI workflowdocs/WINDOWS_PORT_ANALYSIS.md- Technical analysisdocs/BUILD_WINDOWS.md- Build guidedocs/WINDOWS_IMPLEMENTATION.md- Implementation summarydocs/WINDOWS_PORT_FINAL_REPORT.md- Final reportModified Files (6)
src/sshpilot/terminal.py- Optional pwd importsrc/sshpilot/daemon/pty_runner.py- Guarded Unix importssrc/sshpilot/xterm_pty_bridge.py- Optional VTEsrc/sshpilot/main.py- Optional VTEsrc/sshpilot/window.py- VTE guards (already present)README.md- Windows support addedChecklist
Next Steps
Status: ✅ Implementation complete, ready for review and testing
Note: This PR marks Windows as "experimental" support. Core functionality works but terminal features are limited. Terminal backend implementation (xterm.js or ConPTY) is planned as follow-up work.