v3.9.27: AbortSignal init bound + hook→domain bridge
What's New
Two architectural fixes from downstream investigations against v3.9.26:
-
session-starthook can no longer leak unbounded writes topatterns.rvf(#478).ReasoningBank.initialize()now accepts anAbortSignal, and the 10 s hook timeout drives a real cancellation through every awaited step instead of leaking past the race. Downstream report on the prior behavior: 43.8 GB written in 29 minutes, disk filled,SIGKILLrequired. With this fix the bootstrap stops promptly when the timeout fires. -
Hook-driven activity finally reaches the 13 domain plugins (#479). A new kernel-side
CapturedExperienceBridgedrains thecaptured_experiencesSQLite table (already populated by hooks and MCP wrapped handlers) into theeventBus, so every domain plugin'ssubscribeToEvents()handler gets the events it was always listening for. Previously, in defaultaqe init --autodeployments,learning:pattern:*keys stayed at zero,qe_learning_optimizereportedexperiencesProcessed: 0, andlearning-consolidationlogged "No learning patterns found" on every cycle.
Cleanup
Removed ~1,640 lines of confirmed dead code:
.claude/hooks/v3-qe-bridge.shand its config reference (declared dead in v3.6.6 release notes; targeted av3/dist/path that no longer exists)- Two stale v3-alpha planning docs (
docs/LEARNING_IMPROVEMENT_PLAN.md,docs/LEARNING_SYSTEMS_ANALYSIS.md) - Five orphan workers in
src/optimization/qe-workers.tswhose functionality is fully covered by the liveLearningConsolidationWorker
Getting Started
npx agentic-qe init --autoCredits
Both issues filed by @Jordi-Izquierdo-DDS with thorough source-level investigation, reproduction recipes, and measured production impact data.
See CHANGELOG and docs/releases/v3.9.27.md for full details.