@mmmbuto/nexuscrew 0.8.35 → 0.8.36
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 +33 -0
- package/README.md +29 -1
- package/frontend/dist/assets/index-DTYcphMi.js +93 -0
- package/frontend/dist/index.html +1 -1
- package/frontend/dist/version.json +1 -1
- package/lib/cli/fleet-service.js +22 -7
- package/lib/cli/service.js +107 -7
- package/lib/settings/routes.js +5 -7
- package/package.json +1 -1
- package/frontend/dist/assets/index-BeTp29rp.js +0 -93
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,39 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to NexusCrew are tracked here.
|
|
4
4
|
|
|
5
|
+
## 0.8.36 — 2026-07-24 — "Clean Relaunch"
|
|
6
|
+
|
|
7
|
+
- Makes macOS service and Fleet LaunchAgent reinstalls wait until `launchd`
|
|
8
|
+
has actually removed the previous job before bootstrapping the replacement,
|
|
9
|
+
preventing intermittent unload/bootstrap races during upgrades.
|
|
10
|
+
- Bounds the unload check to five seconds and fails closed instead of leaving a
|
|
11
|
+
partially applied activation when a successfully stopped job never
|
|
12
|
+
disappears.
|
|
13
|
+
- Keeps Settings service regeneration non-activating on every platform: the
|
|
14
|
+
unit is rewritten atomically, but applying it still requires the explicit
|
|
15
|
+
service restart already shown by the UI.
|
|
16
|
+
- Adds opt-in, browser-local spoken alerts for new live PWA notifications.
|
|
17
|
+
Enabling the setting runs an honest native delivery test and speech remains
|
|
18
|
+
gated on a successful test for the current page session; unsupported, silent
|
|
19
|
+
or failing engines degrade without affecting the visual toast or SSE channel.
|
|
20
|
+
- Speaks only from the visible, focused NexusCrew window and cancels on blur,
|
|
21
|
+
background, opt-out or unmount. Duplicate reconnect frames are suppressed
|
|
22
|
+
for 60 seconds, the normal queue keeps at most the two newest pending alerts,
|
|
23
|
+
high urgency preempts it, and a 30-second watchdog advances past a stuck
|
|
24
|
+
browser utterance.
|
|
25
|
+
- Leaves Web Push unchanged as the best-effort hidden/closed-app path. Speech
|
|
26
|
+
uses the device voice and current UI language without a server audio route;
|
|
27
|
+
credential-shaped values and private home paths are redacted first. The
|
|
28
|
+
preference is off by default, works under server READONLY and is synchronized
|
|
29
|
+
across windows for the same browser origin.
|
|
30
|
+
- Documents the one-speaker boundary: focus prevents duplicate speech across
|
|
31
|
+
windows on one device, while separately opted-in devices can each speak by
|
|
32
|
+
design. Persisted questions are never replayed; only new live notification
|
|
33
|
+
frames enter the speech manager.
|
|
34
|
+
- Gate: **1,059 isolated Node tests** (1,058 pass / 1 platform skip),
|
|
35
|
+
**293/293 frontend tests**, production PWA build (168 modules) and zero
|
|
36
|
+
production dependency vulnerabilities in both dependency trees.
|
|
37
|
+
|
|
5
38
|
## 0.8.35 — 2026-07-23 — "Contained Fleet"
|
|
6
39
|
|
|
7
40
|
- Keeps Fleet rows inside the Settings panel on phones and narrow windows.
|
package/README.md
CHANGED
|
@@ -271,6 +271,34 @@ draft, size preference and bounded prompt history in the current browser, includ
|
|
|
271
271
|
ArrowUp/ArrowDown recall at textarea boundaries. This browser-local state is not federated or
|
|
272
272
|
included in Fleet backups and can be cleared from Settings → System.
|
|
273
273
|
|
|
274
|
+
## Notifications and optional spoken alerts
|
|
275
|
+
|
|
276
|
+
Live cell notifications appear as in-app toasts and can also use Web Push when that browser and
|
|
277
|
+
operating system support it. Push delivery remains best-effort and requires the browser permission;
|
|
278
|
+
on iOS it also requires an installed PWA. The service worker cannot synthesize speech, so a hidden
|
|
279
|
+
or closed PWA uses only its normal system-notification path.
|
|
280
|
+
|
|
281
|
+
**Settings → System → Read notifications aloud** adds browser-local speech for new live
|
|
282
|
+
notifications. It is off by default, remains editable when server settings are read-only, uses the
|
|
283
|
+
device's system voice in the current UI language, and sends no notification text to a speech
|
|
284
|
+
service. Enabling it runs an audible test. NexusCrew reports success only after the browser emits
|
|
285
|
+
both speech start and end; if the native engine stays silent or errors, the UI reports that voice
|
|
286
|
+
is unavailable. Credential-shaped values and private home paths are redacted before speech. The
|
|
287
|
+
test must succeed once per page session, including after a reload.
|
|
288
|
+
|
|
289
|
+
Speech runs only while that document is visible and has operating-system focus. Blur, background,
|
|
290
|
+
opt-out and unmount cancel the current utterance and clear pending work; skipped notifications are
|
|
291
|
+
not replayed when focus returns. Duplicate live frames are suppressed for 60 seconds, at most two
|
|
292
|
+
normal alerts remain pending, and a high-urgency alert interrupts the current queue. A 30-second
|
|
293
|
+
watchdog cancels a stuck browser utterance and advances to the next alert.
|
|
294
|
+
|
|
295
|
+
Focus provides one speaker among NexusCrew windows on the same device. Two separately opted-in
|
|
296
|
+
devices may both speak when each PWA is visible and focused; this is intentional for a per-device
|
|
297
|
+
preference. Spoken alerts are optional and do not replace the toast's accessibility status, so
|
|
298
|
+
screen-reader users can leave speech disabled if their assistive technology already announces it.
|
|
299
|
+
Depending on the operating system, an enabled Web Push notification may still coexist with the
|
|
300
|
+
visible toast and spoken alert.
|
|
301
|
+
|
|
274
302
|
## Connect nodes through SSH
|
|
275
303
|
|
|
276
304
|
Every installation starts as a local node. A node joins another NexusCrew installation with a
|
|
@@ -545,7 +573,7 @@ See [CHANGELOG.md](CHANGELOG.md) for released changes.
|
|
|
545
573
|
|
|
546
574
|
## Status
|
|
547
575
|
|
|
548
|
-
The current stable release is **v0.8.
|
|
576
|
+
The current stable release is **v0.8.36** on npm and GitHub.
|
|
549
577
|
|
|
550
578
|
## License
|
|
551
579
|
|