@mmmbuto/nexuscrew 0.9.1 → 0.9.2
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,37 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to NexusCrew are tracked here.
|
|
4
4
|
|
|
5
|
+
## 0.9.2 — 2026-08-16 — "Offered and Then Refused"
|
|
6
|
+
|
|
7
|
+
Both defects in this release were found by using the product, not by a test —
|
|
8
|
+
and both were invisible to the suite for the same reason: each test exercised
|
|
9
|
+
one piece in isolation, and neither defect exists in isolation.
|
|
10
|
+
|
|
11
|
+
- **The Desktop engine could be selected but never saved.** It declared
|
|
12
|
+
`command: 'docker'` — a bare name — while engine validation requires an
|
|
13
|
+
absolute path, so it appeared in the list and was rejected on save with
|
|
14
|
+
*"command must be an absolute path"*: a message describing the shape of the
|
|
15
|
+
value instead of saying the command had not been resolved. The path is now
|
|
16
|
+
resolved from `PATH` through `realpath`, which matters because validation
|
|
17
|
+
uses `lstat` and rejects symlinks — and in many installs the first hit on
|
|
18
|
+
`PATH` is exactly that. Where Docker is absent the fallback makes the
|
|
19
|
+
refusal say *"not accessible (ENOENT)"*, naming the real cause.
|
|
20
|
+
|
|
21
|
+
Installations that already had the engine are **repaired**: the backfill
|
|
22
|
+
skips what already exists, so fixing the default alone would have changed
|
|
23
|
+
nothing precisely where the defect was seen. The repair only touches a
|
|
24
|
+
command that is both non-absolute and still named `docker` — an absolute
|
|
25
|
+
path, or a command you changed yourself, is left alone.
|
|
26
|
+
|
|
27
|
+
- **The panel reloaded without pause, leaving no time to interact with it.**
|
|
28
|
+
A panel behind a login was unusable: the sign-in prompt appeared and the
|
|
29
|
+
frame remounted before it could be completed. `route` is an array, so it was
|
|
30
|
+
a new prop on every parent render — and the parent re-renders continuously
|
|
31
|
+
to poll the fleet. With the array among the effect's dependencies, every
|
|
32
|
+
render requested a fresh ticket and remounted the iframe. The dependency is
|
|
33
|
+
now keyed on content, so the panel reopens when the route actually changes
|
|
34
|
+
and not otherwise.
|
|
35
|
+
|
|
5
36
|
## 0.9.1 — 2026-08-16 — "What the Guard Was Not Guarding"
|
|
6
37
|
|
|
7
38
|
- **The panel now lives on its own origin, so its JavaScript can no longer
|