Skip to content

fix(pseudohome): bound clone SSH timeout, add run() heartbeat - #91

Merged
adamamyl merged 1 commit into
mainfrom
fix/pseudohome-clone-feedback
Jul 11, 2026
Merged

fix(pseudohome): bound clone SSH timeout, add run() heartbeat#91
adamamyl merged 1 commit into
mainfrom
fix/pseudohome-clone-feedback

Conversation

@adamamyl

Copy link
Copy Markdown
Owner

git_tools.py's clone/fetch SSH command had no BatchMode/ConnectTimeout, unlike the SSH probe in ssh_utils.py. A stalled network path (Tailscale half-up) or unauthorised deploy key hung the clone indefinitely with no output, since Executor.run() captures via pipes rather than streaming. Bound it to 15s so the existing retry/prompt logic actually engages instead of the process just sitting there.

Also stop assuming the wolfcraig key-copy hint's mDNS .local suffix resolves — it doesn't on a box that isn't on the same LAN (e.g. a cloud VM). Prefer the Tailscale IP, which is reachable regardless.

Claude-Session: https://claude.ai/code/session_019nR4GeGS2EDhLypRNm1JhW

git_tools.py's clone/fetch SSH command had no BatchMode/ConnectTimeout,
unlike the SSH probe in ssh_utils.py. A stalled network path (Tailscale
half-up) or unauthorised deploy key hung the clone indefinitely with no
output, since Executor.run() captures via pipes rather than streaming.
Bound it to 15s so the existing retry/prompt logic actually engages
instead of the process just sitting there.

Executor.run() now polls via Popen + periodic communicate(timeout=15)
instead of a single blocking subprocess.run(), logging "still running"
so a slow command is distinguishable from a hung one. Same return/
exception semantics as before (verified: success, check=True failure
with populated stdout/stderr, check=False, dry-run, interactive).

Also stop assuming the wolfcraig key-copy hint's mDNS .local suffix
resolves — it doesn't on a box that isn't on the same LAN (e.g. a
cloud VM). Prefer the Tailscale IP, which is reachable regardless.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019nR4GeGS2EDhLypRNm1JhW
@adamamyl
adamamyl merged commit 57ded07 into main Jul 11, 2026
1 of 3 checks passed
@adamamyl
adamamyl deleted the fix/pseudohome-clone-feedback branch July 11, 2026 19:19
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