Skip to content

fix(tui): flush local Windows SSH replies - #9955

Merged
lawrencecchen merged 4 commits into
feat-tui-native-windowsfrom
fix-windows-ssh-local-flush
Aug 11, 2026
Merged

lawrencecchen merged 4 commits into
feat-tui-native-windowsfrom
fix-windows-ssh-local-flush

Conversation

@lawrencecchen

@lawrencecchen lawrencecchen commented Aug 11, 2026 •

Copy link
Copy Markdown
Contributor

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 60bc346. 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.

Written for commit aadf20e. Summary will update on new commits.

Review in cubic

@coderabbitai

coderabbitai Bot commented Aug 11, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 3cfa92c3-8909-4085-82eb-a370983760da

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@lawrencecchen
lawrencecchen merged commit 826f787 into feat-tui-native-windows Aug 11, 2026
38 of 41 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