@mmmbuto/nexuscrew 0.9.23 → 0.9.25
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 +100 -0
- package/frontend/dist/assets/{index-BmA9pnC1.js → index-DzCo6cJc.js} +1 -1
- package/frontend/dist/index.html +1 -1
- package/frontend/dist/version.json +1 -1
- package/lib/cli/commands.js +33 -1
- package/lib/cli/doctor.js +87 -4
- package/lib/config.js +51 -1
- package/lib/fleet/builtin.js +13 -1
- package/lib/fleet/catalogs/opencode-go.json +200 -16
- package/lib/fleet/cell-exec.js +113 -11
- package/lib/fleet/cell-lease-server.js +104 -2
- package/lib/fleet/identity-authority.js +65 -6
- package/lib/fleet/identity-provision.js +142 -0
- package/lib/fleet/lease-client.js +78 -1
- package/lib/fleet/managed.js +140 -14
- package/lib/fleet/runtime.js +30 -1
- package/lib/mcp/identity-provider.js +133 -5
- package/lib/mcp/identity-schema.js +2 -0
- package/lib/mcp/server.js +50 -9
- package/lib/mcp/tools.js +15 -4
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,106 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to NexusCrew are tracked here.
|
|
4
4
|
|
|
5
|
+
## 0.9.25 - 2026-09-13
|
|
6
|
+
|
|
7
|
+
- **Compatibility note**: codex-vl >= 0.154.0-vl.3 inside a bound Fleet cell
|
|
8
|
+
requires NexusCrew >= 0.9.25 for the `nc_*` tools; NexusCrew 0.9.24 only
|
|
9
|
+
reads the legacy identity variables, which vl.3 removes from MCP children on
|
|
10
|
+
verified bindings. Standalone (legacy) cells keep working with both.
|
|
11
|
+
|
|
12
|
+
- **MCP identity reads the verified binding metadata first (fail-closed).**
|
|
13
|
+
`nexuscrew mcp` now evaluates the `NEXUSCREW_VERIFIED_*` metadata delivered
|
|
14
|
+
by codex-vl >= 0.154.0-vl.3 launchers before any legacy source: version,
|
|
15
|
+
owner instance, cell, channel and the authority introspection must all be
|
|
16
|
+
coherent (source `verified-env`, verified identity in `nc_identity`), and any
|
|
17
|
+
incoherence fails closed with `NEXUSCREW_MCP_IDENTITY_VERIFIED_ENV_INVALID`
|
|
18
|
+
instead of falling back to the legacy variables. Without the metadata the
|
|
19
|
+
legacy path is unchanged.
|
|
20
|
+
- **`CODEX_APP_SERVER_IDENTITY_REQUIRED=1` is exported only in authority
|
|
21
|
+
mode.** The fleet launcher now exports the flag for codex-vl cells only when
|
|
22
|
+
the fleet identity mode is `authority` and the authority is constructible;
|
|
23
|
+
in legacy mode it exports an explicit `0` and names the reason in a
|
|
24
|
+
structured log line. Explicit user overrides (`engine.env`, `cfg.env`) still win, with a
|
|
25
|
+
warning when they force `1` outside authority mode.
|
|
26
|
+
- **Standalone cells (`CODEX_APP_SERVER_IDENTITY_REQUIRED=0`) no longer
|
|
27
|
+
receive the identity channel.** The launcher created fd 3:4 and
|
|
28
|
+
`NEXUSCREW_IDENTITY_FD` even when it had resolved the flag to `0`, so the
|
|
29
|
+
child started an identity handshake against a legacy lease server that
|
|
30
|
+
answered `revoked` and the cell died at startup. The channel decision now
|
|
31
|
+
comes from the same resolution that produces the flag.
|
|
32
|
+
- **A configured but unavailable fleet identity authority now refuses
|
|
33
|
+
protected cell launches instead of silently falling back to standalone.**
|
|
34
|
+
The launch fails with `IDENTITY_AUTHORITY_UNAVAILABLE` naming the reason
|
|
35
|
+
(never a value), and `nexuscrew doctor` reports the same state.
|
|
36
|
+
- **Upgrade NexusCrew before codex-vl**: `codex-vl >= 0.154.0-vl.3` with
|
|
37
|
+
`NexusCrew <= 0.9.24` fails closed in Fleet cells (the old launcher forces
|
|
38
|
+
identity without an authority).
|
|
39
|
+
- **`nexuscrew identity provision`.** New command that generates the two
|
|
40
|
+
distinct authority credentials (32 random bytes each, files `0600` inside a
|
|
41
|
+
`0700` directory under `~/.nexuscrew/identity-authority/`), never overwrites
|
|
42
|
+
existing credentials without `--force`, activates
|
|
43
|
+
`fleet.identity.mode = "authority"` in the config (or prints the exact keys
|
|
44
|
+
with `--no-write-config`). `loadConfig` reads the credential files
|
|
45
|
+
automatically and `nexuscrew doctor` shows the identity mode and authority
|
|
46
|
+
constructibility (no values).
|
|
47
|
+
- **MCP identity remediation rewritten.** `nc_identity` and `doctor` no longer
|
|
48
|
+
recommend allowlisting `TMUX`/`TMUX_PANE`/`NEXUSCREW_MCP_SESSION` in the MCP
|
|
49
|
+
server `env_vars`: on a shared verified spawn that allowlist fails the launch
|
|
50
|
+
(the names are reserved). The two valid paths are a verified session
|
|
51
|
+
(codex-vl >= 0.154.0-vl.3 + NexusCrew >= 0.9.25 with provisioned authority)
|
|
52
|
+
or a legacy session inheriting the three variables.
|
|
53
|
+
|
|
54
|
+
- **Ollama Cloud catalog refreshed against the official measured sample of
|
|
55
|
+
2026-09-12.** Bare-name `gemma4` and `qwen3.5` enter the catalog (verified
|
|
56
|
+
alive with a 200 on `/v1/chat/completions`; official measured sample:
|
|
57
|
+
22 live ids / 8 dead variants), with context and capabilities taken from
|
|
58
|
+
the channel cards (`gemma4` 128K text+image, `qwen3.5` 256K text+image).
|
|
59
|
+
The 404 variants (`gemma4:12b`/`:e4b`, `qwen3.5:27b`/`:35b`/`:122b`, bare
|
|
60
|
+
`mistral-large-3`, `nemotron-3-super:120b`, `nemotron-3-nano:4b`) and
|
|
61
|
+
community ids stay out on purpose. `glm-5.3` and `deepseek-v4.1-flash`
|
|
62
|
+
were already listed and are not duplicated.
|
|
63
|
+
- **Fixture-based liveness guard for the Ollama Cloud models.** New test
|
|
64
|
+
(`tests/fleet-ollama-liveness.test.js`): every catalog id must belong to
|
|
65
|
+
the official measured sample; when upstream retires an id, the test goes
|
|
66
|
+
red naming it as "to be verified". No network calls in tests; the real
|
|
67
|
+
periodic check remains a separate item.
|
|
68
|
+
- **OpenCode Go catalog refreshed signal-only (401 CreditsError on
|
|
69
|
+
2026-09-12).** The Go plan could not generate (credits exhausted, listing
|
|
70
|
+
OK): the additions are wire signals, not end-to-end measurements.
|
|
71
|
+
`glm-5.3`, `glm-5.3-flash`, `longcat-2.0`, `deepseek-v4.1-flash` and
|
|
72
|
+
`hy4-preview` enter all three wires; `qwen3.8-flash` enters Messages/Chat
|
|
73
|
+
ONLY (Responses rejected, measured). New limits declared by models.dev
|
|
74
|
+
(1M context; `hy4-preview` 1024000), marked "declared, not measured".
|
|
75
|
+
Retired `glm-5`, `kimi-k2.5`, `minimax-m2.5` and `qwen3.5-plus` are
|
|
76
|
+
removed from the lists, LIMITS and the catalog, with a test guard against
|
|
77
|
+
re-introduction. `hy3` unchanged (diverging source on its output limit:
|
|
78
|
+
to be re-checked), default `deepseek-v4-flash` unchanged, VISION
|
|
79
|
+
unchanged (only the PNG-measured vision-exp id).
|
|
80
|
+
|
|
81
|
+
## 0.9.24 — 2026-09-12
|
|
82
|
+
|
|
83
|
+
- **Verifica dell'identità legata alla challenge, con claims completi.** La
|
|
84
|
+
verifica online di un identity proof (metodo `nexuscrew/identity/verify`, sul
|
|
85
|
+
canale di lease per cella) ora riceve dall'authority i claims che la challenge
|
|
86
|
+
ha effettivamente emesso, e il risultato è legato alla challenge stessa: una
|
|
87
|
+
risposta che non corrisponde alla challenge emessa viene rifiutata
|
|
88
|
+
(`challenge_mismatch`) invece di essere accettata. Il `nonce` torna fra i
|
|
89
|
+
claims perché il lato client lo confronta con la propria challenge al momento
|
|
90
|
+
del commit, senza fallback su claim esterni.
|
|
91
|
+
|
|
92
|
+
- **Il canale serve più verifiche per connessione.** Dopo una verifica
|
|
93
|
+
conclusa il relay azzera il riferimento pendente: una seconda verifica sulla
|
|
94
|
+
stessa connessione (reconnect, resume, nuova incarnazione) non trovava più il
|
|
95
|
+
canale libero e falliva pur essendo il canale sano. Corretto, con e2e che
|
|
96
|
+
copre verifica ripetuta e challenge successiva.
|
|
97
|
+
|
|
98
|
+
- **Requisito di compatibilità — la coppia versioni conta.** `codex-vl` **≥
|
|
99
|
+
0.154.0-vl.3** richiede **NexusCrew ≥ 0.9.24**: il daemon `codex-vl` con
|
|
100
|
+
identità obbligatoria e canale di verifica assente o inutilizzabile **non si
|
|
101
|
+
avvia** (fail-closed) e non può verificare l'identità contro un server che non
|
|
102
|
+
espone `verify`. Con NexusCrew 0.9.23 una cella gestita resta quindi
|
|
103
|
+
inutilizzabile; aggiornate il server prima del daemon.
|
|
104
|
+
|
|
5
105
|
## 0.9.23 — 2026-09-11
|
|
6
106
|
|
|
7
107
|
- **Frontend bundle ricostruito.** Il banner «new version available /
|