agentic-qe 3.7.19 → 3.7.20
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 +7 -0
- package/dist/cli/bundle.js +9 -7
- package/dist/governance/continue-gate-integration.js +1 -1
- package/dist/governance/feature-flags.js +2 -2
- package/dist/init/settings-merge.js +2 -0
- package/dist/mcp/bundle.js +5 -5
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,13 @@ 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.7.20] - 2026-03-12
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
|
|
12
|
+
- **Duplicate brain-checkpoint hooks on re-init** — Running `aqe init --auto` multiple times accumulated 4x copies of brain-checkpoint verify/export hooks in settings.json, potentially blocking tool calls for up to 4 minutes. Added `brain-checkpoint.cjs` and `.claude/helpers/` to the AQE hook detection patterns so `mergeHooksSmart()` correctly deduplicates them. (#344)
|
|
13
|
+
- **Governance time budget blocking requirements_validate and coverage_analyze_sublinear** — The continue-gate's `budgetRemaining.timeMs` was measuring total session elapsed time instead of idle time since last action. After 5+ minutes of normal usage, the WASM gate would return "Budget exhausted: time" even when tools were actively running. Fixed the calculation to reference last action timestamp and increased the default idle timeout from 5 to 15 minutes. (#345)
|
|
14
|
+
|
|
8
15
|
## [3.7.18] - 2026-03-11
|
|
9
16
|
|
|
10
17
|
### Fixed
|
package/dist/cli/bundle.js
CHANGED
|
@@ -49930,8 +49930,8 @@ var DEFAULT_GOVERNANCE_FLAGS = {
|
|
|
49930
49930
|
enabled: true,
|
|
49931
49931
|
maxConsecutiveRetries: 3,
|
|
49932
49932
|
reworkRatioThreshold: 0.5,
|
|
49933
|
-
idleTimeoutMs:
|
|
49934
|
-
//
|
|
49933
|
+
idleTimeoutMs: 15 * 60 * 1e3,
|
|
49934
|
+
// 15 minutes
|
|
49935
49935
|
throttleOnExceed: true
|
|
49936
49936
|
},
|
|
49937
49937
|
memoryWriteGate: {
|
|
@@ -50066,7 +50066,7 @@ function loadFlagsFromEnv() {
|
|
|
50066
50066
|
enabled: env.GOVERNANCE_CONTINUE_GATE !== "false",
|
|
50067
50067
|
maxConsecutiveRetries: parseInt(env.GOVERNANCE_MAX_RETRIES || "3", 10),
|
|
50068
50068
|
reworkRatioThreshold: parseFloat(env.GOVERNANCE_REWORK_THRESHOLD || "0.5"),
|
|
50069
|
-
idleTimeoutMs: parseInt(env.GOVERNANCE_IDLE_TIMEOUT || "
|
|
50069
|
+
idleTimeoutMs: parseInt(env.GOVERNANCE_IDLE_TIMEOUT || "900000", 10),
|
|
50070
50070
|
throttleOnExceed: env.GOVERNANCE_THROTTLE !== "false"
|
|
50071
50071
|
},
|
|
50072
50072
|
memoryWriteGate: {
|
|
@@ -50390,7 +50390,7 @@ var ContinueGateIntegration = class _ContinueGateIntegration {
|
|
|
50390
50390
|
budgetRemaining: {
|
|
50391
50391
|
tokens: Math.max(0, flags.maxConsecutiveRetries * 10 * 500 - history.length * 500),
|
|
50392
50392
|
toolCalls: Math.max(0, flags.maxConsecutiveRetries * 10 - history.length),
|
|
50393
|
-
timeMs: Math.max(0, flags.idleTimeoutMs - (history.length > 0 ? Date.now() - history[
|
|
50393
|
+
timeMs: Math.max(0, flags.idleTimeoutMs - (history.length > 0 ? Date.now() - history[history.length - 1].timestamp : 0))
|
|
50394
50394
|
},
|
|
50395
50395
|
recentDecisions: []
|
|
50396
50396
|
};
|
|
@@ -135299,7 +135299,7 @@ var ALL_DOMAINS2 = [
|
|
|
135299
135299
|
"enterprise-integration"
|
|
135300
135300
|
];
|
|
135301
135301
|
function getAQEVersion() {
|
|
135302
|
-
return true ? "3.7.
|
|
135302
|
+
return true ? "3.7.20" : "3.0.0";
|
|
135303
135303
|
}
|
|
135304
135304
|
function createDefaultConfig(projectName, projectRoot) {
|
|
135305
135305
|
return {
|
|
@@ -136509,7 +136509,9 @@ var AQE_COMMAND_PATTERNS = [
|
|
|
136509
136509
|
/\baqe\b/i,
|
|
136510
136510
|
/\bagentic-qe\b/i,
|
|
136511
136511
|
/\bnpx\s+agentic-qe\b/i,
|
|
136512
|
-
/\bnpx\s+@anthropics\/agentic-qe\b/i
|
|
136512
|
+
/\bnpx\s+@anthropics\/agentic-qe\b/i,
|
|
136513
|
+
/brain-checkpoint\.cjs/i,
|
|
136514
|
+
/\.claude\/helpers\//i
|
|
136513
136515
|
];
|
|
136514
136516
|
function isAqeHookEntry(entry) {
|
|
136515
136517
|
const hookEntry = entry;
|
|
@@ -166104,7 +166106,7 @@ async function cleanupAndExit(code = 0) {
|
|
|
166104
166106
|
process.exit(code);
|
|
166105
166107
|
}
|
|
166106
166108
|
var program = new Command21();
|
|
166107
|
-
var VERSION = true ? "3.7.
|
|
166109
|
+
var VERSION = true ? "3.7.20" : "0.0.0-dev";
|
|
166108
166110
|
program.name("aqe").description("Agentic QE - Domain-Driven Quality Engineering").version(VERSION);
|
|
166109
166111
|
var registry2 = createCommandRegistry(context, cleanupAndExit, ensureInitialized, ensureInitializedStrict);
|
|
166110
166112
|
registry2.registerAll(program);
|
|
@@ -153,7 +153,7 @@ export class ContinueGateIntegration {
|
|
|
153
153
|
budgetRemaining: {
|
|
154
154
|
tokens: Math.max(0, (flags.maxConsecutiveRetries * 10 * 500) - (history.length * 500)),
|
|
155
155
|
toolCalls: Math.max(0, (flags.maxConsecutiveRetries * 10) - history.length),
|
|
156
|
-
timeMs: Math.max(0, flags.idleTimeoutMs - (history.length > 0 ? Date.now() - history[
|
|
156
|
+
timeMs: Math.max(0, flags.idleTimeoutMs - (history.length > 0 ? Date.now() - history[history.length - 1].timestamp : 0)),
|
|
157
157
|
},
|
|
158
158
|
recentDecisions: [],
|
|
159
159
|
};
|
|
@@ -16,7 +16,7 @@ export const DEFAULT_GOVERNANCE_FLAGS = {
|
|
|
16
16
|
enabled: true,
|
|
17
17
|
maxConsecutiveRetries: 3,
|
|
18
18
|
reworkRatioThreshold: 0.5,
|
|
19
|
-
idleTimeoutMs:
|
|
19
|
+
idleTimeoutMs: 15 * 60 * 1000, // 15 minutes
|
|
20
20
|
throttleOnExceed: true,
|
|
21
21
|
},
|
|
22
22
|
memoryWriteGate: {
|
|
@@ -124,7 +124,7 @@ export function loadFlagsFromEnv() {
|
|
|
124
124
|
enabled: env.GOVERNANCE_CONTINUE_GATE !== 'false',
|
|
125
125
|
maxConsecutiveRetries: parseInt(env.GOVERNANCE_MAX_RETRIES || '3', 10),
|
|
126
126
|
reworkRatioThreshold: parseFloat(env.GOVERNANCE_REWORK_THRESHOLD || '0.5'),
|
|
127
|
-
idleTimeoutMs: parseInt(env.GOVERNANCE_IDLE_TIMEOUT || '
|
|
127
|
+
idleTimeoutMs: parseInt(env.GOVERNANCE_IDLE_TIMEOUT || '900000', 10),
|
|
128
128
|
throttleOnExceed: env.GOVERNANCE_THROTTLE !== 'false',
|
|
129
129
|
},
|
|
130
130
|
memoryWriteGate: {
|
package/dist/mcp/bundle.js
CHANGED
|
@@ -33406,7 +33406,7 @@ function loadFlagsFromEnv() {
|
|
|
33406
33406
|
enabled: env.GOVERNANCE_CONTINUE_GATE !== "false",
|
|
33407
33407
|
maxConsecutiveRetries: parseInt(env.GOVERNANCE_MAX_RETRIES || "3", 10),
|
|
33408
33408
|
reworkRatioThreshold: parseFloat(env.GOVERNANCE_REWORK_THRESHOLD || "0.5"),
|
|
33409
|
-
idleTimeoutMs: parseInt(env.GOVERNANCE_IDLE_TIMEOUT || "
|
|
33409
|
+
idleTimeoutMs: parseInt(env.GOVERNANCE_IDLE_TIMEOUT || "900000", 10),
|
|
33410
33410
|
throttleOnExceed: env.GOVERNANCE_THROTTLE !== "false"
|
|
33411
33411
|
},
|
|
33412
33412
|
memoryWriteGate: {
|
|
@@ -33533,8 +33533,8 @@ var init_feature_flags = __esm({
|
|
|
33533
33533
|
enabled: true,
|
|
33534
33534
|
maxConsecutiveRetries: 3,
|
|
33535
33535
|
reworkRatioThreshold: 0.5,
|
|
33536
|
-
idleTimeoutMs:
|
|
33537
|
-
//
|
|
33536
|
+
idleTimeoutMs: 15 * 60 * 1e3,
|
|
33537
|
+
// 15 minutes
|
|
33538
33538
|
throttleOnExceed: true
|
|
33539
33539
|
},
|
|
33540
33540
|
memoryWriteGate: {
|
|
@@ -33894,7 +33894,7 @@ var init_continue_gate_integration = __esm({
|
|
|
33894
33894
|
budgetRemaining: {
|
|
33895
33895
|
tokens: Math.max(0, flags.maxConsecutiveRetries * 10 * 500 - history.length * 500),
|
|
33896
33896
|
toolCalls: Math.max(0, flags.maxConsecutiveRetries * 10 - history.length),
|
|
33897
|
-
timeMs: Math.max(0, flags.idleTimeoutMs - (history.length > 0 ? Date.now() - history[
|
|
33897
|
+
timeMs: Math.max(0, flags.idleTimeoutMs - (history.length > 0 ? Date.now() - history[history.length - 1].timestamp : 0))
|
|
33898
33898
|
},
|
|
33899
33899
|
recentDecisions: []
|
|
33900
33900
|
};
|
|
@@ -175214,7 +175214,7 @@ async function handleAQEHealth() {
|
|
|
175214
175214
|
success: true,
|
|
175215
175215
|
data: {
|
|
175216
175216
|
status: healthStatus,
|
|
175217
|
-
version: true ? "3.7.
|
|
175217
|
+
version: true ? "3.7.20" : "3.7.2",
|
|
175218
175218
|
loadedDomains: domainCount,
|
|
175219
175219
|
memory: memoryStats,
|
|
175220
175220
|
hnsw: hnswStats,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agentic-qe",
|
|
3
|
-
"version": "3.7.
|
|
3
|
+
"version": "3.7.20",
|
|
4
4
|
"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",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|