Skip to content

v3.9.32: Fix #491 learning loop + add daemon-runtime release gate

Choose a tag to compare

@proffesor-for-testing proffesor-for-testing released this 17 May 12:25
· 146 commits to main since this release
dfd02b3

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 (handleFleetInit now wires WorkerManager.setKernel + setMemory after plugin load)
    • HybridBackend reads hard-coded defaultNamespace='default' while writes used 'learning-optimization' (now namespace-aware via RetrieveOptions)
    • JSON.stringify dropped the Date type from experience timestamps (now rehydrated at the kv-read boundary)
    • recordLoopHealth sat after a throwing collectPatterns call so liveness was unreachable (now try/finally)

Added

  • Daemon-runtime release gate — new test:integration:fast npm script runs 4 focused seam tests (~6s), wired into the publish gate via a new integration-tests-on-tag-sha job in npm-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 available lines. Pilot enabled on the tiny-ts fixture.
  • New integration tests: fleet-init-wires-daemon, workers-reach-domains, coordinator-roundtrip, plus a learning-consolidation-liveness unit contract.

Changed

  • MemoryBackend.get/has/delete/search now accept an optional RetrieveOptions { namespace? } second argument. Backward-compatible (undefined → defaultNamespace).
  • WorkerManager interface gains public setKernel and setMemory methods, promoted from concrete-class-only.

Getting Started

npx agentic-qe init --auto

See 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.