fix(cli)!: restore OpenSSH short flag semantics - #313
Merged
Conversation
Reassign the seven colliding short options in single-host mode while preserving bssh extensions as long options and pdsh meanings in pdsh mode. Complete the multiplexing background lifecycle, agent forwarding, compatibility measurements, and migration documentation needed to close the final epic units.
Keep migration notices on interactive stderr so redirected protocol streams remain byte-transparent. Add audited per-test minimum timeouts for the two upstream matrices whose valid runtimes exceed the base limit under local or shared CI load.
Accept repeated diagnostic files and proxy control sessions, preserve the OpenSSH /dev/null config convention, and decouple transfer fixtures from debug binary size.
3 tasks
23 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
-N,-f,-C,-A,-S,-k, and-bin single-destination mode while retaining bssh extensions as long options and pdsh meanings in pdsh modeControlPersist, forwarding control commands, and no-session/background execution-Eoptions and-O proxy, preserve the OpenSSH-F /dev/nullconvention without weakening Include validation, and keep transfer fixtures independent of platform debug-symbol sizeCompatibility result
The pinned OpenSSH
V_10_3_P1harness reports 60/66 passes on macOS and 61/69 on Ubuntu in CI. Both platforms reach the epic's 60-pass gate. Remaining failures are documented in the uploaded result tables and are not concealed by lowering the eligible-result floor.The requested published warning cycle in an earlier 2.x release cannot be created retroactively. This change does emit bounded migration warnings on interactive standard error, documents every long-option rewrite, and does not claim that a prior release contained those warnings. Redirected protocol streams and
-Elogs remain byte-transparent.Validation
cargo fmt --all -- --checkcargo clippy --all-targets --all-features -- -D warningscargo test --lib(1,699 passed, 7 ignored)cargo test --test log_file_test(5 passed)cargo test --test agent_forwarding_live_test -- --nocapture(6 passed)cargo test --test control_multiplexing_live_test -- --nocapture(9 passed)make openssh-regress-selftest(14 passed)python3 tests/openssh-regress/run.py --test agent(1 passed)python3 tests/openssh-regress/run.py --test sftp(1 passed with the stable 1 MiB fixture)python3 tests/openssh-regress/run.py --test forward-control --test sshsig(2 passed with audited 180-second minimums)The full all-target Rust run has three environment-dependent localhost SSH authentication failures. The same three failures reproduce on the base
maincommit; all other targets pass.Closes #286
Closes #287
Part of #275