@holmes-lab/holmes-kit 0.19.4 → 0.19.6

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
@@ -5,6 +5,71 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
  <!-- @implements A-SPEC-209 -->
8
+ ## [0.19.6] - 2026-09-11
9
+
10
+ A correction. 0.19.5 claimed a security improvement that does not reach the people it was written
11
+ for, and a claim that does not hold is worse than no claim.
12
+
13
+ ### Fixed
14
+ - **The `protobufjs` override does not protect consumers, and 0.19.5 said it did.** `overrides` is a
15
+ ROOT-manifest field: npm applies it from the top-level project only and ignores a dependency's.
16
+ The field ships inside this package's `package.json` and has no effect there. Measured against the
17
+ published 0.19.5 from a fresh consumer project: `protobufjs@6.11.6`, critical 1 / high 5 —
18
+ unchanged. This repository had already recorded that `allowScripts` is root-only and does not
19
+ transfer; the same property of `overrides` was not carried across, and the claim was written before
20
+ a third-party install was checked.
21
+
22
+ The override is kept, because it does protect this repository's own tree — development, CI and the
23
+ release gate. What changed is the description.
24
+
25
+ ### Security
26
+ - **Consumers who want the critical advisory gone must declare the override themselves.** In the
27
+ CONSUMING project's `package.json`:
28
+
29
+ ```json
30
+ { "overrides": { "protobufjs": "^7.6.3" } }
31
+ ```
32
+
33
+ Measured from a fresh consumer project: `protobufjs@7.6.6`, **critical 0 / high 3**, with the
34
+ local model's real inference intact. The remaining three highs (`@xenova/transformers`, `js-yaml`,
35
+ `sharp`) are unaffected by this and stay recorded, with their re-evaluation triggers, in
36
+ `docs/goals/supply-chain-xenova-2026-09.md`. The durable fix is upstream — an
37
+ `@xenova/transformers` line that does not pull `onnxruntime-web`'s 6.x `protobufjs` — and is not
38
+ something this package can deliver on a consumer's behalf.
39
+
40
+ ## [0.19.5] - 2026-09-11
41
+
42
+ One critical supply-chain advisory removed, by measuring a prediction this project had written down
43
+ and found to be wrong.
44
+
45
+ > **Correction (0.19.6):** the entry below overstates its reach. `overrides` is a ROOT-manifest
46
+ > field — npm applies it only from the top-level project, never from a dependency — so installing
47
+ > this package does **not** change what a consumer resolves. Measured on the published 0.19.5:
48
+ > a consumer still gets `protobufjs@6.11.6`, critical 1 / high 5. The override protects THIS
49
+ > repository's tree (development, CI, the release gate) and nothing else. A consumer who wants it
50
+ > must declare it themselves; see the Security note in 0.19.6.
51
+
52
+ ### Security
53
+ - **`protobufjs` is overridden to 7.x, and the critical advisory is gone** (REQ-601). The arbitrary
54
+ code execution lives in protobufjs's 6.x line, reached three levels down —
55
+ `@xenova/transformers → onnxruntime-web → onnx-proto → protobufjs@6.11.6` — and this project's own
56
+ supply-chain note predicted that overriding it would break `onnx-proto`, which pins 6.x. That
57
+ prediction was **refuted**: the Windows qualification run measured it first (critical 0 / high 3,
58
+ inference intact) and macOS reproduced it with protobufjs as the only variable, verifying import,
59
+ `ModelProto.decode`, and a **real 1024-dimension normalized inference** — the path where
60
+ `onnx-proto` actually decodes a model, which is where a 6→7 incompatibility would surface.
61
+
62
+ | | critical | high | protobufjs |
63
+ |---|---|---|---|
64
+ | 0.19.4 | 1 | 5 | 6.11.6 |
65
+ | **0.19.5** | **0** | **3** | **7.6.6** |
66
+
67
+ A guard reads the **lockfile**, not the manifest: the manifest is the intent and the lock is the
68
+ fact, so asserting the declaration alone would stay green while the override was being ignored —
69
+ and an override that quietly stops applying brings the critical back without a word. The remaining
70
+ three highs (`@xenova/transformers`, `js-yaml`, `sharp`) are untouched and still recorded, with
71
+ their re-evaluation triggers, in `docs/goals/supply-chain-xenova-2026-09.md`.
72
+
8
73
  ## [0.19.4] - 2026-09-10
9
74
 
10
75
  Three Windows diagnoses that pointed the wrong way, found by running the Windows plan on a real
package/README.md CHANGED
@@ -165,6 +165,15 @@ To prepare during installation instead, set `HOLMES_AUTO_MODEL_INSTALL=1` before
165
165
  is never overridden. Models live in `~/.holmes/models` (`%USERPROFILE%\.holmes\models` on Windows);
166
166
  `HOLMES_MODEL_CACHE` overrides that, including for a prepopulated offline cache.
167
167
 
168
+ > **Security note.** This package's dependency chain pulls `protobufjs@6.x` through
169
+ > `@xenova/transformers → onnxruntime-web → onnx-proto`, which carries a critical advisory. npm's
170
+ > `overrides` is a ROOT-manifest field, so we cannot fix this on your behalf — declare it in YOUR
171
+ > `package.json` to resolve it:
172
+ > ```json
173
+ > { "overrides": { "protobufjs": "^7.6.3" } }
174
+ > ```
175
+ > Measured from a fresh install: `critical 1 → 0`, `high 5 → 3`, with local inference intact.
176
+
168
177
  > On **ARM Linux**, install with Node 20 or 22: `tree-sitter@0.21.1` ships no `linux-arm64` prebuild,
169
178
  > so it compiles from source, and that compile fails against Node 24 headers. The failure happens
170
179
  > while npm is still installing dependencies — before Holmes-Kit exists — so `doctor` cannot diagnose
package/dist/.build-id CHANGED
@@ -1 +1 @@
1
- bb0f4497-mtwbj9ia
1
+ b6de96c3-mtx2uyhs
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "//": "@implements A-SPEC-209",
3
3
  "name": "@holmes-lab/holmes-kit",
4
- "version": "0.19.4",
4
+ "version": "0.19.6",
5
5
  "description": "Holmes-Kit — deterministic Agentic Software Engineering (ASE) harness with causal traceability (spec chain + D-CPG + RTM + phase guardrail)",
6
6
  "main": "dist/holmes/mcp/server.js",
7
7
  "types": "dist/holmes/mcp/server.d.ts",
@@ -91,5 +91,8 @@
91
91
  "allowScripts": {
92
92
  "better-sqlite3@12.11.1": true,
93
93
  "sharp@0.32.6": true
94
+ },
95
+ "overrides": {
96
+ "protobufjs": "^7.6.3"
94
97
  }
95
98
  }