Version History & Audit Log
Record of all additions, security fixes, transport migrations, and architectural revisions adhering to Semantic Versioning and Keep a Changelog.
Added Features & Subsystems
-
+
Native Erlang/OTP SSH Transport:
Implemented direct Erlang
:ssh,:ssh_connection, and:ssh_sftptransport layer. Completely eliminated external process shelling to the systemsshbinary. -
+
Pluggable Auth Callback System:
Added
SSHClient.SSH.Authsupporting key identities (Ed25519, RSA, custom identity files), ssh-agent, passwords, and keyboard-interactive authentication with per-host priority ordering. -
+
Host Key Fingerprint Diff Flow:
Added
SSHClient.SSH.HostKeyVerifierwith visual SHA-256 fingerprint diffing and reject-by-default logic on changed host keys. -
+
Interactive xterm.js Terminal Bridge:
Embedded xterm.js container streaming over Phoenix Channel (
TerminalChannel) to OTPPTYSessionwith PTY resize notifications and bracketed paste mode. -
+
Cross-Platform Desktop Window Shell:
Integrated
elixir-desktop/SSHClient.Windowusing WebView2 on Windows and WebKitGTK on Linux. -
+
Host Management & Importers:
Added
user@host:portquick-add parser, automatic~/.ssh/configdeduplicated importer, and ranked in-memory fuzzy search. -
+
OS Keychain Integration:
Windows Credential Manager port and Linux Secret Service (
libsecret) backend. Decrypted private key passphrases cached strictly in ephemeral memory. -
+
Telemetry & Remote Operations:
Focus-aware polling loop with idle backoff for CPU/RAM/disk metrics, remote service manager (systemd, Docker, PM2) with action confirmations, and journalctl log streamer.
-
+
Automated Packaging Pipeline:
GitHub Actions matrix CI covering unit tests on Windows & Ubuntu, Docker OpenSSH target tests, and automated packaging of Windows x64 .zip and Linux x64 .tar.gz release assets on tag push.
Bug Fixes & Hardening
-
~
Windows Socket Fallback:
Resolved Unix domain socket path errors on Windows by implementing graceful fallback to localhost loopback ports.
-
~
Erlang Charlist Hostname Handling:
Fixed
SSHClient.SSH.KeyCallbackto transparently accept Erlang charlists or Elixir binaries for hostnames. -
~
Encoding Sanitization:
Stripped UTF-8 Byte Order Marks (BOM) across all project files to satisfy POSIX build standards.
-
~
Fuzzy Search Scoring:
Fine-tuned word boundary penalty calculations for 2-character queries to prevent false negative rankings.
Project Governance & Renaming
-
•
Namespace & Project Rename:
Renamed application to
:ssh_clientand top-level modules toSSHClient.*. -
•
Decoupled Omarchy/QML Shell:
Removed Linux-only Quickshell/QML bar widget dependencies in favor of cross-platform Phoenix LiveView +
elixir-desktop.
Precursor project originated as omarchy-server, an agentless SSH monitoring daemon and QML bar widget for Omarchy/Hyprland on Linux desktop environments. Contained initial Unix domain socket JSON API, init-system detection, and standalone PTY daemon.