v0.4.0 — SCP wire fix + agent-first JSON
ssh-cli 0.4.0
Critical: crates.io 0.3.9 advertised SCP but the wire protocol was broken (literal \\n, empty ACK, missing remote status). Upgrade to 0.4.0.
Highlights
- SCP wire protocol fixed (header newline
0x0a, ACK/EOF0x00, remote status, path escape) - Regular files only (no recursive dirs / no SFTP)
- Downloads via
.ssh-cli.partial+ atomic rename; mode/times on partial before rename - Upload streams in 32 KiB chunks (no full-file RAM load)
- Bi-directional mtime/mode preserve (
-tp/-fp) scp --json→scp-transferevent + JSON error envelopetunnel --json→tunnel_listeningafter local bind- Flag parity: timeout, key, password-stdin, key-passphrase(-stdin)
- E2E E10–E14 + suite
gaps_v040 - Product-line docs honesty (DOC-004b/c/d)
Install
cargo install ssh-cli --lockedLinks
No telemetry.