Fix ssh remote Agents & dev:win script#313
Merged
pedramamini merged 5 commits intoRunMaestro:mainfrom Feb 6, 2026
Merged
Conversation
…bled When a session uses SSH remote execution, the agent path field was showing the local Windows path (e.g., C:\Program Files\...), which confused users and didn't represent what would actually be used on the remote host. Now when SSH is enabled in the agent editor: - The path field label changes from 'Path' to 'Remote Command' - The displayed value shows agent.binaryName (e.g., 'opencode') instead of agent.path - The help text clarifies this is a remote command name - Users understand they don't need to set a local path for SSH execution The backend SSH command construction already correctly uses: remoteCommand = config.sessionCustomPath || agent.binaryName || config.command This fix ensures the UI matches the backend behavior by showing users what will actually be executed on the remote host.
CRITICAL: When using SSH remote execution, stdin script passthrough must work directly without shell interference. Previously, the Windows shell forcing logic (added to ensure PATH access for local execution) was still enabled when SSH was detected. This caused the SSH stdin script to be lost because the shell intercepts stdin/stdout/stderr. The fix: When SSH remote is configured and the stdin script is built, explicitly disable shell execution (useShell=false, shellToUse=undefined). This ensures: - Direct stdin/stdout/stderr access for SSH - SSH stdin script passthrough works correctly - Agent receives the full command on the remote host This resolves the issue where SSH commands were executed as just: ssh.exe ... /bin/bash Without the stdin script containing the actual agent invocation.
The start-dev.ps1 script was missing the 'npm run build:preload' step, which caused the preload.js file to never be built when running 'npm run dev:win'. This resulted in window.maestro being undefined and the app failing to load. Added the build:preload step between TypeScript compilation and electron startup.
…eady Added a 5 second delay after starting the renderer dev server before building and launching the main process. This ensures the Vite dev server is fully ready on http://localhost:5173 before Electron tries to connect to it, preventing timing-related connection issues.
…l modification When SSH is enabled and no custom path is set, the field displays the remote binary name (e.g., 'opencode') as a read-only default. This prevents users from accidentally modifying the displayed value and having it saved as a custom path. The field becomes: - Read-only when displaying the default remote binary name - Slightly dimmed (opacity: 0.7) to indicate it's not editable - Editable again if the user enters a custom override - Shows a Reset button only when a custom path is actually set This ensures the behavior matches the intent: leave empty to use the default remote binary name.
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.
This pull request introduces improvements to SSH remote execution support and enhances the user interface for configuring agent paths, especially when SSH is enabled. The most significant changes ensure correct process handling for SSH sessions and update the UI to clearly distinguish between local and remote agent execution.
SSH Remote Execution Support:
src/main/ipc/handlers/process.ts)UI/UX Improvements for Agent Configuration:
isSshEnabledprop to adapt its behavior and appearance for SSH sessions. (src/renderer/components/shared/AgentConfigPanel.tsx,src/renderer/components/NewInstanceModal.tsx) [1] [2] [3]src/renderer/components/shared/AgentConfigPanel.tsx) [1] [2] [3]Developer Experience:
scripts/start-dev.ps1)Minor UI Consistency:
src/renderer/components/NewInstanceModal.tsx)