Release Notes
Bug Fixes
- Fix
pkill openvpnkilling all system OpenVPN processes instead of only Vortix-managed ones (#95) - Fix kill switch state file written to world-readable
/tmp/(#96) - Fix kill switch displaying "Blocking" without root, giving a false sense of security (#97)
- Fix Unicode text input causing panic in text field handlers (#98)
- Add
Dropimpl onAppto clean up kill switch rules and VPN processes on panic (#99) - Fix disconnect failure leaving app in "Disconnected" state while VPN process may still be running (#100)
- Fix spurious "VPN dropped" auto-reconnect triggered by force-kill
- Fix config viewer overlay not loading file contents on open
- Fix minimum terminal size check causing blank screen on small terminals
- Fix search and rename cursor position on multi-byte UTF-8 input
- Fix mouse events passing through overlays to background panels
- Fix help overlay not being scrollable
- Fix ISP and location text truncated too aggressively on narrow terminals (#104)
- Fix connection details panel mostly empty when disconnected (#102)
- Fix import overlay closing immediately on URL import or empty directory
- Fix
g/G/Home/End keys not routing correctly when logs panel is focused - Fix mouse scroll not working on hovered panel (only worked on focused panel)
- Fix profile names overflowing sidebar column when names are long
- Fix password mask using byte count instead of character count for multi-byte input
- Enable config viewer overlay to be scrollable with mouse
- Fix action menus not listing all available panel actions (Sort, Rename, Filter, Kill Switch)
Features
- Add human-readable connection duration format (e.g., "2h 15m" instead of seconds)
- Add throughput chart with upload/download speed labels and color legend (#103)
- Add active connection badge (checkmark) next to connected profile in sidebar
- Clear stale telemetry data on disconnect to avoid showing previous session info
- Add keyboard accessibility for all panels with Tab/Shift+Tab cycling
- Add panel-specific keyboard shortcuts displayed in context footer
- Add log level filtering (Error/Warn/Info) with
fkey - Show protocol tag (WG/OVPN) in cockpit header bar when connected
- Show DNS server provider name (Cloudflare, Google, Quad9) in security panel
- Add confirmation dialog when switching profiles while connected
- Add confirmation dialog when quitting with an active VPN connection
- Add profile sorting (name, protocol, last used) with
skey - Add connection quality thresholds (Poor/Fair/Excellent) based on latency, jitter, and packet loss
- Move toast notifications from bottom-right to top-right for better visibility
Refactor
- Split 2081-line
dashboard.rsinto 13 focused per-panel modules (#114) - Extract shared confirmation dialog component to reduce code duplication
- Adopt
tempfilecrate for panic-safe test cleanup across all 31 test sites (#116) - Sanitize profile names with strict ASCII-only validation for process management
- Consolidate confirmation dialog input handling into shared
handle_confirm_keys - Route inline key handlers (rename, search, help, log filter) through Message dispatch for TEA consistency
Testing
- Enable 6 previously-ignored auth tests to run without root privileges
- Add 19 new tests covering confirm dialog keys, Home/End panel awareness, profile name sanitization, truncation edge cases, and import overlay behavior
- Migrate all test temp file creation to
tempfilecrate for automatic cleanup on panic
CI
- Pin Rust 1.91.0 in CI and fix remaining lint issues
Install vortix 0.1.6
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/Harry-kp/vortix/releases/download/v0.1.6/vortix-installer.sh | shInstall prebuilt binaries via Homebrew
brew install Harry-kp/tap/vortixInstall prebuilt binaries into your npm project
npm install @harry-kp/vortix@0.1.6Download vortix 0.1.6
| File | Platform | Checksum |
|---|---|---|
| vortix-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| vortix-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| vortix-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| vortix-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
| vortix-aarch64-unknown-linux-musl.tar.xz | ARM64 MUSL Linux | checksum |
| vortix-x86_64-unknown-linux-musl.tar.xz | x64 MUSL Linux | checksum |