fix(tui): flush local Windows SSH replies

Merged
LA
2mo ago
+1-2

Summary

  • flush each SSH reply chunk at the local Windows bridge boundary
  • reuse the same carrier copy helper as the remote relay boundary

Root cause

The SSH carrier is long-lived. The local bridge copied ssh.exe stdout into the local socket and flushed only after EOF, so socket clients timed out before replies became visible.

Proof

No local Cargo, Rust, Zig, or Xcode command was run.


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.


[!NOTE]
Low Risk
Localized Windows SSH I/O change reusing an existing flush-per-chunk helper; no auth or data-model changes.

Overview
Fixes the local Windows SSH bridge so ssh.exe stdout is forwarded to the AF_UNIX client with per-chunk flush, not only after the stream ends.

In proxy_local_connection_over_ssh, download from OpenSSH stdout now uses copy_windows_carrier_download instead of io::copy plus a single end-of-stream flush—the same path already used for the remote relay and stdio carrier boundaries.

Why: the SSH carrier stays open; buffering until EOF made local socket clients time out before replies appeared.

Reviewed by Cursor Bugbot for commit 60bc346904b3fe98f69cda7578519197d0876d42. Bugbot is set up for automated code reviews on this repo. Configure here.


Summary by cubic

Flush SSH stdout to the local Windows socket incrementally using the shared copy_windows_carrier_download, aligning the local bridge with the remote relay behavior. Replies stream as they arrive instead of waiting for EOF, preventing client timeouts.

  • Bug Fixes
    • Replaced io::copy + manual flush with copy_windows_carrier_download to write and flush each chunk.