@harry-kp/vortix 0.1.4 → 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +93 -1
- package/README.md +29 -6
- package/npm-shrinkwrap.json +2 -2
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,92 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.1.6] - 2026-03-08
|
|
11
|
+
|
|
12
|
+
### Bug Fixes
|
|
13
|
+
|
|
14
|
+
- Fix `pkill openvpn` killing all system OpenVPN processes instead of only Vortix-managed ones ([#95](https://github.com/Harry-kp/vortix/issues/95))
|
|
15
|
+
- Fix kill switch state file written to world-readable `/tmp/` ([#96](https://github.com/Harry-kp/vortix/issues/96))
|
|
16
|
+
- Fix kill switch displaying "Blocking" without root, giving a false sense of security ([#97](https://github.com/Harry-kp/vortix/issues/97))
|
|
17
|
+
- Fix Unicode text input causing panic in text field handlers ([#98](https://github.com/Harry-kp/vortix/issues/98))
|
|
18
|
+
- Add `Drop` impl on `App` to clean up kill switch rules and VPN processes on panic ([#99](https://github.com/Harry-kp/vortix/issues/99))
|
|
19
|
+
- Fix disconnect failure leaving app in "Disconnected" state while VPN process may still be running ([#100](https://github.com/Harry-kp/vortix/issues/100))
|
|
20
|
+
- Fix spurious "VPN dropped" auto-reconnect triggered by force-kill
|
|
21
|
+
- Fix config viewer overlay not loading file contents on open
|
|
22
|
+
- Fix minimum terminal size check causing blank screen on small terminals
|
|
23
|
+
- Fix search and rename cursor position on multi-byte UTF-8 input
|
|
24
|
+
- Fix mouse events passing through overlays to background panels
|
|
25
|
+
- Fix help overlay not being scrollable
|
|
26
|
+
- Fix ISP and location text truncated too aggressively on narrow terminals ([#104](https://github.com/Harry-kp/vortix/issues/104))
|
|
27
|
+
- Fix connection details panel mostly empty when disconnected ([#102](https://github.com/Harry-kp/vortix/issues/102))
|
|
28
|
+
- Fix import overlay closing immediately on URL import or empty directory
|
|
29
|
+
- Fix `g`/`G`/Home/End keys not routing correctly when logs panel is focused
|
|
30
|
+
- Fix mouse scroll not working on hovered panel (only worked on focused panel)
|
|
31
|
+
- Fix profile names overflowing sidebar column when names are long
|
|
32
|
+
- Fix password mask using byte count instead of character count for multi-byte input
|
|
33
|
+
- Enable config viewer overlay to be scrollable with mouse
|
|
34
|
+
- Fix action menus not listing all available panel actions (Sort, Rename, Filter, Kill Switch)
|
|
35
|
+
|
|
36
|
+
### Features
|
|
37
|
+
|
|
38
|
+
- Add human-readable connection duration format (e.g., "2h 15m" instead of seconds)
|
|
39
|
+
- Add throughput chart with upload/download speed labels and color legend ([#103](https://github.com/Harry-kp/vortix/issues/103))
|
|
40
|
+
- Add active connection badge (checkmark) next to connected profile in sidebar
|
|
41
|
+
- Clear stale telemetry data on disconnect to avoid showing previous session info
|
|
42
|
+
- Add keyboard accessibility for all panels with Tab/Shift+Tab cycling
|
|
43
|
+
- Add panel-specific keyboard shortcuts displayed in context footer
|
|
44
|
+
- Add log level filtering (Error/Warn/Info) with `f` key
|
|
45
|
+
- Show protocol tag (WG/OVPN) in cockpit header bar when connected
|
|
46
|
+
- Show DNS server provider name (Cloudflare, Google, Quad9) in security panel
|
|
47
|
+
- Add confirmation dialog when switching profiles while connected
|
|
48
|
+
- Add confirmation dialog when quitting with an active VPN connection
|
|
49
|
+
- Add profile sorting (name, protocol, last used) with `s` key
|
|
50
|
+
- Add connection quality thresholds (Poor/Fair/Excellent) based on latency, jitter, and packet loss
|
|
51
|
+
- Move toast notifications from bottom-right to top-right for better visibility
|
|
52
|
+
|
|
53
|
+
### Refactor
|
|
54
|
+
|
|
55
|
+
- Split 2081-line `dashboard.rs` into 13 focused per-panel modules ([#114](https://github.com/Harry-kp/vortix/issues/114))
|
|
56
|
+
- Extract shared confirmation dialog component to reduce code duplication
|
|
57
|
+
- Adopt `tempfile` crate for panic-safe test cleanup across all 31 test sites ([#116](https://github.com/Harry-kp/vortix/issues/116))
|
|
58
|
+
- Sanitize profile names with strict ASCII-only validation for process management
|
|
59
|
+
- Consolidate confirmation dialog input handling into shared `handle_confirm_keys`
|
|
60
|
+
- Route inline key handlers (rename, search, help, log filter) through Message dispatch for TEA consistency
|
|
61
|
+
|
|
62
|
+
### Testing
|
|
63
|
+
|
|
64
|
+
- Enable 6 previously-ignored auth tests to run without root privileges
|
|
65
|
+
- Add 19 new tests covering confirm dialog keys, Home/End panel awareness, profile name sanitization, truncation edge cases, and import overlay behavior
|
|
66
|
+
- Migrate all test temp file creation to `tempfile` crate for automatic cleanup on panic
|
|
67
|
+
|
|
68
|
+
### CI
|
|
69
|
+
|
|
70
|
+
- Pin Rust 1.91.0 in CI and fix remaining lint issues
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
## [0.1.5] - 2026-02-16
|
|
75
|
+
|
|
76
|
+
### Bug Fixes
|
|
77
|
+
|
|
78
|
+
- Address PR review feedback for bug report feature
|
|
79
|
+
|
|
80
|
+
### Documentation
|
|
81
|
+
|
|
82
|
+
- Add roadmap and feature voting links to README
|
|
83
|
+
- Add vortix report and Nix installation to README
|
|
84
|
+
- Rearrange badges, add Nix flake and npm downloads badges
|
|
85
|
+
|
|
86
|
+
### Features
|
|
87
|
+
|
|
88
|
+
- Add `vortix report` bug report command
|
|
89
|
+
|
|
90
|
+
### Miscellaneous
|
|
91
|
+
|
|
92
|
+
- **deps:** Bump the rust-minor group with 2 updates ([#40](https://github.com/Harry-kp/vortix/pull/40))
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
|
|
10
96
|
## [0.1.4] - 2026-02-12
|
|
11
97
|
|
|
12
98
|
### Documentation
|
|
@@ -111,5 +197,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
111
197
|
- Config files stored with 600 permissions
|
|
112
198
|
- Root privilege requirement for network interface management
|
|
113
199
|
|
|
114
|
-
[Unreleased]: https://github.com/Harry-kp/vortix/compare/v0.1.
|
|
200
|
+
[Unreleased]: https://github.com/Harry-kp/vortix/compare/v0.1.6...HEAD
|
|
201
|
+
[0.1.6]: https://github.com/Harry-kp/vortix/compare/v0.1.5...v0.1.6
|
|
202
|
+
[0.1.5]: https://github.com/Harry-kp/vortix/compare/v0.1.4...v0.1.5
|
|
203
|
+
[0.1.4]: https://github.com/Harry-kp/vortix/compare/v0.1.3...v0.1.4
|
|
204
|
+
[0.1.3]: https://github.com/Harry-kp/vortix/compare/v0.1.2...v0.1.3
|
|
205
|
+
[0.1.2]: https://github.com/Harry-kp/vortix/compare/v0.1.1...v0.1.2
|
|
206
|
+
[0.1.1]: https://github.com/Harry-kp/vortix/compare/v0.1.0...v0.1.1
|
|
115
207
|
[0.1.0]: https://github.com/Harry-kp/vortix/releases/tag/v0.1.0
|
package/README.md
CHANGED
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
# Vortix
|
|
2
2
|
|
|
3
|
-
[](https://crates.io/crates/vortix)
|
|
4
|
-
[](https://crates.io/crates/vortix)
|
|
5
3
|
[](https://github.com/Harry-kp/vortix/actions/workflows/ci.yml)
|
|
6
4
|
[](LICENSE)
|
|
5
|
+
[](CONTRIBUTING.md)
|
|
6
|
+
[](https://crates.io/crates/vortix)
|
|
7
|
+
[](https://crates.io/crates/vortix)
|
|
8
|
+
[](https://www.npmjs.com/package/@harry-kp/vortix)
|
|
9
|
+
[](https://www.npmjs.com/package/@harry-kp/vortix)
|
|
10
|
+
[](https://github.com/Harry-kp/homebrew-tap)
|
|
11
|
+
[](https://github.com/Harry-kp/vortix#installation)
|
|
7
12
|
[](https://github.com/Harry-kp/vortix)
|
|
8
13
|
[](https://github.com/Harry-kp/vortix)
|
|
9
14
|
[](https://www.rust-lang.org/)
|
|
10
|
-
[](https://github.com/sponsors/Harry-kp)
|
|
11
|
-
[](https://github.com/Harry-kp/homebrew-tap)
|
|
12
|
-
[](https://www.npmjs.com/package/@harry-kp/vortix)
|
|
13
|
-
[](CONTRIBUTING.md)
|
|
14
15
|
[](https://github.com/Harry-kp/vortix)
|
|
16
|
+
[](https://github.com/sponsors/Harry-kp)
|
|
15
17
|
|
|
16
18
|
Terminal UI for WireGuard and OpenVPN with real-time telemetry and leak guarding.
|
|
17
19
|
|
|
@@ -118,6 +120,12 @@ curl --proto '=https' --tlsv1.2 -LsSf https://github.com/Harry-kp/vortix/release
|
|
|
118
120
|
|
|
119
121
|
Download the `x86_64-unknown-linux-musl` release from the [releases page](https://github.com/Harry-kp/vortix/releases). This is a statically linked binary (no glibc needed), but you still need the runtime dependencies above (curl, openvpn/wireguard-tools, etc.).
|
|
120
122
|
|
|
123
|
+
**Nix (flakes):**
|
|
124
|
+
```bash
|
|
125
|
+
nix run github:Harry-kp/vortix # Run without installing
|
|
126
|
+
nix profile install github:Harry-kp/vortix # Install to profile
|
|
127
|
+
```
|
|
128
|
+
|
|
121
129
|
**From source:**
|
|
122
130
|
```bash
|
|
123
131
|
git clone https://github.com/Harry-kp/vortix.git
|
|
@@ -143,6 +151,7 @@ After this, `sudo vortix` works as expected.
|
|
|
143
151
|
- `pacman -S vortix` (Arch) — **no**, installs to `/usr/bin/`
|
|
144
152
|
- `brew install` (Homebrew) — **no**, installs to Homebrew prefix
|
|
145
153
|
- `npm install -g` (npm) — **no**, installs to npm global bin
|
|
154
|
+
- Nix (`nix profile install`) — **no**, installs to Nix profile bin
|
|
146
155
|
- macOS — **no**, sudo preserves user PATH
|
|
147
156
|
|
|
148
157
|
## Usage
|
|
@@ -152,6 +161,7 @@ sudo vortix # Launch TUI (requires root for VPN operations)
|
|
|
152
161
|
vortix import <file> # Import a .conf or .ovpn profile
|
|
153
162
|
vortix info # Show config directory and version
|
|
154
163
|
vortix update # Self-update to latest release
|
|
164
|
+
vortix report # Generate a bug report with system diagnostics
|
|
155
165
|
```
|
|
156
166
|
|
|
157
167
|
### Keybindings
|
|
@@ -326,6 +336,10 @@ If config files are owned by root, fix ownership:
|
|
|
326
336
|
sudo chown -R $(whoami) ~/.config/vortix/
|
|
327
337
|
```
|
|
328
338
|
|
|
339
|
+
## Roadmap
|
|
340
|
+
|
|
341
|
+
See the [project board](https://github.com/users/Harry-kp/projects/6) for what's being explored. Have an idea? [Join the discussion](https://github.com/Harry-kp/vortix/discussions/34).
|
|
342
|
+
|
|
329
343
|
## Development
|
|
330
344
|
|
|
331
345
|
```bash
|
|
@@ -334,8 +348,17 @@ cargo test # Run unit/integration tests
|
|
|
334
348
|
cargo clippy # Enforce code quality (Fail-fast via pre-commit)
|
|
335
349
|
```
|
|
336
350
|
|
|
351
|
+
**Nix users** can enter a development shell with all Rust tooling pre-configured:
|
|
352
|
+
```bash
|
|
353
|
+
nix develop
|
|
354
|
+
```
|
|
355
|
+
|
|
337
356
|
## Featured In
|
|
338
357
|
|
|
358
|
+
- [awesome-rust](https://github.com/rust-unofficial/awesome-rust) — A curated list of Rust code and resources
|
|
359
|
+
- [awesome-ratatui](https://github.com/ratatui/awesome-ratatui) — A curated list of Ratatui apps and tools
|
|
360
|
+
- [awesome-tuis](https://github.com/rothgar/awesome-tuis) — A list of the best TUI programs
|
|
361
|
+
- [Arch Linux [extra]](https://archlinux.org/packages/extra/x86_64/vortix/) — Official Arch Linux package repository
|
|
339
362
|
- [Terminal Trove](https://terminaltrove.com/vortix/) — The $HOME of all things in the terminal
|
|
340
363
|
|
|
341
364
|
## Star History
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"hasInstallScript": true,
|
|
24
24
|
"license": "MIT",
|
|
25
25
|
"name": "@harry-kp/vortix",
|
|
26
|
-
"version": "0.1.
|
|
26
|
+
"version": "0.1.6"
|
|
27
27
|
},
|
|
28
28
|
"node_modules/@isaacs/balanced-match": {
|
|
29
29
|
"engines": {
|
|
@@ -515,5 +515,5 @@
|
|
|
515
515
|
}
|
|
516
516
|
},
|
|
517
517
|
"requires": true,
|
|
518
|
-
"version": "0.1.
|
|
518
|
+
"version": "0.1.6"
|
|
519
519
|
}
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"artifactDownloadUrl": "https://github.com/Harry-kp/vortix/releases/download/v0.1.
|
|
2
|
+
"artifactDownloadUrl": "https://github.com/Harry-kp/vortix/releases/download/v0.1.6",
|
|
3
3
|
"author": "Harry KP <harrykp@users.noreply.github.com>",
|
|
4
4
|
"bin": {
|
|
5
5
|
"vortix": "run-vortix.js"
|
|
@@ -100,7 +100,7 @@
|
|
|
100
100
|
"zipExt": ".tar.xz"
|
|
101
101
|
}
|
|
102
102
|
},
|
|
103
|
-
"version": "0.1.
|
|
103
|
+
"version": "0.1.6",
|
|
104
104
|
"volta": {
|
|
105
105
|
"node": "18.14.1",
|
|
106
106
|
"npm": "9.5.0"
|