@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 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 `/Users/<name>/...` paths in addition to Linux
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 optional on-device spoken notifications. |
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 |