The start() method checks for pre-existing tunnels before spawning
gcloud. Tests were not accounting for this checkPort() call, causing
mock connections to succeed prematurely and skip spawn entirely.
Added setupPortCheckMock() helper that fails the pre-spawn check
(simulating no existing tunnel) and succeeds on post-spawn checks.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Fixes#243 (agent parse errors on helper/README files) and #244 (YAML
parser returns {} for empty arrays causing TypeError in mergeConfigs).
- Move helpers install to .claude/helpers/v3/ to avoid claude doctor
parsing .md reference files as agent definitions
- Write agents index to .claude/docs/ instead of .claude/agents/v3/
- Add post-parse normalization for known array fields in YAML parser
- Add Array.isArray guard in mergeConfigs for disabled domains
- Update helper path references in quality-criteria-service and agents
- Add 2 regression tests for Issue #244 scenarios
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Enable cloud sync to Google Cloud PostgreSQL (IAP tunnel) for
continuous data backup. Fix tunnel manager to detect and reuse
existing external tunnels instead of failing on port conflicts.
- Set AQE_CLOUD_SYNC_ENABLED=true in MCP config
- Enable sync in cloud-db-config.json
- Add external tunnel detection in IAPTunnelManager.start()
- Add gcloud CLI permission to local settings
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Use captured `now` timestamp instead of new Date() for record creation,
and add 1s buffer to end time to prevent race condition in slow CI.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Separate display string from regex-safe string so CodeQL can verify
dots are properly escaped before flowing into RegExp constructor.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
ADR-064 Agent Teams integration, distributed tracing, competing hypotheses,
dynamic scaling, federation mailbox, circuit breakers, task DAG scheduling,
HNSW graph indexing, pattern training pipeline, and Devils Advocate agent.
Also restructured README with separate release notes, fixed release skill
with real CLI commands and npm scripts.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Document the correct release workflow: create GitHub Release triggers
npm-publish.yml (not publish-v3-alpha.yml). Prevents using wrong
workflow for production releases.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Fix leftover references to 12 domains (now 13 with enterprise-integration),
44/51 agents (now 52 main + 7 TDD = 59 total), and 12/12 domain integration
references across both README files.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
NODE_OPTIONS=--max-old-space-size=2048 is inherited by ALL forked vitest
workers. With 3 processes × 2GB = 6GB for tests + VS Code (~2GB) + Claude
(~5GB), the 8GB container cgroup limit was exceeded even with maxForks=2.
Fix: npm test script overrides NODE_OPTIONS to 1024MB per process.
3 × 1GB = 3GB leaves headroom for other processes.
Verified: 469/471 test files pass, 15,851 tests pass, zero OOM kills.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Action 1: Tool-call signature tracking with FNV-1a hashing and 3-strike
loop detection in anti-drift-middleware. Integrates with strange-loop
healing controller and ReasoningBank for pattern learning.
Action 2: Token usage dashboard with session cost summaries in budget
enforcer, token tracker, and optimizer service. Adds --dashboard CLI
flag and MCP tool operation.
40 new tests (27 loop detection + 13 anti-drift), all passing.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Four separate findProjectRoot() implementations with different logic caused
data to split between /.agentic-qe/memory.db and /v3/.agentic-qe/memory.db.
Consolidated to single canonical implementation that checks AQE_PROJECT_ROOT
env var first, then walks up for .agentic-qe/, .git, package.json markers.
- kernel.ts, base.ts, claude-flow-bridge.ts: import canonical findProjectRoot
- claude-flow-bridge.ts: fix 2 hardcoded v3/.agentic-qe/memory.db paths
- post-task-sync.sh: fix hardcoded v3/.agentic-qe/memory.db path
- unified-memory.ts: add warnIfDuplicateDatabases() startup guard
- vitest.config.ts: set AQE_PROJECT_ROOT so tests use repo root db
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1. Remove auto-generated benchmark reports (v3/docs/reports/) - ~6k lines of noise
2. Merge origin/main to resolve dirty merge state (PRs #237-#241)
3. Rename ADR-059 to ADR-063 to avoid conflict with ADR-059-ghost-intent-coverage on main
4. Update all 19 cross-references from ADR-059 to ADR-063
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
CI runners have NODE_OPTIONS='--max-old-space-size=1024'. With 6 parallel
forks, workers OOM and crash with RPC errors. Restore fileParallelism:false
and maxForks:2 for CI while keeping parallel forks for local dev.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The 3-batch approach works locally but fails in CI where the single
vitest instance has always worked (7GB RAM). Keep test:unit as 3-batch
for local dev, test:ci as single-instance for CI.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add three AISP-inspired ADR implementations wired to user-facing surfaces,
and fix the test suite to run reliably with a 3-batch architecture.
ADR-059: Ghost Intent Coverage — detect untested behavioral intents via
CLI --ghost flag and MCP gaps tool.
ADR-060: Semantic Anti-Drift Middleware — auto-registered in kernel init
with cosine similarity event pipeline validation.
ADR-061: Asymmetric Learning Rates — 10:1 penalty-to-reward ratio wired
to test execution outcomes and learning stats display.
Test suite: split into fast/heavy/mcp batches to avoid vitest module
transform overhead (14s/file at 316+ files) and MCP fleet init deadlock.
12,764 tests pass across 377 files.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add project boundary rules learned from usage insights to prevent
recurring friction: AQE scope boundaries, v3-only DB policy, real-test
enforcement, production safety gates, version grep before releases,
and user-friendly PR conventions.
Create three custom skills (/release, /pr-review, /debug-loop) for
internal project use — not included in aqe init scaffolding.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The version upgrade detection wasn't working because context.config.version
was always "3.0.0" (hardcoded) instead of the actual package version.
Changes:
- Add getAQEVersion() helper that reads __CLI_VERSION__ build constant
- Update self-configurator, init-wizard, config-migrator, database phase,
learning phase, and types.ts to use dynamic version
- Bump to v3.5.4
This fixes the --auto upgrade not updating skills/agents when upgrading
from an older version.
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
- Add detectVersionUpgrade() to auto-update skills/agents when version changes
- Make MCP daemon startup error non-blocking (Claude Code starts it via .mcp.json)
- Fix verification phase false negatives by distinguishing critical vs optional checks
- Bump version to 3.5.3
Fixes:
1. Skills/agents not updated: --auto now implies upgrade when version differs
2. MCP daemon error: Changed from blocking error to informational message
3. Verification failure: Version marker check is now optional, not critical
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The MCP server config now uses 'agentic-qe' as the server name
and 'npx @anthropics/agentic-qe mcp start' as the command.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add comprehensive HTML template at .claude/agents/v3/templates/qx-report-template.html
- Include 3 signature intro boxes: "How can this report help you?", "When to perform a QX session?", "How to use this report?"
- Add domain context banner, table of contents, footer branding
- Add JavaScript for auto-collapse functionality
- Update qe-qx-partner.md with mandatory HTML generation requirements:
- 11 required sections (Executive Summary through QX Methodology)
- 23+ heuristics with individual scoring format
- 6-8 creativity domain analyses
- Quality gate: reports under 500 lines flagged as INCOMPLETE
- Reference Sigma-Aldrich and Proximety reports as quality benchmarks
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Tests calling real handlers (handleTestGenerate, handleCoverageAnalyze,
handleQualityAssess, etc.) trigger full kernel initialization which takes
8-10s. In CI with slower runners, this exceeds the default 10s timeout.
Added 30000ms timeout to 60+ tests across:
- domain-handlers.test.ts (all handler tests without mocks)
- task-handlers.test.ts (handleTaskOrchestrate tests)
- wrapped-domain-handlers.test.ts (wrapper integration tests)
Root cause: Timing flakiness due to kernel initialization on slow CI.
Fix: Explicit timeout parameter, no test logic changes.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Tests involving full kernel initialization can exceed 10s timeout
on slower CI runners. Increased timeout to 30s for:
- task-handlers: should orchestrate task from description
- wrapped-domain-handlers: should wrap handleTestGenerate
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The routeTask call now includes enablePatternSearch and patternHints
properties added by recent pattern search integration. Updated test
assertion to expect these new fields.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add qe_patterns table to pattern count
- Add kv_store patterns (MCP-stored) to pattern count
- Add memory_entries learning data to experience count
- Now shows accurate totals: 624 patterns, 2523 experiences
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Rename learning_metrics table to learning_daily_snapshots to avoid
conflict with existing agent metrics table
- Fix date serialization in export-full command (handle both Date
objects and string timestamps)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>