Skip to content

Latest commit

 

History

History
75 lines (56 loc) · 2.65 KB

File metadata and controls

75 lines (56 loc) · 2.65 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[0.1.9] - 2026-06-25

Security

  • Re-derive and verify each SSH host key's SHA256 fingerprint, and reject whitespace/control chars in the key fields, before writing known_hosts — fail-closed against a tampered/buggy well-known response (matches the Go SDK).

Fixed

  • Stop the post-connect output buffer growing without bound — output is still forwarded to on_output, but the parse buffer no longer accumulates for the tunnel's lifetime.
  • Capture a tunnel's Expires: line even when it lands in a later read chunk than the URL, via a short bounded pre-resolve window (paid/no-expiry tiers still resolve on the small cap).
  • Detect an Error: line split across a read-chunk boundary (was previously missed → generic "connection timed out" instead of the real message).
  • Treat a corrupt host-key cache as missing so the underlying fetch failure surfaces instead of a cryptic JSONDecodeError.
  • format_expiry now normalizes the timestamp to UTC before printing, so the shown HH:MM matches the UTC label even for a non-Z server offset.
  • Align the --version source-run fallback with the real package version.

Changed

  • README Security section rewritten to match the shipped design (the token is written to a 0600 ssh_config User directive, not placed on the ssh argv).

[0.1.8] - 2026-05-13

Added

  • Expose __version__ at package root so callers can introspect the installed SDK version.

[0.1.7]

Added

  • SSH host-key pinning from the xpos.dev .well-known/ssh-host-keys endpoint.
  • ssh_port option for custom SSH ports.

Changed

  • Keep auth token out of the SSH argv (write to a temporary ssh_config instead).
  • Reject control characters and whitespace in ssh_config values.
  • Validate subdomain/domain as DNS labels client-side.
  • Warn when host-key pinning is disabled for a custom server.
  • Default host to 127.0.0.1 to avoid IPv6 issues on Windows.

Fixed

  • Double-fire of the on_close callback via a _closed event guard.
  • Validate port is in the 1–65535 range in the tunnel constructor.
  • Require token for TCP mode.

[0.1.6]

Added

  • Validation parity with the Node SDK.

Changed

  • Reset state on restart.
  • TCP output filter improvements.

[0.1.5]

Fixed

  • Ctrl+C not working on Windows.
  • Stream read blocking on Windows by using read1.

[0.1.3]

Fixed

  • server defaulting to None when not passed from CLI.