Traversio

1.0

Release notes for the Traversio 1.0 release line.

Current Patch

Use the newest 1.0.x patch unless your application has a reason to stay pinned to an older patch:

.package(
    url: "https://github.com/GitSwiftHQ/Traversio.git",
    from: "1.0.3"
)

Patch releases in this line are source-compatible unless a note below says otherwise.

1.0.3

Released: 2026-05-29

Traversio 1.0.3 is a source-compatible cancellation diagnostics fix.

Behavior fixes:

  • Swift task cancellation now passes through connection setup and operation failure mapping without being logged as an unwrapped SSH connection or operation failure.
  • Caller-owned session shutdown, including terminal view close, keeps CancellationError as the thrown result without producing error-level Traversio log events.

Validation:

  • Tools/check-release-metadata.sh 1.0.3
  • Tools/check-public-api.sh check
  • swift test --filter sshClientSessionEventSequenceCancellationBestEffortClosesExecChannel
  • swift test --filter sshClientConnectionSetupCancellationDoesNotLogUnwrappedConnectionFailure
  • swift test

1.0.2

Released: 2026-05-28

Traversio 1.0.2 is a source-compatible update for connection lifecycle and timeout behavior. It tightens teardown after background transport failure and gives host-key trust confirmation its own timeout budget.

API changes:

  • Added SSHTimeoutPolicy.hostKeyTrustTimeInterval.
  • The default timeout profile now uses a 30-second connection setup timeout, a 120-second host-key trust timeout, and unbounded reply waits unless configured.
  • Host-key trust confirmation no longer consumes the connection setup timeout.

Lifecycle fixes:

  • Background transport-failure teardown now clears lifecycle handlers and cancels keepalive/rekey scheduling even when Traversio skips the normal SSH disconnect packet.
  • This prevents old connection coordinators and transport clients from being retained after network loss.

Documentation:

  • The README and public docs now describe the current release scope directly, including unsupported capabilities and application-owned responsibilities.

Validation:

  • Tools/check-release-metadata.sh 1.0.2
  • Tools/check-public-api.sh check
  • swift test --filter sshClientHostKeyTrustWaitDoesNotConsumeConnectionSetupTimeout
  • swift test

1.0.1

Released: 2026-05-27

Traversio 1.0.1 is a source-compatible update for applications that need to accept migrated or user-imported private keys. It keeps the strict OpenSSH-specific helpers and adds a broader privateKeyPEM(...) import path.

API changes:

  • Added SSHAuthenticationMethod.privateKeyPEM(_:passphrase:).
  • Added SSHAuthenticationMethod.privateKeyPEM(contentsOfFile:passphrase:).
  • Added readable localized descriptions for SSHAuthenticationMethodError.

The PEM helpers accept:

  • OpenSSH openssh-key-v1 private keys.
  • Unencrypted PKCS#8 PRIVATE KEY PEM containers for Ed25519, RSA, and ECDSA.
  • Unencrypted traditional EC PRIVATE KEY PEM containers.
  • Traditional RSA PRIVATE KEY PEM containers.
  • Passphrase-encrypted traditional RSA PEM when it uses supported OpenSSL legacy AES-CBC or DES-EDE3-CBC headers.

Validation:

  • The OpenSSH matrix includes real login targets for OpenSSL Ed25519, RSA, and ECDSA PKCS#8 keys.
  • The same matrix covers traditional RSA and EC PEM keys, encrypted traditional RSA PEM, and traditional RSA PEM with explicit legacy ssh-rsa userauth.

Not included:

  • Encrypted PKCS#8 ENCRYPTED PRIVATE KEY loading.
  • Encrypted traditional EC PEM loading.

1.0.0

Released: 2026-05-25

Traversio 1.0.0 establishes the first public Swift package API for Apple apps that need native Swift SSH, SFTP, SCP, forwarding, proxy routing, host-key trust, and diagnostics.

Initial public API surface:

  • Encrypted SSH transport with the documented algorithm profile.
  • Explicit host-key trust.
  • Password, keyboard-interactive, public-key, callback-backed, and SSH-agent authentication.
  • OpenSSH private-key loading and OpenSSH-compatible key generation.
  • Command execution, streamed exec, named subsystem startup, and PTY shells.
  • SFTP metadata, file handles, reads, writes, mutations, recursive helpers, resumable helpers, and selected OpenSSH extensions.
  • Single-file SCP receive/send helpers.
  • Raw direct TCP/IP and streamlocal channels.
  • Local forwarding, dynamic SOCKS forwarding, remote TCP forwarding, and remote streamlocal forwarding.
  • SOCKS5 and HTTP CONNECT connection proxies.
  • ProxyJump.
  • Structured errors, log handlers, OSLog helpers, support reports, and route-aware SSH port latency diagnostics.

Release hardening:

  • Public OpenSSH private-key metadata inspection with SSHOpenSSHPrivateKeyInfo.
  • A public API baseline check through Tools/check-public-api.sh.
  • Release metadata checks for TraversioRelease.version, source package tags, and SSH client identification.
  • Public documentation for connection lifecycle, cancellation behavior, forwarding shutdown, and support diagnostics.

Not included:

  • Library-owned automatic reconnect.
  • Local ssh_config parsing.
  • Mandatory built-in trust-store persistence.
  • Mandatory Keychain-backed credential or trust storage.
  • Hostbased authentication.
  • Security-key authentication.
  • X11 forwarding.
  • Auth-agent forwarding.
  • Recursive SCP.
  • Broad legacy algorithm compatibility beyond explicit ssh-rsa.
  • Release-quality benchmark comparisons.

On this page