v2.4.3
New Features
None
Improvements
- SFTP pipelined reads now preserve partial data and request only the missing bytes when a server returns a legal short non-empty
DATAreply (#273). - The internal bssh-russh-sftp fork now tracks upstream 2.4.0 and records both local performance patches so future syncs cannot silently delete them (#272).
Bug Fixes
- Fixed bssh-to-bssh SFTP downloads above 255 KiB by advertising server limits through
limits@openssh.com, respecting those limits in the client, and rejecting empty data before a known EOF (#273).
CI/CD Improvements
- Skipped Rust CI and MSRV jobs when every changed path is documentation, licensing text, a composite action, or a listed release workflow (#267).
- Fixed the Homebrew formula update job so it runs after successful release builds for pre-release promotion, direct official releases, and opted-in manual dispatches (#268).
- Replaced Apple ID notarization credentials with an organization-managed App Store Connect API key (#269).
- Promoted manually dispatched releases after artifact upload and made unreadable release state a hard failure (#269).
Technical Details
- Verifying host-key modes now reject unexpected OpenSSH host certificates because bssh does not validate certificate-authority signatures; explicit no-check mode remains unchanged (#270).
- Negotiated SFTP read and write limits are clamped to packet payload and protocol-length ceilings before allocation or request construction (#273).
Dependencies
- Upgraded russh from 0.62.1 (previously locked at 0.62.7) to 0.63.1, including fixes for callbacks on never-opened channel IDs (GHSA-47hw-gvq5-r2gm) and a cipher/MAC negotiation panic (GHSA-p8qx-h547-fjw9) (#270).
- Upgraded mockall from 0.14.0 to 0.15.0 and serial_test from 3.5.0 to 4.0.1; runtime dependencies and application code are unchanged (#274).
Breaking Changes
None
Known Issues
None
What's Changed
- chore: skip CI Rust build on non-Rust-only changes by @inureyes in #267
- fix: run the Homebrew formula job automatically on release by @inureyes in #268
- update: upgrade russh to 0.63.1 and refuse host certificates by @inureyes in #270
- update: sync bssh-russh-sftp with upstream russh-sftp 2.4.0 by @inureyes in #272
- feat(release): notarize with an API key, and promote on dispatch by @inureyes in #269
- fix: negotiate SFTP read limits by @inureyes in #273
- update: upgrade test dependencies by @inureyes in #274
Full Changelog: v2.4.2...v2.4.3