@mmmbuto/nexuscrew 0.8.14 → 0.8.16
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/README.md +27 -11
- package/frontend/dist/assets/index-B9RXe5E4.js +91 -0
- package/frontend/dist/assets/{index-CopPQTMk.css → index-C-JOkuIc.css} +1 -1
- package/frontend/dist/index.html +2 -2
- package/frontend/dist/version.json +1 -1
- package/lib/cli/commands.js +6 -0
- package/lib/nodes/peering.js +24 -7
- package/lib/nodes/tunnel-supervisor.js +74 -5
- package/lib/nodes/tunnel.js +58 -6
- package/lib/server.js +8 -0
- package/package.json +1 -1
- package/frontend/dist/assets/index-BR2Qfqi2.js +0 -91
package/README.md
CHANGED
|
@@ -16,7 +16,7 @@ panes, windows. tmux does the work; the browser is just a faithful client.
|
|
|
16
16
|
|
|
17
17
|
---
|
|
18
18
|
|
|
19
|
-
## What it is (v0.8.
|
|
19
|
+
## What it is (v0.8.16 "Honest Tunnel")
|
|
20
20
|
|
|
21
21
|
- Runs a small server on the host where your tmux sessions live.
|
|
22
22
|
- Each attach spawns a real PTY running `tmux attach` and bridges its bytes over a WebSocket
|
|
@@ -38,6 +38,8 @@ panes, windows. tmux does the work; the browser is just a faithful client.
|
|
|
38
38
|
reloading terminals or losing a pending layout save. Use `↗` only when you want to detach a
|
|
39
39
|
deck into another browser window or monitor. Every Local or remote owner group ends with its
|
|
40
40
|
own compact `+ new`, so the creation destination is explicit and never falls back elsewhere.
|
|
41
|
+
A dedicated handle reorders owner-qualified deck tabs with mouse, touch, pen, or keyboard;
|
|
42
|
+
the order autosaves locally and survives polling, reloads, rename, and deletion.
|
|
41
43
|
- **Federated Hydra inventory**: connect existing NexusCrew installations through the SSH
|
|
42
44
|
configuration you already control and see local, direct, and relayed tmux fleets in one UI.
|
|
43
45
|
Route labels show where every session lives; creation, attach, files, lifecycle and Fleet
|
|
@@ -46,7 +48,14 @@ panes, windows. tmux does the work; the browser is just a faithful client.
|
|
|
46
48
|
link tests SSH, exchanges the one-time invitation, confirms both directions and verifies
|
|
47
49
|
the peer automatically; failures identify the exact connection stage. A device already
|
|
48
50
|
connected to a hub creates invitations through that hub; a standalone hub asks only for
|
|
49
|
-
the SSH address by which the receiving device can reach it.
|
|
51
|
+
the SSH address by which the receiving device can reach it. Readiness uses a real bounded
|
|
52
|
+
deadline and a live TCP-forward probe instead of treating a merely running `ssh` process as
|
|
53
|
+
connected. When a portable address cannot select this device's key, the failure opens the
|
|
54
|
+
local fields so it can be replaced with the same SSH alias that works in the terminal.
|
|
55
|
+
Per-tunnel logs contain safe supervisor lifecycle markers and actionable SSH errors, never
|
|
56
|
+
synthetic argv dumps, key contents, tokens, or credentials. OpenSSH may name the failed
|
|
57
|
+
target in this owner-only 0600 diagnostic. Startup and lifecycle commands also recover
|
|
58
|
+
verified orphan supervisors left by removed nodes or interrupted older runtimes.
|
|
50
59
|
- **Settings and wizard**: manage roles, nodes, token rotation, and service regeneration
|
|
51
60
|
from the UI; the first-run wizard uses the same pairing flow as Settings.
|
|
52
61
|
- **Cell lifecycle from the UI**: the primary `+` creates a managed Fleet cell at Local or
|
|
@@ -230,12 +239,16 @@ flow stays entirely in the PWA:
|
|
|
230
239
|
2. On the other device, open its own NexusCrew PWA (`nexuscrew show`), go to
|
|
231
240
|
**Settings → Nodes**, and use the first card, **Connect with one link**. Paste the complete
|
|
232
241
|
link in the prominent field or scan the QR. Do not navigate to the loopback address in the
|
|
233
|
-
link: it is only a portable container for the pairing payload.
|
|
242
|
+
link: it is only a portable container for the pairing payload. The embedded host is a
|
|
243
|
+
portable suggestion, not an SSH identity. If `ssh my-relay` works on this device but the raw
|
|
244
|
+
address does not select the same key, open **Advanced / edit** and enter `my-relay`; aliases,
|
|
245
|
+
agents and private keys always stay on this device.
|
|
234
246
|
3. A complete v2 link connects automatically. NexusCrew starts a provisional SSH forward,
|
|
235
|
-
|
|
236
|
-
path, confirms it, and verifies authenticated
|
|
237
|
-
|
|
238
|
-
|
|
247
|
+
proves the local TCP forward rather than only the supervisor PID, consumes the one-time
|
|
248
|
+
invite once, negotiates the reciprocal path, confirms it, and verifies authenticated
|
|
249
|
+
federation health and peer identity. If SSH authentication or routing fails, the PWA
|
|
250
|
+
preserves the link, opens the editable local SSH fields and shows the exact stage, detail
|
|
251
|
+
and safe retry guidance. Older v1 links remain accepted and open only the missing fields.
|
|
239
252
|
|
|
240
253
|
The link never contains an SSH key, identity file, API key or PWA token. Its only credential is
|
|
241
254
|
the random, one-time pairing invite; SSH routing fields are non-secret configuration. A
|
|
@@ -257,7 +270,11 @@ NexusCrew does not create SSH keys or edit `authorized_keys`. OpenSSH remains au
|
|
|
257
270
|
identity files, agents, host keys, ports, ProxyJump and forwarding policy. NexusCrew uses
|
|
258
271
|
one built-in retry supervisor around `ssh`; it never nests `autossh`. `nexuscrew doctor` reports
|
|
259
272
|
whether both binaries are installed and states that OpenSSH is the transport actually used.
|
|
260
|
-
Missing `ssh` is a blocking error; `autossh` is optional.
|
|
273
|
+
Missing `ssh` is a blocking error; `autossh` is optional. A 15-second OpenSSH connect timeout
|
|
274
|
+
bounds unreachable endpoints, while readiness is advertised only after the configured local
|
|
275
|
+
forward accepts TCP. On startup, stop and restart, NexusCrew reconciles strict, verified tunnel
|
|
276
|
+
pidfiles against the node store so a removed node cannot leave a hidden retry supervisor.
|
|
277
|
+
Configured links return at boot.
|
|
261
278
|
Pair credentials are random, per-peer and scoped only to the federated session/file surface—the
|
|
262
279
|
PWA token never crosses a peer link.
|
|
263
280
|
|
|
@@ -457,9 +474,8 @@ node bin/nexuscrew.js serve
|
|
|
457
474
|
|
|
458
475
|
## Status
|
|
459
476
|
|
|
460
|
-
The current release
|
|
461
|
-
|
|
462
|
-
candidate.
|
|
477
|
+
The current stable release is **v0.8.16**. npm **`latest`**, the GitHub tag and the release use
|
|
478
|
+
the same audited package artifact.
|
|
463
479
|
|
|
464
480
|
## License
|
|
465
481
|
|