@mmmbuto/nexuscrew 0.9.5 → 0.9.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 +55 -0
- package/frontend/dist/assets/index-MdL-ZvnH.js +93 -0
- package/frontend/dist/assets/index-forYfgKZ.css +32 -0
- package/frontend/dist/index.html +2 -2
- package/frontend/dist/version.json +1 -1
- package/lib/cli/init.js +22 -2
- package/lib/cli/service.js +11 -3
- package/lib/cli/stable-alias.js +117 -0
- package/lib/nodes/pubkey-format.js +69 -0
- package/lib/nodes/tunnel-supervisor.js +14 -17
- package/lib/nodes/tunnel.js +66 -12
- package/lib/settings/pairing-coordinator.js +10 -4
- package/lib/settings/routes.js +11 -0
- package/package.json +1 -1
- package/frontend/dist/assets/index-BUbgwJsU.js +0 -93
- package/frontend/dist/assets/index-BzmGsXBy.css +0 -32
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,61 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to NexusCrew are tracked here.
|
|
4
4
|
|
|
5
|
+
## 0.9.6 — 2026-08-18 — "Causes With Names"
|
|
6
|
+
|
|
7
|
+
The previous release fixed a blank panel, a service that hung on a terminal, and
|
|
8
|
+
a message that named the wrong cause. They were three symptoms of one defect: a
|
|
9
|
+
value that collapsed different states into `null`, and a low level composing
|
|
10
|
+
sentences about facts it could not know. This release fixes the defect itself.
|
|
11
|
+
|
|
12
|
+
- **Resolving a public key now has five distinct outcomes instead of one
|
|
13
|
+
`null`**: derived, no identity configured, identity present but the actual key
|
|
14
|
+
unknown, the tool itself missing, and encrypted-or-unreadable. They are data,
|
|
15
|
+
not prose — nothing downstream has to parse a sentence to learn what happened.
|
|
16
|
+
The pairing response carries the outcome beside the text, so a consumer has
|
|
17
|
+
the fact rather than an interpretation of it.
|
|
18
|
+
|
|
19
|
+
Previously all five answered `null`, and the message that followed had to
|
|
20
|
+
guess: "I cannot derive the public key" was shown for a missing file, a
|
|
21
|
+
missing binary and an encrypted key alike, and only one of the three had
|
|
22
|
+
anything to do with a passphrase.
|
|
23
|
+
|
|
24
|
+
- **The sentences are now composed in one place.** A single formatter turns each
|
|
25
|
+
outcome into a cause and an action. Success stays silent — there is nothing to
|
|
26
|
+
say when a thing works — and an outcome the formatter does not recognise is
|
|
27
|
+
**named** rather than swallowed, because a silent default rebuilds exactly the
|
|
28
|
+
collapse this removes.
|
|
29
|
+
|
|
30
|
+
- **The boot service no longer points at a path that expires.** The generated
|
|
31
|
+
unit and launch agent recorded the interpreter path of the moment, which on
|
|
32
|
+
package managers that version their install directory disappears at the next
|
|
33
|
+
upgrade — and the entry point was versioned too, so fixing only the first
|
|
34
|
+
produced a service that looked repaired and failed identically. Both are now
|
|
35
|
+
resolved to a stable alias when one exists and points at the very same file;
|
|
36
|
+
when none exists the current path is written **and the fact is declared**,
|
|
37
|
+
because a path that will expire silently is worse than a warning.
|
|
38
|
+
|
|
39
|
+
- **Unreachable peers are no longer polled at a fixed rate forever.** Three
|
|
40
|
+
stopped peers used to fill the console until the service worker gave up. The
|
|
41
|
+
interval now backs off with a ceiling and recovers as soon as the peer answers
|
|
42
|
+
— the recovery is what the test pins, because a backoff that never resets is a
|
|
43
|
+
sentence rather than a protection.
|
|
44
|
+
|
|
45
|
+
And three different answers stopped looking alike: a peer that is absent, one
|
|
46
|
+
that is present and refuses, and one missing that route each say so, with the
|
|
47
|
+
action they imply — wait, grant the permission **on the remote node**, update
|
|
48
|
+
that node.
|
|
49
|
+
|
|
50
|
+
- **The panel window can be moved and resized**, remembers where it was, and
|
|
51
|
+
can be recentred when it gets lost. Below the mobile breakpoint it stays full
|
|
52
|
+
screen and dragging is genuinely disabled rather than merely hidden.
|
|
53
|
+
|
|
54
|
+
- **The panel no longer reports "ready" and then stops watching.** It now
|
|
55
|
+
distinguishes a frame that loaded from one that failed, using the events the
|
|
56
|
+
element actually emits — with the limit stated where it matters: a `load`
|
|
57
|
+
event fires for an error page too, so it means "a response arrived", never
|
|
58
|
+
"the panel is alive".
|
|
59
|
+
|
|
5
60
|
## 0.9.5 — 2026-08-17 — "Measured From Where It Breaks"
|
|
6
61
|
|
|
7
62
|
Almost everything in this release was already broken before it, and none of it
|