v3.9.32: Fix #491 learning loop + add daemon-runtime release gate
What's New
Fixes the chain of four bugs reported in #491 (Jordi Izquierdo) that left the self-learning consolidation loop dead end-to-end on v3.9.31. On a vanilla install, LearningConsolidationWorker ran every cycle but never consolidated anything, and aqe learning loop-health permanently showed the worker as never-ran.
This release also closes the release-process gap that let those bugs ship: the pre-publish flow now runs a daemon-runtime seam test suite alongside the existing fast unit tests, so the next regression in this class fails at the release gate instead of at users' installs.
Fixed
- Self-learning consolidation loop dead on fresh installs (#491). Four stacked bugs broke the experience-capture → bridge → mine → consolidate pipeline. All four fixed at their roots:
- Daemon→kernel wiring missing (
handleFleetInitnow wiresWorkerManager.setKernel+setMemoryafter plugin load) - HybridBackend reads hard-coded
defaultNamespace='default'while writes used'learning-optimization'(now namespace-aware viaRetrieveOptions) JSON.stringifydropped theDatetype from experience timestamps (now rehydrated at the kv-read boundary)recordLoopHealthsat after a throwingcollectPatternscall so liveness was unreachable (nowtry/finally)
- Daemon→kernel wiring missing (
Added
- Daemon-runtime release gate — new
test:integration:fastnpm script runs 4 focused seam tests (~6s), wired into the publish gate via a newintegration-tests-on-tag-shajob innpm-publish.yml. - A23 daemon-liveness assertion in the init-corpus gate — opt-in per fixture, spawns the cleanroom daemon post-init and asserts zero
domain not availablelines. Pilot enabled on thetiny-tsfixture. - New integration tests:
fleet-init-wires-daemon,workers-reach-domains,coordinator-roundtrip, plus alearning-consolidation-livenessunit contract.
Changed
MemoryBackend.get/has/delete/searchnow accept an optionalRetrieveOptions { namespace? }second argument. Backward-compatible (undefined →defaultNamespace).WorkerManagerinterface gains publicsetKernelandsetMemorymethods, promoted from concrete-class-only.
Getting Started
npx agentic-qe init --autoSee CHANGELOG and release notes for full details.
Special thanks to @Jordi-Izquierdo-DDS for the four-bug root-cause analysis with verified reproduction, and to @Bolivar1234 for the independent second-install confirmation that surfaced Bug 4b.