@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 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.14 "Private Launch")
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
- checks transport readiness, consumes the one-time invite once, negotiates the reciprocal
236
- path, confirms it, and verifies authenticated federation health and peer identity. If a
237
- stage fails, the PWA preserves the link and shows the exact stage, detail and safe retry
238
- guidance. Older v1 links remain accepted and open only the missing routing fields.
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. Configured links return at boot.
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 candidate is **v0.8.14**. npm **`latest`** is promoted from the verified
461
- artifact first; the GitHub tag and release follow the operator field test from the same source
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