circle-ir-ai 2.37.2 → 2.37.3

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.
Files changed (2) hide show
  1. package/CHANGELOG.md +59 -0
  2. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -5,6 +5,65 @@ 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.37.3] - 2026-07-05
9
+
10
+ Cascade `circle-ir` pin `3.150.0` → `3.152.0` to pick up the two
11
+ `library/*` profile gates shipped in cognium-dev#232 (`cognium-ai#189`).
12
+
13
+ ### What changed
14
+
15
+ - **`circle-ir`**: `3.150.0` → `3.152.0`. Two new taint-graph gates
16
+ key off `graph.ir.meta.projectProfile`:
17
+ - **`library-profile-source-gate`** (3.151.0, cognium-dev#236) —
18
+ drops `interprocedural_param` / `constructor_field` source seeds
19
+ on `library/*` files, eliminating Scenario-B
20
+ `external_taint_escape` (CWE-668) synthesis on API surfaces
21
+ whose callers own their input.
22
+ - **`library-profile-sink-gate`** (3.152.0, cognium-dev#232) —
23
+ drops the entire `log_injection` (CWE-117) sink class on
24
+ `library/*` files before flow generation. Log-format methods on
25
+ a library surface are the caller's responsibility.
26
+ - **Meta.projectProfile contract**: `analyze()` auto-populates
27
+ `result.meta.projectProfile` from `AnalyzerOptions.projectProfile`
28
+ (added in circle-ir 3.150.1 #235). No workflow code change was
29
+ required — the existing `runPatternMatch` thread at
30
+ `src/agents/mastra/workflow.ts:190` already forwards
31
+ `projectProfile` into `analyzerOptions`, so the gate activates
32
+ transparently once the caller supplies a profile (which cognium-ai
33
+ has done since 2.28.0 via `resolveProjectProfileForEngine()` +
34
+ `@cognium/project-profile-detect`).
35
+ - **New test** `tests/engine-project-profile-meta.test.ts` locks the
36
+ auto-population contract with 3 live-engine assertions (string
37
+ form + `Map` form + omitted form). Guards against a silent gate
38
+ no-op if a future circle-ir release ever stops writing the field.
39
+
40
+ ### Expected FP-drop on Tier 2
41
+
42
+ Per cognium-dev#232 ship notes, combined effect on the 12-repo
43
+ Tier 2 golden-TP cohort (profile-detected as `library/production`):
44
+
45
+ | Gate | Contribution |
46
+ | :--- | :--- |
47
+ | Source-side (3.151.0 / #236) | ~35% of Tier 2 H+C |
48
+ | Sink-side (3.152.0 / #232) | ~10% of Tier 2 H+C (~402 findings) |
49
+ | **Combined** | **~45%** |
50
+
51
+ Precision gain lands zero-code on the cognium-ai side once the
52
+ lockfile refreshes against the published engine.
53
+
54
+ ### Verification
55
+
56
+ - `tsc --noEmit` clean against 3.152.0
57
+ - `vitest run` — 1350 tests / 1347 pass / 3 skipped (unchanged from 2.37.2)
58
+ - New `engine-project-profile-meta.test.ts` — 3/3 pass on live analyzer
59
+
60
+ ### Non-goals / not changed
61
+
62
+ - No pass-list or scoring changes on the circle-ir-ai side
63
+ - No workflow.ts or Scanner code change
64
+ - No CHANGELOG update to gate documentation (the gates ship in
65
+ cognium-dev; this note is the cascade record only)
66
+
8
67
  ## [2.37.2] - 2026-07-04
9
68
 
10
69
  Precision refinement: narrow the `UNKNOWN` cap-at-low from 2.37.1 with
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "circle-ir-ai",
3
- "version": "2.37.2",
3
+ "version": "2.37.3",
4
4
  "description": "LLM-enhanced SAST analysis built on circle-ir",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
@@ -97,7 +97,7 @@
97
97
  "@ax-llm/ax": "^20.0.0",
98
98
  "@cognium/project-profile-detect": "^1.1.0",
99
99
  "@mastra/core": "^1.18.0",
100
- "circle-ir": "3.150.0",
100
+ "circle-ir": "3.152.0",
101
101
  "minimatch": "^10.2.5",
102
102
  "p-queue": "^9.1.0"
103
103
  },