agentic-qe 3.8.13 → 3.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/.claude/skills/skills-manifest.json +1 -1
- package/CHANGELOG.md +20 -0
- package/dist/audit/witness-chain.js +15 -3
- package/dist/cli/bundle.js +636 -636
- package/dist/domains/test-generation/generators/base-test-generator.d.ts +1 -1
- package/dist/domains/test-generation/generators/base-test-generator.js +11 -11
- package/dist/domains/test-generation/generators/go-test-generator.js +12 -12
- package/dist/domains/test-generation/generators/junit5-generator.js +9 -9
- package/dist/domains/test-generation/generators/kotlin-junit-generator.js +10 -10
- package/dist/domains/test-generation/generators/pytest-generator.js +8 -8
- package/dist/domains/test-generation/generators/swift-testing-generator.js +8 -8
- package/dist/domains/test-generation/generators/test-value-helpers.d.ts +20 -0
- package/dist/domains/test-generation/generators/test-value-helpers.js +48 -0
- package/dist/domains/test-generation/generators/xunit-generator.js +11 -11
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -2
- package/dist/init/init-wizard-hooks.js +15 -1
- package/dist/init/phases/07-hooks.js +2 -2
- package/dist/init/settings-merge.js +3 -7
- package/dist/mcp/bundle.js +327 -327
- package/dist/mcp/http-server.js +4 -1
- package/dist/mcp/index.d.ts +2 -2
- package/dist/mcp/index.js +5 -4
- package/dist/mcp/protocol-server.d.ts +5 -0
- package/dist/mcp/protocol-server.js +10 -1
- package/package.json +1 -1
- package/dist/mcp/server.d.ts +0 -46
- package/dist/mcp/server.js +0 -802
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,26 @@ All notable changes to the Agentic QE 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
|
+
## [3.8.14] - 2026-03-31
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
|
|
12
|
+
- **Security: SQL injection in witness-chain LIMIT/OFFSET** — Parameterized LIMIT and OFFSET values in `getEntries()` query instead of string interpolation. Also handles offset-without-limit correctly via SQLite `LIMIT -1` idiom, and `limit=0` now properly returns zero rows.
|
|
13
|
+
- **Removed `@faker-js/faker` from 7 production generator files** — Replaced with lightweight `test-value-helpers.ts` using only `node:crypto`. Eliminates ~6 MB runtime dependency for npm consumers. Generators now work without devDependencies installed.
|
|
14
|
+
- **`aqe init` hook paths break from subfolders** — Adopted `CLAUDE_PROJECT_DIR` pattern so hook commands resolve correctly regardless of working directory.
|
|
15
|
+
- **Removed ruflo permissions from `aqe init`** — Only AQE-specific entries are injected into user settings; third-party tool permissions no longer leak in.
|
|
16
|
+
- **Dead MCP `server.ts` removed (911 lines)** — Eliminated unused dual-server divergence risk; production uses `MCPProtocolServer` via `entry.ts`.
|
|
17
|
+
- **CI publishes without test gate** — Added mandatory unit test pass gate to `npm-publish.yml`. Removed `continue-on-error` from `optimized-ci.yml` test steps.
|
|
18
|
+
- **ESLint broken in ESM project** — Renamed `.eslintrc.js` to `.eslintrc.cjs` for CommonJS compatibility.
|
|
19
|
+
- **Hardcoded version `3.0.0` in MCP servers** — `protocol-server.ts` and `http-server.ts` now read version dynamically from `package.json`.
|
|
20
|
+
- **Vitest process hang on native modules** — Added worker-level `afterAll` force-exit and global teardown safety net for `better-sqlite3` / `hnswlib-node` handles.
|
|
21
|
+
|
|
22
|
+
### Added
|
|
23
|
+
|
|
24
|
+
- **`test-value-helpers.ts`** — Zero-dependency test data generator for test-generation domain using `node:crypto` built-ins with range guards for edge cases.
|
|
25
|
+
- **Pagination edge case tests** — `limit=0`, offset-without-limit, and offset-beyond-total coverage in witness-chain tests.
|
|
26
|
+
- **17 unit tests for test-value-helpers** — Covers all value generators including boundary inputs and inverted ranges.
|
|
27
|
+
|
|
8
28
|
## [3.8.13] - 2026-03-30
|
|
9
29
|
|
|
10
30
|
### Added
|
|
@@ -190,9 +190,21 @@ export class WitnessChain {
|
|
|
190
190
|
params.push(filter.actor);
|
|
191
191
|
}
|
|
192
192
|
const where = conditions.length > 0 ? `WHERE ${conditions.join(' AND ')}` : '';
|
|
193
|
-
const
|
|
194
|
-
const
|
|
195
|
-
|
|
193
|
+
const hasLimit = filter?.limit != null;
|
|
194
|
+
const hasOffset = filter?.offset != null;
|
|
195
|
+
// SQLite requires LIMIT before OFFSET; use LIMIT -1 ("all rows") when only offset is given
|
|
196
|
+
const limitClause = hasLimit ? 'LIMIT ?' : (hasOffset ? 'LIMIT ?' : '');
|
|
197
|
+
const offsetClause = hasOffset ? 'OFFSET ?' : '';
|
|
198
|
+
if (hasLimit) {
|
|
199
|
+
params.push(filter.limit);
|
|
200
|
+
}
|
|
201
|
+
else if (hasOffset) {
|
|
202
|
+
params.push(-1);
|
|
203
|
+
}
|
|
204
|
+
if (hasOffset) {
|
|
205
|
+
params.push(filter.offset);
|
|
206
|
+
}
|
|
207
|
+
return this.db.prepare(`SELECT * FROM witness_chain ${where} ORDER BY id ASC ${limitClause} ${offsetClause}`).all(...params);
|
|
196
208
|
}
|
|
197
209
|
/** Get all witness entries for a pattern by ID (checks both patternId and pattern_id keys). */
|
|
198
210
|
getPatternLineage(patternId) {
|