circle-ir-ai 2.8.21 → 2.8.22

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 +71 -0
  2. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -5,6 +5,48 @@ 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.22] - 2026-06-16
9
+
10
+ ### Changed — bump `circle-ir` 3.48.0 → 3.49.0
11
+
12
+ Pulls in upstream additive sink/pass coverage with no API surface
13
+ changes. Visible to cognium-ai users without any engine-side work:
14
+
15
+ - **`insecure-cookie` pattern pass for JavaScript/TypeScript (CWE-614,
16
+ circle-ir#43)** — scans `res.cookie(...)` / `reply.cookie(...)`
17
+ invocations for missing `secure: true` / `httpOnly: true` flags.
18
+ Pattern-based, no taint required. One finding per call site,
19
+ severity `medium`.
20
+ - **`log_injection` sinks for Java + JavaScript/TypeScript (CWE-117,
21
+ circle-ir#44)** — slf4j/logback `Logger.info`/`warn`/`error`/etc.
22
+ and `java.util.logging.Logger` for Java; `console.log`/`warn`/`error`/
23
+ `info`/`debug`/`trace` for JS/TS. Severity `low`.
24
+ - **`nosql_injection` (CWE-943) mongoose Model/Query fluent-chain
25
+ coverage (circle-ir#45)** — closes the gap where
26
+ `User.findOne({ username })` and friends didn't fire because the
27
+ receiver doesn't resolve to `Collection`. Adds `Model` /`Query`
28
+ class entries plus classless `findOne`/`updateOne`/`aggregate`/…
29
+ for JS/TS.
30
+ - **Classless `open_redirect` (CWE-601) entry for Express
31
+ `res.redirect()` (circle-ir#46)** — removes the receiver-type
32
+ resolution dependency for the Express response object.
33
+ - **Python `path_traversal` sanitizers for `os.path.realpath` and
34
+ `os.path.abspath` (circle-ir#48 pt 2)** — Python equivalents of
35
+ Java's `File.getCanonicalPath`; cuts the canonical-path FP class on
36
+ Python codebases.
37
+ - **Rust actix-web / axum typed extractors now produce taint flows
38
+ (circle-ir#71)** — three fixes in the upstream taint matcher /
39
+ language-sources / propagation passes so `web::Path<…>` /
40
+ `axum::extract::Path<…>` are recognised as sources, source `type`
41
+ is selected per extractor kind (`Form`/`Query`/`Path` →
42
+ `http_param`; `Json`/`Body`/`Bytes`/`Multipart` → `http_body`),
43
+ and source `variable` is attached so propagation can fire.
44
+ Mostly improves Rust HTTP framework detection (axum, actix-web).
45
+
46
+ No circle-ir-ai source change in this release — it's a dep-only bump
47
+ to surface the upstream additive coverage to cognium-ai / circle-pack
48
+ / mcp-server consumers.
49
+
8
50
  ## [2.8.21] - 2026-06-15
9
51
 
10
52
  ### Fixed — capability_mismatch severity inversion for over-declared capabilities (cognium-ai#100 Bug #2)
@@ -49,6 +91,35 @@ real vulnerability-bearing files). Test updated to assert the new
49
91
  default. No production behaviour change — `prepublishOnly` was
50
92
  blocking publish on the stale assertion.
51
93
 
94
+ ### Changed — bundled LLM throughput defaults (2026-06-14, undocumented in 2.8.20)
95
+
96
+ `src/llm/ax-client.ts` raised three defaults to match modern hosted
97
+ LLM headroom — committed alongside the 2.8.20 → 2.8.21 work but not
98
+ called out in 2.8.20's CHANGELOG. Recording here for traceability:
99
+
100
+ - `MAX_CODE_CONTEXT_LENGTH` `8000` → `32000` chars (env
101
+ `LLM_MAX_CODE_CONTEXT` overrides).
102
+ - `LLM_MAX_CONCURRENT` `5` → `10` (env override unchanged).
103
+ - `LLM_RATE_LIMIT` `10` → `20` req/s (env override unchanged).
104
+
105
+ Override individually via env to restore the previous limits on
106
+ constrained backends.
107
+
108
+ ### Changed — big-file / minified-shape skip guard (mastra swarm path)
109
+
110
+ `src/agents/mastra/swarm.ts` now short-circuits per-file analysis
111
+ when content exceeds `LLM_MAX_FILE_BYTES` (default 500 KB) or
112
+ matches a minified-shape heuristic (longest line > 5000 chars, or
113
+ avg line > 500 chars). Minified bundles (e.g. `mermaid.min.js` at
114
+ ~18k parse errors) and giant generated files (~140 kLOC AWS SDK
115
+ marshallers) thrash tree-sitter without producing useful findings;
116
+ skipping them up-front saves 30 s – 3 min per file vs hitting the
117
+ analysis timeout. Surfaced through the same `[SKIP]` stderr marker
118
+ introduced in cognium-ai#88. Also tightened LLM-mode timeout
119
+ defaults (`llmEnrichmentMs`/`llmVerificationMs` 60 s → 45 s,
120
+ `llmMaxMs` 180 s → 120 s) for fail-fast behaviour on real-world
121
+ mixes.
122
+
52
123
  ## [2.8.20] - 2026-06-13
53
124
 
54
125
  ### Changed — circle-ir 3.39.0 → 3.48.0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "circle-ir-ai",
3
- "version": "2.8.21",
3
+ "version": "2.8.22",
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.48.0",
97
+ "circle-ir": "3.49.0",
98
98
  "minimatch": "^10.2.5",
99
99
  "p-queue": "^9.1.0"
100
100
  },