chore(release): prepare v3.13.5

This commit is contained in:
Dragan Spiridonov
2026-08-03 11:07:00 +00:00
parent faae6e9bc5
commit 0453350d72
7 changed files with 125 additions and 15 deletions
+48
View File
@@ -5,6 +5,54 @@ All notable changes to the Agentic QE project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [3.13.5] - 2026-08-03
Quality decisions and generated tests now carry evidence that reflects what AQE
actually measured or executed, while initialization and embedding workflows are
more reliable across supported environments.
### Added
- **Measured quality-gate evidence** ([#596]). CLI and MCP quality evaluation
now share canonical thresholds and require fresh, attributed measurements for
coverage, passing tests, critical bugs, code smells, security findings,
technical debt, and duplication. Missing, malformed, or stale evidence fails
closed instead of silently receiving a fabricated passing value.
- **Optional status-line installation** ([#591]). `aqe init --no-statusline`
skips AQE's status line, removes an existing AQE-owned status line during an
upgrade, and preserves a project-authored status line.
### Fixed
- **Generated tests are trustworthy and executable** ([#577]). Test generation
preserves framework imports, validates evidence before reporting success, and
no longer treats structurally incomplete output as a passing quality result.
- **Node's built-in test runner is honored end to end** ([#592]). Test discovery
filters Node test files correctly, execution uses the selected framework, and
retry confidence remains bounded.
- **Batch embedding semantics are consistent** ([#585]). Mixed batches send only
semantic content to the embedding provider, nonsemantic entries receive zero
vectors in their original positions, and all-nonsemantic batches avoid
provider initialization entirely.
- **HNSW initialization works in native ESM** ([#586]). Runtime dependency
loading no longer assumes a CommonJS global `require`.
- **Learning-engine tests use isolated persistence** ([#588]), preventing shared
worker databases from accumulating duplicate genesis data and causing long
test runs.
### Changed
- Refreshed bundled Claude helpers and development-only Ruflo dependencies,
including upstream security and compatibility fixes.
[#577]: https://github.com/proffesor-for-testing/agentic-qe/issues/577
[#585]: https://github.com/proffesor-for-testing/agentic-qe/issues/585
[#586]: https://github.com/proffesor-for-testing/agentic-qe/issues/586
[#588]: https://github.com/proffesor-for-testing/agentic-qe/issues/588
[#591]: https://github.com/proffesor-for-testing/agentic-qe/issues/591
[#592]: https://github.com/proffesor-for-testing/agentic-qe/issues/592
[#596]: https://github.com/proffesor-for-testing/agentic-qe/issues/596
## [3.13.4] - 2026-08-02
Codex users now receive a complete, upgradeable Agentic QE workflow instead of
+1 -1
View File
@@ -940,7 +940,7 @@
},
"metadata": {
"generatedBy": "Agentic QE Fleet",
"fleetVersion": "3.13.4",
"fleetVersion": "3.13.5",
"manifestVersion": "1.4.0",
"lastUpdated": "2026-04-13T00:00:00.000Z",
"contributors": [
+1
View File
@@ -4,6 +4,7 @@ All Agentic QE release notes organized by version.
| Version | Date | Highlights |
|---------|------|------------|
| [v3.13.5](v3.13.5.md) | 2026-08-03 | Measured quality gates and trustworthy cross-framework test execution. |
| [v3.13.4](v3.13.4.md) | 2026-08-02 | Reliable Codex fleet setup, upgrades, hooks, and verification. |
| [v3.13.3](v3.13.3.md) | 2026-07-29 | Learning capture no longer stops silently under `AQE_DISABLE_WAL` (it now refuses to write in an unsafe journal mode and names what is holding the DB), and QE-Court's shipped panel no longer violates its own `writerIsNeverJuror` rule (#576). |
| [v3.13.2](v3.13.2.md) | 2026-07-24 | Stops hook-driven `brain.rvf`/`patterns.rvf` corruption loops by closing native stores after every hook and protecting same-process live locks (#574). |
+61
View File
@@ -0,0 +1,61 @@
# v3.13.5 Release Notes
**Release Date:** 2026-08-03
## Highlights
AQE now bases quality decisions on fresh, attributed measurements and produces
more trustworthy, executable tests across Jest, Vitest, and Node's built-in test
runner. Initialization and embeddings are also more reliable in real projects.
## Added
- Canonical quality evidence for coverage, passing tests, bugs, code smells,
security findings, technical debt, and duplication.
- Shared CLI and MCP quality thresholds that fail closed when measurements are
missing, malformed, or stale.
- `aqe init --no-statusline` for installations that do not want AQE's status
line, without disturbing a project-authored status line.
## Fixed
- Generated tests retain the correct framework imports and must satisfy
evidence-backed validation before AQE reports success.
- Node test discovery, execution, and retry behavior now honor the selected
framework consistently.
- Mixed embedding batches preserve output order while excluding nonsemantic
content from provider calls; entirely nonsemantic batches make no provider
call.
- HNSW runtime loading works when AQE is imported as native ESM.
- Learning-engine unit tests no longer share persistence across test cases.
## Changed
- Refreshed bundled Claude helpers.
- Updated development-only Ruflo UI and tooling dependencies, including upstream
security fixes.
## Upgrade notes
No configuration migration is required. Existing installations can upgrade and
refresh their managed assets normally:
```bash
npx agentic-qe init --auto --upgrade
```
Projects that want to remove only AQE's managed status line can run:
```bash
npx agentic-qe init --auto --upgrade --no-statusline
```
Project-authored status-line configuration is preserved.
Tracking: [#577](https://github.com/proffesor-for-testing/agentic-qe/issues/577),
[#585](https://github.com/proffesor-for-testing/agentic-qe/issues/585),
[#586](https://github.com/proffesor-for-testing/agentic-qe/issues/586),
[#588](https://github.com/proffesor-for-testing/agentic-qe/issues/588),
[#591](https://github.com/proffesor-for-testing/agentic-qe/issues/591),
[#592](https://github.com/proffesor-for-testing/agentic-qe/issues/592), and
[#596](https://github.com/proffesor-for-testing/agentic-qe/issues/596).
+2 -2
View File
@@ -1,12 +1,12 @@
{
"name": "agentic-qe",
"version": "3.13.4",
"version": "3.13.5",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "agentic-qe",
"version": "3.13.4",
"version": "3.13.5",
"hasInstallScript": true,
"license": "MIT",
"dependencies": {
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "agentic-qe",
"version": "3.13.4",
"version": "3.13.5",
"description": "Agentic Quality Engineering V3 - Domain-Driven Design Architecture with 13 Bounded Contexts, O(log n) coverage analysis, ReasoningBank learning, 60 specialized QE agents, mathematical Coherence verification, deep Claude Flow integration",
"type": "module",
"main": "./dist/index.js",
@@ -71,7 +71,7 @@
"test:unit:fast": "vitest run --exclude='**/qe-reasoning-bank.test.ts' --exclude='**/qe-reasoning-bank-feedback-loop.test.ts' --exclude='**/aqe-learning-engine.test.ts' --exclude='**/aqe-learning-engine-patterns.test.ts' tests/unit/adapters tests/unit/shared tests/unit/cli tests/unit/learning tests/unit/kernel tests/unit/workers tests/unit/routing tests/unit/strange-loop tests/unit/sync tests/unit/feedback tests/unit/error-paths tests/unit/early-exit tests/unit/causal-discovery tests/unit/neural-optimizer tests/unit/test-scheduling tests/unit/logging tests/unit/validation tests/unit/memory tests/unit/performance tests/unit/scripts tests/unit/planning",
"test:unit:heavy": "vitest run tests/unit/coordination tests/unit/domains tests/unit/integrations tests/unit/optimization tests/unit/init --exclude='**/browser/**' --exclude='**/*.e2e.test.ts' --exclude='**/vibium/**' --exclude='**/browser-swarm-coordinator.test.ts'",
"test:unit:mcp": "vitest run tests/unit/mcp --exclude='**/mcp/handlers/domain-handlers.test.ts' --fileParallelism=false",
"test:ci": "vitest run --exclude='**/browser/**' --exclude='**/*.e2e.test.ts' --exclude='**/vibium/**' --exclude='**/integration/browser/**' --exclude='**/browser-swarm-coordinator.test.ts' --exclude='**/mcp/handlers/domain-handlers.test.ts'",
"test:ci": "vitest run --exclude='**/browser/**' --exclude='**/*.e2e.test.ts' --exclude='**/vibium/**' --exclude='**/integration/browser/**' --exclude='**/browser-swarm-coordinator.test.ts' --exclude='**/mcp/handlers/domain-handlers.test.ts' --exclude='**/fixtures/init-corpus/**'",
"test:e2e": "vitest run tests/integration/browser --testTimeout=120000",
"test:safe": "NODE_OPTIONS='--max-old-space-size=768 --expose-gc' vitest run --maxForks=1",
"test:dev": "npm run test:unit:fast",
@@ -13,7 +13,7 @@
* in production, written by sentence-transformers/all-MiniLM-L6-v2-style
* models) and verifies:
*
* 1. Self-query returns id=self with score 1.0 (exact-match recall)
* 1. Self-query returns an exact vector match with score 1.0
* 2. Top-10 recall vs brute-force ground truth = 100%
* 3. Repeated for several random query vectors to rule out one-off luck
* 4. Vectors persisted in memory.db deserialize correctly into the backend
@@ -183,7 +183,7 @@ describe('NativeHnswBackend — real qe-kernel fixture (#399)', () => {
);
it.runIf(fixture !== null && fixture.length >= 100)(
'should hit recall@10 >= 0.9 and top-1 == self on real qe-kernel embeddings',
'should hit recall@10 >= 0.9 with an exact top match on real qe-kernel embeddings',
() => {
const pool = fixture!;
const backend = new NativeHnswBackend({
@@ -209,13 +209,12 @@ describe('NativeHnswBackend — real qe-kernel fixture (#399)', () => {
// them based on entry-point luck. 90-100% recall@10 is the
// standard approximate-HNSW guarantee.
//
// The TOP-1 self-match assertion is the strict bug-detector — it's
// mathematically impossible to fail unless HNSW is fundamentally
// broken (which is exactly what @ruvector/router 0.1.28 was: it
// returned random non-neighbors with recall@10 = 0% to 10%). Anything
// above 0.5 recall@10 here would already be a clear pass. We hold
// the bar at 0.9 to catch tuning regressions while accepting the
// legitimate plateau-region behavior of real embeddings.
// The TOP-1 exact-vector assertion is the strict bug-detector. Several
// real fixture rows can contain byte-identical embeddings, so requiring
// the queried row's numeric id would make the result depend on arbitrary
// tie-breaking. @ruvector/router 0.1.28 returned random non-neighbors
// with recall@10 = 0% to 10%; requiring an exact top result still catches
// that failure while accepting indistinguishable duplicate vectors.
const RECALL_FLOOR = 0.9;
for (const queryIdx of [
@@ -234,7 +233,8 @@ describe('NativeHnswBackend — real qe-kernel fixture (#399)', () => {
const recallAt10 =
[...groundTruthIds].filter((id) => hitIds.has(id)).length / groundTruthIds.size;
expect(results[0].id).toBe(queryIdx); // self MUST be top-1 (exact-match guarantee)
expect(pool[results[0].id].vector).toEqual(queryVector);
expect(results[0].score).toBeGreaterThanOrEqual(0.999);
expect(recallAt10).toBeGreaterThanOrEqual(RECALL_FLOOR);
}