@mmmbuto/nexuscrew 0.9.24 → 0.9.26
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 +75 -0
- package/frontend/dist/assets/{index-DzCo6cJc.js → index-Bdh6CVRY.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 +31 -5
- package/lib/fleet/identity-provision.js +142 -0
- 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,81 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to NexusCrew are tracked here.
|
|
4
4
|
|
|
5
|
+
## 0.9.26 — 2026-09-13
|
|
6
|
+
|
|
7
|
+
- rebuilt the frontend bundle for the shipped version (the 0.9.25 package carried a 0.9.24 bundle, so the UI kept showing the update banner); the publish gate now fails when the bundle version differs from the package version.
|
|
8
|
+
|
|
9
|
+
## 0.9.25 (unreleased)
|
|
10
|
+
|
|
11
|
+
- **MCP identity reads the verified binding metadata first (fail-closed).**
|
|
12
|
+
`nexuscrew mcp` now evaluates the `NEXUSCREW_VERIFIED_*` metadata delivered
|
|
13
|
+
by codex-vl >= 0.154.0-vl.3 launchers before any legacy source: version,
|
|
14
|
+
owner instance, cell, channel and the authority introspection must all be
|
|
15
|
+
coherent (source `verified-env`, verified identity in `nc_identity`), and any
|
|
16
|
+
incoherence fails closed with `NEXUSCREW_MCP_IDENTITY_VERIFIED_ENV_INVALID`
|
|
17
|
+
instead of falling back to the legacy variables. Without the metadata the
|
|
18
|
+
legacy path is unchanged.
|
|
19
|
+
- **`CODEX_APP_SERVER_IDENTITY_REQUIRED=1` is exported only in authority
|
|
20
|
+
mode.** The fleet launcher now exports the flag for codex-vl cells only when
|
|
21
|
+
the fleet identity mode is `authority` and the authority is constructible;
|
|
22
|
+
in legacy mode it exports an explicit `0` and names the reason in a
|
|
23
|
+
structured log line. Explicit user overrides (`engine.env`, `cfg.env`) still win, with a
|
|
24
|
+
warning when they force `1` outside authority mode.
|
|
25
|
+
- **Standalone cells (`CODEX_APP_SERVER_IDENTITY_REQUIRED=0`) no longer
|
|
26
|
+
receive the identity channel.** The launcher created fd 3:4 and
|
|
27
|
+
`NEXUSCREW_IDENTITY_FD` even when it had resolved the flag to `0`, so the
|
|
28
|
+
child started an identity handshake against a legacy lease server that
|
|
29
|
+
answered `revoked` and the cell died at startup. The channel decision now
|
|
30
|
+
comes from the same resolution that produces the flag.
|
|
31
|
+
- **A configured but unavailable fleet identity authority now refuses
|
|
32
|
+
protected cell launches instead of silently falling back to standalone.**
|
|
33
|
+
The launch fails with `IDENTITY_AUTHORITY_UNAVAILABLE` naming the reason
|
|
34
|
+
(never a value), and `nexuscrew doctor` reports the same state.
|
|
35
|
+
- **Upgrade NexusCrew before codex-vl**: `codex-vl >= 0.154.0-vl.3` with
|
|
36
|
+
`NexusCrew <= 0.9.24` fails closed in Fleet cells (the old launcher forces
|
|
37
|
+
identity without an authority).
|
|
38
|
+
- **`nexuscrew identity provision`.** New command that generates the two
|
|
39
|
+
distinct authority credentials (32 random bytes each, files `0600` inside a
|
|
40
|
+
`0700` directory under `~/.nexuscrew/identity-authority/`), never overwrites
|
|
41
|
+
existing credentials without `--force`, activates
|
|
42
|
+
`fleet.identity.mode = "authority"` in the config (or prints the exact keys
|
|
43
|
+
with `--no-write-config`). `loadConfig` reads the credential files
|
|
44
|
+
automatically and `nexuscrew doctor` shows the identity mode and authority
|
|
45
|
+
constructibility (no values).
|
|
46
|
+
- **MCP identity remediation rewritten.** `nc_identity` and `doctor` no longer
|
|
47
|
+
recommend allowlisting `TMUX`/`TMUX_PANE`/`NEXUSCREW_MCP_SESSION` in the MCP
|
|
48
|
+
server `env_vars`: on a shared verified spawn that allowlist fails the launch
|
|
49
|
+
(the names are reserved). The two valid paths are a verified session
|
|
50
|
+
(codex-vl >= 0.154.0-vl.3 + NexusCrew >= 0.9.25 with provisioned authority)
|
|
51
|
+
or a legacy session inheriting the three variables.
|
|
52
|
+
|
|
53
|
+
- **Ollama Cloud catalog refreshed against the official measured sample of
|
|
54
|
+
2026-09-12.** Bare-name `gemma4` and `qwen3.5` enter the catalog (verified
|
|
55
|
+
alive with a 200 on `/v1/chat/completions`; official measured sample:
|
|
56
|
+
22 live ids / 8 dead variants), with context and capabilities taken from
|
|
57
|
+
the channel cards (`gemma4` 128K text+image, `qwen3.5` 256K text+image).
|
|
58
|
+
The 404 variants (`gemma4:12b`/`:e4b`, `qwen3.5:27b`/`:35b`/`:122b`, bare
|
|
59
|
+
`mistral-large-3`, `nemotron-3-super:120b`, `nemotron-3-nano:4b`) and
|
|
60
|
+
community ids stay out on purpose. `glm-5.3` and `deepseek-v4.1-flash`
|
|
61
|
+
were already listed and are not duplicated.
|
|
62
|
+
- **Fixture-based liveness guard for the Ollama Cloud models.** New test
|
|
63
|
+
(`tests/fleet-ollama-liveness.test.js`): every catalog id must belong to
|
|
64
|
+
the official measured sample; when upstream retires an id, the test goes
|
|
65
|
+
red naming it as "to be verified". No network calls in tests; the real
|
|
66
|
+
periodic check remains a separate item.
|
|
67
|
+
- **OpenCode Go catalog refreshed signal-only (401 CreditsError on
|
|
68
|
+
2026-09-12).** The Go plan could not generate (credits exhausted, listing
|
|
69
|
+
OK): the additions are wire signals, not end-to-end measurements.
|
|
70
|
+
`glm-5.3`, `glm-5.3-flash`, `longcat-2.0`, `deepseek-v4.1-flash` and
|
|
71
|
+
`hy4-preview` enter all three wires; `qwen3.8-flash` enters Messages/Chat
|
|
72
|
+
ONLY (Responses rejected, measured). New limits declared by models.dev
|
|
73
|
+
(1M context; `hy4-preview` 1024000), marked "declared, not measured".
|
|
74
|
+
Retired `glm-5`, `kimi-k2.5`, `minimax-m2.5` and `qwen3.5-plus` are
|
|
75
|
+
removed from the lists, LIMITS and the catalog, with a test guard against
|
|
76
|
+
re-introduction. `hy3` unchanged (diverging source on its output limit:
|
|
77
|
+
to be re-checked), default `deepseek-v4-flash` unchanged, VISION
|
|
78
|
+
unchanged (only the PNG-measured vision-exp id).
|
|
79
|
+
|
|
5
80
|
## 0.9.24 — 2026-09-12
|
|
6
81
|
|
|
7
82
|
- **Verifica dell'identità legata alla challenge, con claims completi.** La
|