-
Notifications
You must be signed in to change notification settings - Fork 15
Comparing changes
Open a pull request
base repository: coder/mux
base: main
head repository: coder/mux
compare: restore-native-terminals
- 8 commits
- 3 files changed
- 1 contributor
Commits on Nov 19, 2025
-
🤖 feat: restore native terminals for Electron desktop mode
- Add mode parameter to IpcMain constructor ('desktop' | 'browser') - Desktop mode: Always use native OS terminals for both local and SSH - Browser mode: Continue using web terminals via window.open() - Remove TerminalWindowManager (only managed ghostty-web Electron windows) - Simplify terminal routing logic in TERMINAL_WINDOW_OPEN handler - Keep TERMINAL_WINDOW_CLOSE as no-op for API compatibility Result: -157 LoC, better UX for desktop users with native terminal integration Generated with `mux`Configuration menu - View commit details
-
Copy full SHA for 1418ccb - Browse repository at this point
Copy the full SHA 1418ccbView commit details -
fix: open Ghostty in new window for local workspaces
Use -n flag and --working-directory arg to ensure each 'Open Terminal' command spawns a new Ghostty window instead of reusing an existing tab. Generated with `mux`
Configuration menu - View commit details
-
Copy full SHA for 86afbaf - Browse repository at this point
Copy the full SHA 86afbafView commit details -
fix: improve SSH terminal connection reliability
Match PTYService's SSH args building for native terminals: - Use expandTildeForSSH for proper path quoting and $HOME expansion - Add connection multiplexing (ControlMaster) for faster connections - Add connection timeouts and keep-alive settings - Add StrictHostKeyChecking=no when using identity file - Use 'exec $SHELL -i' for interactive shell (not just exec $SHELL) This fixes the issue where SSH terminals would open and immediately exit. Generated with `mux`
Configuration menu - View commit details
-
Copy full SHA for 0de5853 - Browse repository at this point
Copy the full SHA 0de5853View commit details -
fix: use expandTildeForSSH for proper path quoting in SSH terminals
This completes the SSH terminal improvements by using expandTildeForSSH for proper $HOME expansion and path quoting instead of single-quote escaping. Generated with `mux`
Configuration menu - View commit details
-
Copy full SHA for 49873ed - Browse repository at this point
Copy the full SHA 49873edView commit details -
fix: call ghostty directly for SSH terminals instead of using open --…
…command The issue was that using 'open -a Ghostty --args --command=...' would cause the terminal to exit immediately after the SSH command completes. Instead, call 'ghostty ssh ...' directly, which keeps the terminal open for the interactive SSH session. Generated with `mux`
Configuration menu - View commit details
-
Copy full SHA for de01520 - Browse repository at this point
Copy the full SHA de01520View commit details -
fix: use Terminal.app for SSH connections on macOS
Ghostty doesn't reliably handle SSH via 'ghostty ssh ...' command. Use proven Terminal.app + osascript approach for SSH terminals, keep Ghostty for local terminals where it works well. Generated with `mux`
Configuration menu - View commit details
-
Copy full SHA for 795c007 - Browse repository at this point
Copy the full SHA 795c007View commit details -
fix: use simplified SSH command format for Ghostty
Match the working format: ssh -t host 'cd /path && exec $SHELL' - Remove ControlMaster and other complex SSH options (not needed for native terminals) - Use single-quoted remote command - Properly escape $SHELL in the command string - Call via 'open -n -a Ghostty --args --command=...' Generated with `mux`
Configuration menu - View commit details
-
Copy full SHA for b87e4b0 - Browse repository at this point
Copy the full SHA b87e4b0View commit details -
fix: open local terminals in tabs instead of new windows
Revert to main's behavior for local Ghostty terminals: - Remove -n flag (don't force new instance) - Pass directory path directly to 'open -a Ghostty /path' - This opens new tabs in existing Ghostty window instead of new windows SSH terminals still use -n to ensure new window per connection. Generated with `mux`
Configuration menu - View commit details
-
Copy full SHA for e519af1 - Browse repository at this point
Copy the full SHA e519af1View commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff main...restore-native-terminals