Skip to content

Fix SSH remote git diff viewer and log operations#380

Merged
pedramamini merged 6 commits intoRunMaestro:mainfrom
chr1syy:fix-ssh-git-diff
Feb 16, 2026
Merged

Fix SSH remote git diff viewer and log operations#380
pedramamini merged 6 commits intoRunMaestro:mainfrom
chr1syy:fix-ssh-git-diff

Conversation

@chr1syy
Copy link
Copy Markdown
Contributor

@chr1syy chr1syy commented Feb 15, 2026

Summary

  • Fix SSH remote ID resolution across App.tsx, MainPanel.tsx, and AppModals.tsx to check sessionSshRemoteConfig.enabled before using remoteId, preventing local sessions from incorrectly resolving to SSH remote paths
  • Add SSH remote support to git IPC handlers (git:log, git:commitCount, git:show) and preload API, enabling git log viewer and diff operations to work over SSH connections
  • Add SSH remote support to GitLogViewer component, passing sshRemoteId through to all git operations (log, show, commit count)
  • Update global.d.ts type definitions to reflect SSH-aware IPC API signatures with optional sshRemoteId parameters
  • Add comprehensive tests for SSH remote git operations, including remote execution paths, mock setup for execGitRemote/execGit, and MainPanel/QuickActionsModal SSH scenarios

Test plan

  • Verify git diff viewer works from the badge on a local (non-SSH) session
  • Verify git diff viewer works from the badge on an SSH remote session
  • Verify git log viewer loads commits and shows diffs on SSH remote sessions
  • Verify npm run test passes for affected test files
  • Verify npm run lint passes

🤖 Generated with Claude Code

chr1syy and others added 6 commits February 15, 2026 16:56
- Add optional sshRemoteId prop to GitLogViewer component
- Pass sshRemoteId to git.log, git.commitCount, and git.show API calls
- Update AppModals to pass active session SSH remote ID to GitLogViewer
- Fix tests to expect the new sshRemoteId parameter in API calls
… SSH-aware git IPC

Check sessionSshRemoteConfig.enabled before using remoteId to prevent
local sessions from incorrectly resolving to SSH remote paths. Update
global.d.ts type definitions to reflect SSH-aware IPC API signatures
(log, commitCount, show, branches, tags). Update test mocks to use
execGitRemote/execGit and fix settingsStore mock setup.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add missing import for clearCapabilitiesCache/setCapabilitiesCache in
  MainPanel test
- Make beforeEach async in git test to support dynamic import of
  remote-git module
- Add id and enabled fields to SSH remote assertion objects to match
  actual config shape passed through
- Add execFileNoThrow mock for merge commit test (local, non-SSH path)
- Fix JSDOM text assertion: CSS uppercase class doesn't transform text
  in test environment

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@pedramamini pedramamini merged commit 0999ad1 into RunMaestro:main Feb 16, 2026
1 check failed
pedramamini added a commit that referenced this pull request Feb 16, 2026
…/deleted tests

- Add sessionSshRemoteConfig.enabled guard to handleViewGitDiff in App.tsx
  (was the only site missing it after PR #380)
- Remove duplicate git:log SSH remote test
- Restore deleted "large commit counts" test for git:commitCount
- Restore deleted "merge commits with multiple parents" test for git:show
@pedramamini
Copy link
Copy Markdown
Collaborator

Merged — nice work on the SSH git plumbing. Pushed a follow-up fix in 5a6ba098 addressing a few issues from review:

Bug fix:

  • handleViewGitDiff in App.tsx was the only call site missing the sessionSshRemoteConfig.enabled guard — it was reading remoteId unconditionally, which would route local sessions through SSH if they had a stale remoteId in their config.

Test cleanup:

  • Removed the duplicate git:log SSH remote test (identical to the one above it, just with fewer mock entries).
  • Restored the deleted "should handle large commit counts" test for git:commitCount — validates parseInt behavior at scale (50k).
  • Restored the deleted "should handle merge commits with multiple parents" test for git:show — validates Merge: line parsing with stat output. These were replaced by the new SSH tests rather than kept alongside them.

pedramamini added a commit that referenced this pull request Feb 16, 2026
…ions

- SymphonyModal RepositoryTile: use justify-between for header alignment
- SymphonyModal Enter key handler: add block scoping to fix lint warning
- Fix git preload test to account for sshRemoteId parameter from PR #380
- Fix useSymphony test indentation that broke describe block nesting

Claude ID: 471ba427-2670-45b3-96aa-a1d628c6e7f4
Maestro ID: b9bc0d08-5be2-4fdf-93cd-5618a8d53b35
@chr1syy chr1syy deleted the fix-ssh-git-diff branch February 16, 2026 21:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants