Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: coder/mux
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: main
Choose a base ref
...
head repository: coder/mux
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: restore-native-terminals
Choose a head ref
Checking mergeability… Don’t worry, you can still create the pull request.
  • 8 commits
  • 3 files changed
  • 1 contributor

Commits on Nov 19, 2025

  1. 🤖 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`
    sreya committed Nov 19, 2025
    Configuration menu
    Copy the full SHA
    1418ccb View commit details
    Browse the repository at this point in the history
  2. 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`
    sreya committed Nov 19, 2025
    Configuration menu
    Copy the full SHA
    86afbaf View commit details
    Browse the repository at this point in the history
  3. 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`
    sreya committed Nov 19, 2025
    Configuration menu
    Copy the full SHA
    0de5853 View commit details
    Browse the repository at this point in the history
  4. 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`
    sreya committed Nov 19, 2025
    Configuration menu
    Copy the full SHA
    49873ed View commit details
    Browse the repository at this point in the history
  5. 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`
    sreya committed Nov 19, 2025
    Configuration menu
    Copy the full SHA
    de01520 View commit details
    Browse the repository at this point in the history
  6. 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`
    sreya committed Nov 19, 2025
    Configuration menu
    Copy the full SHA
    795c007 View commit details
    Browse the repository at this point in the history
  7. 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`
    sreya committed Nov 19, 2025
    Configuration menu
    Copy the full SHA
    b87e4b0 View commit details
    Browse the repository at this point in the history
  8. 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`
    sreya committed Nov 19, 2025
    Configuration menu
    Copy the full SHA
    e519af1 View commit details
    Browse the repository at this point in the history
Loading