Skip to content

v2.4.3

Choose a tag to compare

@inureyes inureyes released this 24 Aug 08:22
· 22 commits to main since this release

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 DATA reply (#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