@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 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