@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 +65 -0
- package/README.md +9 -0
- package/dist/.build-id +1 -1
- package/package.json +4 -1
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
|
-
|
|
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
|
+
"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
|
}
|