@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 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