@mmmbuto/nexuscrew 0.9.58 → 0.9.60
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 +16 -0
- package/README.md +32 -8
- package/frontend/dist/assets/index-D42BJVwr.js +169 -0
- package/frontend/dist/index.html +1 -1
- package/frontend/dist/sw.js +18 -4
- package/frontend/dist/version.json +1 -1
- package/lib/audio/dispatch.js +5 -0
- package/lib/fleet/builtin.js +10 -4
- package/lib/fleet/managed.js +76 -47
- package/lib/fleet/runtime.js +15 -1
- package/lib/mcp/tools.js +1 -0
- package/lib/nodes/store.js +19 -1
- package/lib/notify/ask-alert-identity.js +24 -0
- package/lib/notify/ask-alert-registry.js +96 -0
- package/lib/notify/ask-relay.js +64 -14
- package/lib/notify/asks.js +124 -10
- package/lib/notify/closure-retry.js +5 -4
- package/lib/notify/event-feed-asks-routes.js +18 -5
- package/lib/notify/event-feed-client.js +146 -15
- package/lib/notify/event-feed-producers.js +5 -0
- package/lib/notify/event-feed-routes.js +2 -1
- package/lib/notify/imported-dismissals.js +106 -0
- package/lib/notify/notifier.js +19 -7
- package/lib/notify/owner-ask-scope.js +35 -0
- package/lib/notify/push-relay.js +10 -1
- package/lib/notify/routes.js +29 -15
- package/lib/server.js +177 -22
- package/lib/tmux/list.js +45 -0
- package/lib/tmux-reads.js +44 -0
- package/package.json +1 -1
- package/frontend/dist/assets/index-D8cf4AEo.js +0 -169
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to NexusCrew are tracked here.
|
|
4
4
|
|
|
5
|
+
## 0.9.60 — 2026-10-06
|
|
6
|
+
|
|
7
|
+
- **Managed Codex cells keep their own identity on every platform.** Legacy launches isolate supported Codex and Codex-VL clients from a shared daemon and preserve the cell's MCP context. Conflicting identity overrides and unavailable authority are refused with an actionable update message; verified authority launches retain their existing behavior.
|
|
8
|
+
- **New questions remain distinct and alert once per generation.** Push notifications carry an owner-qualified question tag, and fan-out and event-feed deliveries share bounded alert admission. Replayed questions do not repeat the alert, while delivery responses retain compatibility and report channel outcomes.
|
|
9
|
+
- **Question cards follow authoritative owner views.** Correlated notifications do not add a second card or voice alert. Reconnects refresh the panel, stale reads preserve newer live questions, and generation-qualified closures cannot remove a replacement question.
|
|
10
|
+
- **Locally defined sessions retain question permissions regardless of their prefix or activity.** Capability checks, event feeds and snapshots use an exact, unique Fleet session mapping before the legacy codec. Unavailable or invalid enabled Fleet definitions fail closed, and snapshots return an error instead of certifying an empty view; disabled Fleet retains legacy resolution.
|
|
11
|
+
- **Fleet polling does less repeated work.** Visible panels share polling requests, hidden views suspend their polling, session reads coalesce within a bounded window, and validated definition and credential reads reuse bounded caches while preserving invalidation checks.
|
|
12
|
+
- **Frontend tests wait for asynchronous controls to appear.** Question relay and cell switching checks retain their original assertions without racing capability reads.
|
|
13
|
+
|
|
14
|
+
## 0.9.59 — 2026-10-05
|
|
15
|
+
|
|
16
|
+
- Delayed question events retain the original question generation separately from their emission time. Local dismissal follows the current visible generation, refuses conflicting views, and preserves historical aliases. Imported closure events identify the owner question while mixed-node clients can still resolve older alias-only closures.
|
|
17
|
+
|
|
18
|
+
- Imported questions can be dismissed locally while their owner is unavailable. Cards offer an explicit local action after capability checks, remain visible on errors, and distinguish pending origin closure from unauthorized remote closure. Local dismissals survive restarts and feed refreshes, and synchronize with the owner through authorized routes using generation checks, bounded retries, and durable history. Retry bindings use public pairing rotation counters rather than credential hashes.
|
|
19
|
+
- **VL nodes no longer blink away when their owner read fails.** The sidebar keeps the last known VL directory per owner, republished on every update and marked as not verified; entries survive skipped or failed reads and owners that temporarily drop out of the topology, within the same grace window used for owners. A confirmed read — even an empty one — replaces the cached entry for that owner alone, and a token or instance change drops it. Cache writes, publications, backoff successes and backoff failures are all scoped to the route's current owner: a late reply from a superseded owner (or from a route whose owner is no longer identifiable) touches neither the cache nor the backoff.
|
|
20
|
+
|
|
5
21
|
## 0.9.58 — 2026-10-03
|
|
6
22
|
|
|
7
23
|
- **Reply to questions across connected hubs.** Replies and dismissals follow the question's owner through the network. Reply availability is checked separately from the notification feed, and an uncertain reply can be verified before another is sent.
|
package/README.md
CHANGED
|
@@ -47,19 +47,31 @@ a quick switch.
|
|
|
47
47
|
|
|
48
48
|
## Install in 30 seconds
|
|
49
49
|
|
|
50
|
+
Install the package globally:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
npm install -g @mmmbuto/nexuscrew@latest
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Start it — the first run creates a loopback-only runtime, starts it in the
|
|
57
|
+
background and opens the authenticated PWA:
|
|
58
|
+
|
|
50
59
|
```bash
|
|
51
|
-
npm install -g @mmmbuto/nexuscrew
|
|
52
60
|
nexuscrew
|
|
53
61
|
```
|
|
54
62
|
|
|
55
|
-
|
|
56
|
-
|
|
63
|
+
Prerequisites: Linux needs Node.js 18+, tmux (3.4+ recommended) and OpenSSH,
|
|
64
|
+
installed with your distribution package manager. On macOS:
|
|
57
65
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
66
|
+
```bash
|
|
67
|
+
brew install node tmux
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
On Android / Termux:
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
pkg install nodejs-lts tmux openssh
|
|
74
|
+
```
|
|
63
75
|
|
|
64
76
|
NexusCrew ships scriptless PTY prebuilds for Linux x64/ARM64, macOS x64/ARM64
|
|
65
77
|
and Android ARM64. A normal global install does not need a compiler or native
|
|
@@ -183,9 +195,21 @@ devices.
|
|
|
183
195
|
|
|
184
196
|
## Development
|
|
185
197
|
|
|
198
|
+
Run the test suite:
|
|
199
|
+
|
|
186
200
|
```bash
|
|
187
201
|
npm test
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
Build the frontend assets:
|
|
205
|
+
|
|
206
|
+
```bash
|
|
188
207
|
npm run build
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
Run the runtime in the foreground:
|
|
211
|
+
|
|
212
|
+
```bash
|
|
189
213
|
node bin/nexuscrew.js serve
|
|
190
214
|
```
|
|
191
215
|
|