circle-ir-ai 2.8.13 → 2.8.14
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 +50 -0
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,56 @@ 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.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [2.8.14] - 2026-06-12
|
|
9
|
+
|
|
10
|
+
### Dependencies
|
|
11
|
+
|
|
12
|
+
- **`circle-ir`** `3.38.0` → `3.39.0` **(exact pin)**. Headline:
|
|
13
|
+
**cross-instance field-binding taint propagation** — `FieldTaintInfo`
|
|
14
|
+
summaries now record constructor-bound fields, setter writers, and
|
|
15
|
+
`@Autowired` / `@Inject` annotated fields. `findFieldBindingTaintPaths()`
|
|
16
|
+
detects local variable assignments from field reads (e.g.
|
|
17
|
+
`local = receiver.field`) and marks the local as tainted when the
|
|
18
|
+
receiver's type owns a tainted field. Also: **caller-body sink
|
|
19
|
+
emission** — after marking caller-side locals as tainted via wrapper
|
|
20
|
+
returns, the engine checks whether any sink in the caller's own
|
|
21
|
+
method body consumes the tainted variable, surfacing cases where the
|
|
22
|
+
final sink (`Paths.get(p)`, `Runtime.exec(cmd)`) lives in the
|
|
23
|
+
caller's file rather than a cross-file callee. Test suite expanded
|
|
24
|
+
1935 → 1939 (4 new Jenkins/Spring DI fixtures).
|
|
25
|
+
- All 643 circle-ir-ai tests (+ 3 skipped) pass against `3.39.0` —
|
|
26
|
+
no API surface changes, drop-in upgrade.
|
|
27
|
+
|
|
28
|
+
## [Unreleased]
|
|
29
|
+
|
|
30
|
+
### Fixed
|
|
31
|
+
|
|
32
|
+
- **`benchmarks/runners/run-cwe-bench-java.ts`** — restore missing
|
|
33
|
+
`findFileRecursive` import from `../lib/find-file.js` (regression
|
|
34
|
+
introduced when `findFile`/`findFileRecursive` were extracted to
|
|
35
|
+
`benchmarks/lib/find-file.ts` per #66; only `findFile` was added to
|
|
36
|
+
the import, leaving the runner crashing at line 550 when it tried to
|
|
37
|
+
locate AntiSamy/ESAPI/Spring-Security config files for cross-file
|
|
38
|
+
context). Benchmark now runs end-to-end on CWE-Bench-Java with
|
|
39
|
+
`--llm-discovery`. Doc-only fix; no version bump (benchmarks/ is not
|
|
40
|
+
in the published `files` array).
|
|
41
|
+
|
|
42
|
+
### Benchmarks
|
|
43
|
+
|
|
44
|
+
- **CWE-Bench-Java refresh on circle-ir@3.38.0** with `gemma3:12b` via
|
|
45
|
+
OpenRouter (`google/gemma-3-12b-it`) — **100/120 strict (83.3%)**,
|
|
46
|
+
100/111 engine-evaluable (90.1%), 1/80 LLM failures (1.3%). **+6
|
|
47
|
+
CVEs over the 2026-06-09 Ollama 3.37.0 baseline** (94/120, 78.3%),
|
|
48
|
+
driven primarily by 3.38.0's frame-agnostic cross-file
|
|
49
|
+
inter-procedural taint walker (cognium-dev#19). gemma3:12b now ranks
|
|
50
|
+
#2 overall, within 4 CVEs of `claude-opus-latest` (104/120). Per-CWE:
|
|
51
|
+
CWE-022 85.5% (flat) · CWE-078 **92.3% (+23pp)** · CWE-079 **83.9%
|
|
52
|
+
(+6.5pp)** · CWE-094 **71.4% (+4.7pp)**. Wall-clock ~17 min (vs ~94
|
|
53
|
+
min local Ollama — ~5.5× speed-up from no GPU contention). Log:
|
|
54
|
+
`benchmarks/results/cwe-java-gemma3-12b-openrouter-2026-06-12.log`.
|
|
55
|
+
One transient HTTP error on OpenRouter (no retry-on-5xx in
|
|
56
|
+
`ax-client.ts` — filed as a follow-up).
|
|
57
|
+
|
|
8
58
|
## [2.8.13] - 2026-06-12
|
|
9
59
|
|
|
10
60
|
### Changed
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "circle-ir-ai",
|
|
3
|
-
"version": "2.8.
|
|
3
|
+
"version": "2.8.14",
|
|
4
4
|
"description": "LLM-enhanced SAST analysis built on circle-ir",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.js",
|
|
@@ -94,7 +94,7 @@
|
|
|
94
94
|
"dependencies": {
|
|
95
95
|
"@ax-llm/ax": "^20.0.0",
|
|
96
96
|
"@mastra/core": "^1.18.0",
|
|
97
|
-
"circle-ir": "3.
|
|
97
|
+
"circle-ir": "3.39.0",
|
|
98
98
|
"minimatch": "^10.2.5",
|
|
99
99
|
"p-queue": "^9.1.0"
|
|
100
100
|
},
|