mirror of
https://github.com/proffesor-for-testing/agentic-qe.git
synced 2026-09-19 08:45:47 +08:00
d6b19d087c
Root cause: initialize() seeds pretrained patterns via loadPretrainedPatterns() → storePattern(), and storePattern() ensure-inits with `if (!this.initialized) await this.initialize()`. Because `this.initialized = true` was set AFTER seeding, the seed re-entered initialize() without bound — an async self-recursion that pinned a CPU core and never returned. Impact: EVERY MCP domain tool (code_index, quality_assess, defect_predict, …) routes through the advisory pattern-search path (createDomainHandler → routeDomainTask → searchPatternsForTask → getLearningEngine → AQELearningEngine → QEReasoningBank.initialize). On a fresh install (patterns seeded for the first time) that path recursed forever, so all MCP domain tools hung indefinitely while the CLI — which calls domain services directly — worked. The repo and in-memory unit tests never hit it (already seeded / bulk-load path). Fix: set `this.initialized = true` BEFORE loadPretrainedPatterns()/seeding. The core stores (patternStore + SQLite) are already up by then, so storePattern() short-circuits instead of recursing. Verified against a real tarball install: MCP code_index ∞-hang → 0.5s (6 symbols / 5 relations); quality_assess / defect_predict 0.8s; returns cleanly (0/0/0) when typescript is absent too. Adds a red-green regression test pinning the init-order invariant.