@mmmbuto/nexuscrew 0.8.37 → 0.8.39

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,47 @@
2
2
 
3
3
  All notable changes to NexusCrew are tracked here.
4
4
 
5
+ ## 0.8.39 — 2026-07-25 — "Honest Peer"
6
+
7
+ - Fixes `nexuscrew nodes test` and `nexuscrew nodes doctor` falsely reporting a
8
+ broken pairing for healthy outbound peers. The commands no longer present a
9
+ per-peer federation credential to `/api/config`, which correctly accepts only
10
+ the remote browser/UI token and therefore returned a misleading `401`.
11
+ - Probes the authenticated `/federation/health` endpoint instead, matching the
12
+ live topology health path and binding a successful response to the expected
13
+ peer instance ID. A real federation `401` remains an actionable `token-ko`;
14
+ transport, payload and identity failures remain distinct health failures.
15
+ - Keeps the diagnostic read-only, never returns or logs the peer credential,
16
+ and preserves the existing inbound, tunnel-down and missing-token behavior.
17
+ - Gate: **1,068 isolated Node tests** (1,067 pass / 1 platform skip),
18
+ **300/300 frontend tests**, production PWA build and zero production
19
+ dependency vulnerabilities in both dependency trees.
20
+
21
+ ## 0.8.38 — 2026-07-25 — "Right Voice"
22
+
23
+ - Adds an optional, validated `lang` field to `nc_notify` and carries it through
24
+ the HTTP API, live event frame and Web Push metadata. Supported Italian,
25
+ English and Spanish locales accept both base and BCP-47 forms such as
26
+ `it-IT`; malformed or unsupported values fail closed.
27
+ - Makes spoken alerts prefer the notification's declared content language
28
+ instead of the interface language. Existing MCP clients that do not yet send
29
+ `lang` retain a conservative compatibility path: only a sufficiently strong
30
+ body-language signal can override the UI fallback, while short and mixed
31
+ technical titles never decide the voice.
32
+ - Normalizes full locale tags, case and whitespace. Unknown language now leaves
33
+ `SpeechSynthesisUtterance.lang` as the empty browser default instead of
34
+ silently forcing `en-US` or assigning a stringified `undefined` sentinel.
35
+ - Selects an installed voice that matches the resolved language when available.
36
+ The cache is populated synchronously, refreshed by `voiceschanged`, never
37
+ delays or reorders the speech queue, and leaves `utterance.voice` untouched
38
+ while the browser reports no matching voices.
39
+ - Labels fixed Italian service notifications for questions and delivered files
40
+ explicitly, preserves the localized preview/priming gate, and keeps all
41
+ existing queue, focus, privacy, redaction and visual-delivery boundaries.
42
+ - Gate: **1,063 isolated Node tests** (1,062 pass / 1 platform skip),
43
+ **300/300 frontend tests**, production PWA build and zero production
44
+ dependency vulnerabilities in both dependency trees.
45
+
5
46
  ## 0.8.37 — 2026-07-25 — "Wheel History"
6
47
 
7
48
  - Restores desktop mouse-wheel browsing of tmux history inside writable