diff --git a/docs/releases/v0.5.0.md b/docs/releases/v0.5.0.md new file mode 100644 index 0000000..ab2147f --- /dev/null +++ b/docs/releases/v0.5.0.md @@ -0,0 +1,72 @@ +# sshkeeper v0.5.0 — Persistent SSH Sessions + +v0.5.0 adds an optional multi-session workflow backed by `tmux`. It lets +sshkeeper keep several interactive SSH connections alive in one terminal +workspace without turning sshkeeper itself into a terminal emulator. + +`tmux` is intentionally optional. If it is not available, Sessions are not +shown anywhere in the TUI and ordinary Connect/Tunnel workflows behave exactly +as they did in v0.4.1. + +## Persistent sessions + +When `tmux` is available in `PATH`: + +- **Server Actions → Open in session** opens the selected server in a persistent + tmux window; +- **Manage → Sessions** lists SSH windows created by sshkeeper; +- `Enter` attaches to the selected session; +- `Ctrl+D` closes it after confirmation; +- `Ctrl+R` refreshes the list. + +If sshkeeper runs outside tmux, it uses a dedicated tmux workspace named +`sshkeeper`. If it is already running inside tmux, new SSH windows are created +inside the current tmux session rather than starting a nested client. +## Vault and authentication + +Sessions continue to use the existing sshkeeper/OpenSSH connection planner, +including routes, bastions, identity files and startup commands. + +Key and SSH-agent sessions do not need a vault unlock. Password and +key-passphrase sessions ask for the vault master password inside their own tmux +window. Secrets are not copied through command-line arguments, environment +variables or temporary shell scripts. + +## Platform behavior + +Linux and macOS support Sessions when `tmux` is installed. On macOS it can be +installed with Homebrew using `brew install tmux`. + +Native Windows builds keep Sessions hidden because upstream tmux is not a native +Windows backend for this workflow. Windows users can use Sessions by running the +Linux build inside WSL with tmux installed there. + +Linux native packages do **not** require tmux. Package metadata keeps OpenSSH as +the hard dependency and marks tmux only as `Recommends`, so the application +remains fully usable without the Sessions feature. +## Validation + +The release is covered by normal unit tests plus a real tmux lifecycle test that +creates a temporary workspace/window, verifies sshkeeper can discover its +metadata, closes it, and confirms it disappears. + +The release gate also runs `go vet`, Linux package migration tests and release +cross-builds for Linux amd64/arm64, macOS amd64/arm64 and Windows amd64. GitHub +CI additionally runs the test suite natively on both Ubuntu and macOS. + +## Install + +Debian/Ubuntu (amd64): + +```bash +sudo apt install ./sshkeeper_0.5.0-1_amd64.deb +``` + +Fedora/RHEL-family (x86_64): + +```bash +sudo dnf install ./sshkeeper-0.5.0-1.x86_64.rpm +``` + +ARM64 packages and tar/zip archives are published alongside them. Verify +downloads against `checksums.txt`.