@mmmbuto/nexuscrew 0.8.39 → 0.8.40
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 -1
- package/README.md +11 -1
- package/frontend/dist/assets/index-CwZySkm2.js +93 -0
- package/frontend/dist/index.html +1 -1
- package/frontend/dist/version.json +1 -1
- package/lib/audio/acl.js +65 -0
- package/lib/audio/adapters.js +233 -0
- package/lib/audio/bridge-auth.js +176 -0
- package/lib/audio/capability.js +40 -0
- package/lib/audio/consent.js +64 -0
- package/lib/audio/dispatch.js +154 -0
- package/lib/audio/group-receipt.js +119 -0
- package/lib/audio/group-speak.js +146 -0
- package/lib/audio/groups.js +121 -0
- package/lib/audio/origin.js +128 -0
- package/lib/audio/queue.js +191 -0
- package/lib/audio/rate-limit.js +71 -0
- package/lib/audio/receipt.js +146 -0
- package/lib/audio/routes.js +374 -0
- package/lib/audio/speak.js +125 -0
- package/lib/fleet/managed.js +53 -2
- package/lib/fleet/provider.js +6 -0
- package/lib/mcp/server.js +27 -3
- package/lib/mcp/tools.js +142 -0
- package/lib/nodes/tunnel-supervisor.js +33 -7
- package/lib/nodes/tunnel.js +21 -0
- package/lib/proxy/federation.js +41 -11
- package/lib/proxy/hop-proof.js +50 -0
- package/lib/server.js +93 -2
- package/lib/settings/routes.js +131 -0
- package/package.json +1 -1
- package/frontend/dist/assets/index-D0MBXlAl.js +0 -93
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,38 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to NexusCrew are tracked here.
|
|
4
4
|
|
|
5
|
+
## Unreleased
|
|
6
|
+
|
|
7
|
+
## 0.8.40 — 2026-07-27 — "Shared Voice"
|
|
8
|
+
|
|
9
|
+
- Adds opt-in **Audio Share**, a backend-native TTS path for a specific
|
|
10
|
+
authorized node with an actual speaker. It is distinct from the existing
|
|
11
|
+
browser-only notification voice, so synthesis no longer depends on a PWA
|
|
12
|
+
tab remaining focused in the foreground.
|
|
13
|
+
- Supports local native adapters on Android/Termux (`termux-tts-speak`), macOS
|
|
14
|
+
(`say`), and Linux (`espeak-ng`, with an explicit `spd-say` fallback). The
|
|
15
|
+
implementation reports adapter start rather than inventing audibility from a
|
|
16
|
+
successful exit code; physical output remains a device-side check.
|
|
17
|
+
- Adds local Audio settings: consent defaults off, redacted capability,
|
|
18
|
+
fixed-text explicit test and a sovereign local Stop. Share, visibility and
|
|
19
|
+
audio consent remain three independent controls; a remote peer cannot grant
|
|
20
|
+
audio consent through federation.
|
|
21
|
+
- Adds signed MCP commands for exact node speech and caller-scoped receipts:
|
|
22
|
+
`nc_speak`, `nc_speak_status` and `nc_speak_stop`. The MCP bridge derives a
|
|
23
|
+
live Fleet origin through a node-local HMAC proof; a UI token, body field or
|
|
24
|
+
header cannot impersonate a cell.
|
|
25
|
+
- Adds local named target groups (up to eight exact instance IDs): ordered
|
|
26
|
+
primary/failover or explicit fan-out, per-endpoint receipts, target-side
|
|
27
|
+
ACL/consent/READONLY/rate checks, group Stop, bounded TTL storage and no
|
|
28
|
+
aggregate success boolean. `nc_play_audio` is deliberately not introduced.
|
|
29
|
+
- Makes reverse-forward Share failures recoverable: a repeated bind/forward
|
|
30
|
+
failure enters a diagnosed degraded state and retries at a bounded cadence,
|
|
31
|
+
instead of requiring the user to toggle Share off and on after a mobile
|
|
32
|
+
reconnect.
|
|
33
|
+
- Adds explicit Fleet credential-source policy (`auto`, environment or
|
|
34
|
+
NexusCrew store), preserves legacy cells as no-op `auto`, and removes the
|
|
35
|
+
conflicting provider environment set when the local store is selected.
|
|
36
|
+
|
|
5
37
|
## 0.8.39 — 2026-07-25 — "Honest Peer"
|
|
6
38
|
|
|
7
39
|
- Fixes `nexuscrew nodes test` and `nexuscrew nodes doctor` falsely reporting a
|
|
@@ -254,7 +286,7 @@ All notable changes to NexusCrew are tracked here.
|
|
|
254
286
|
non-blocking doctor warning.
|
|
255
287
|
- Validates imported Fleet working directories before persistence and redacts the active Shell
|
|
256
288
|
command together with the existing prompt and environment secret values.
|
|
257
|
-
- Extends source-side diagnostic redaction to macOS
|
|
289
|
+
- Extends source-side diagnostic redaction to macOS home-directory paths in addition to Linux
|
|
258
290
|
and Android home paths.
|
|
259
291
|
- Gate: **987 isolated Node tests** (986 pass / 1 platform skip), **93/93 frontend component
|
|
260
292
|
tests**, production PWA build and zero production dependency vulnerabilities in both dependency
|
package/README.md
CHANGED
|
@@ -11,6 +11,15 @@ NexusCrew turns live tmux sessions, AI CLI workers and connected machines into
|
|
|
11
11
|
one local-first browser control plane. Your terminals stay real, your tools
|
|
12
12
|
stay yours, and your infrastructure stays under your control.
|
|
13
13
|
|
|
14
|
+
## New in 0.8.40: Audio Share
|
|
15
|
+
|
|
16
|
+
Audio Share lets an authorized cell ask one exact, opt-in node with a real
|
|
17
|
+
speaker to speak through its native platform adapter. Android/Termux, macOS and
|
|
18
|
+
Linux use their local TTS primitives; a browser tab is no longer the only route
|
|
19
|
+
to speech. Consent stays off by default, a group never overrides a node's ACL
|
|
20
|
+
or consent, and `spoken` means that the adapter started—not that a person heard
|
|
21
|
+
the output.
|
|
22
|
+
|
|
14
23
|
<p align="center">
|
|
15
24
|
<img src="docs/img/fleet-deck-desktop.png" width="960" alt="NexusCrew desktop deck with multiple live tmux sessions">
|
|
16
25
|
</p>
|
|
@@ -58,7 +67,7 @@ install-script approval.
|
|
|
58
67
|
| **Multi-node Fleet** | See and control authorized cells across Linux, macOS and Android nodes. |
|
|
59
68
|
| **AI-ready cells** | Launch Claude Code, Codex, Codex-VL, Pi, Agy or a trusted shell with explicit providers and policies. |
|
|
60
69
|
| **Mobile-native control** | Scroll tmux history, use terminal keys, dictate prompts and move files from a phone. |
|
|
61
|
-
| **Operator alerts** | Receive visual, push and
|
|
70
|
+
| **Operator alerts** | Receive visual, push, browser speech and opt-in node-native Audio Share TTS. |
|
|
62
71
|
|
|
63
72
|
The browser is a client, not the session host:
|
|
64
73
|
|
|
@@ -102,6 +111,7 @@ ssh -L 41820:127.0.0.1:41820 user@your-host
|
|
|
102
111
|
| [Fleet and terminals](docs/FLEET.md) | Cells, engines, providers, decks and mobile input |
|
|
103
112
|
| [Connect nodes](docs/NODES.md) | Pairing, SSH routes, sharing and routed aliases |
|
|
104
113
|
| [Notifications](docs/NOTIFICATIONS.md) | Toasts, Web Push and optional spoken alerts |
|
|
114
|
+
| [Audio Share and native TTS](docs/AUDIO_SHARE.md) | Node-native TTS, consent, groups and MCP controls |
|
|
105
115
|
| [MCP bridge](docs/MCP.md) | Operator tools, cell delivery and client setup |
|
|
106
116
|
| [Configuration](docs/CONFIGURATION.md) | Files, environment overrides and local settings |
|
|
107
117
|
| [Operations](docs/OPERATIONS.md) | CLI, boot, backup, updates and diagnostics |
|