Skip to content

fix(ssh): reuse the desktop-installed CLI during remote setup - #47

Merged
ScriptedAlchemy merged 3 commits into
mainfrom
fix/ssh-desktop-installed-cli
Nov 3, 2026
Merged

ScriptedAlchemy merged 3 commits into
mainfrom
fix/ssh-desktop-installed-cli

Conversation

@ScriptedAlchemy

@ScriptedAlchemy ScriptedAlchemy commented Nov 3, 2026 •

Copy link
Copy Markdown
Owner

SSH connections to a Mac with T3's desktop-installed CLI could fail when GitHub was unavailable. The remote runner checked PATH and ~/.local/bin/t3, but missed the desktop command at ~/.t3/bin/t3, so it unnecessarily tried downloading a release archive.

Check the desktop command location as well, retaining the exact-release and SSH-helper checks before reusing it. Extend the existing runner test to cover both installation locations.

Validation:

  • The desktop-location regression failed before the fix; all 20 SSH tunnel tests passed afterward.
  • vp run check:changed --concurrency 2 passed: format, lint, knip, five affected package typechecks, and 21 tests across two files.
  • Live repair verified that an affected desktop connected over SSH while its existing server stayed running.

Hung probes: a candidate whose --version or __ssh-helper --help never returns (a wedged wrapper, or an executable FIFO at ~/.t3/bin/t3) used to stall setup until the 900s SSH timeout. Candidates must now be regular files, and each probe runs under a 15s watchdog that falls through to the archive download. Cross-review proof (sh and dash, 45 resolution cases plus hang/FIFO/orphaned-pipe attacks) passed; vp test run packages/ssh/src/tunnel.test.ts passes 22/22 and vp run check:changed passes.

Model: GPT-6.1-Sol (high). Harness: Codex in T3 Code.

@changeset-bot

changeset-bot Bot commented Nov 3, 2026 •

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 9a04c94

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

ScriptedAlchemy and others added 2 commits November 3, 2026 01:28
A wedged candidate stalled remote setup until the outer SSH timeout:
a hung --version or __ssh-helper probe blocked forever, and an
executable non-regular file (e.g. a FIFO) at a candidate path made the
shell's read-as-script fallback block on open. Probe each candidate
through a watchdog that falls through to the archive download, require
a regular file, and route probe output through a temp file so orphaned
children cannot hold the capture open.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@ScriptedAlchemy
ScriptedAlchemy merged commit e3e8dfb into main Nov 3, 2026
11 checks passed
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.

1 participant