v3.9.26: 10 Learning-Pipeline Fixes
What's New
Ten learning-pipeline fixes reported by @Jordi-Izquierdo-DDS against v3.9.24. Individually they look like small short-circuits in the post-task hook chain; together they were keeping the end-to-end Stream B/D/F learning loop pinned at zero — experiences tagged agent='unknown' and task='edit: ', Q-learning buckets all converging on one key, dream insights generated but never applied, patterns crossing the promotion thresholds but staying short-term forever, and stale sentinels inverting the routing-quality metric.
After this release, the learning loop actually converges on real per-agent signal instead of zeros.
Fixed
- #453 —
post-editnow readstool_input.file_pathfrom the Claude Code event stdin when$TOOL_INPUT_file_pathdoesn't expand; fixes 88% of captured experiences losing their file path - #454 —
aqe hooks stats --jsonfalls back to DB aggregation when in-memory counters are zero (hook subprocesses start fresh every invocation); live verify:routingRequests: 1904, learningOutcomes: 272, patternSuccessRate: 0.75 - #455 — bridge loop in
persistTaskOutcomenow promotes patterns crossing thesuccessful_uses≥3 / success_rate≥0.7 / confidence≥0.6thresholds; previously they stayedshort-termforever - #456 — hook-fired dream cycles now apply actionable high-confidence insights inline; reporter saw 378 unapplied vs 9 applied before fix
- #460 — Q-learning now falls back to the pre-task bridge's recommended agent when
--agentenv-var is unavailable; everyrl_q_valuesrow used to land onaction_key='unknown' - #461 — concurrent hooks no longer overlap into
database is lockedfailures;dream_cyclespeek before opening engine bails out withreason='already-running' - #462 — RVF init purges orphan vectors when
vectorCount > qe_patterns count; ghost vectors no longer route to non-existent IDs - #463 —
experience_applications.tokens_savedpopulates withround(qualityScore * 100)instead of hardcoded 0 - #464 — high-quality
cli-hookexperiences (post-edit, quality ~0.75) are no longer blanket-excluded from consolidation; the existingHAVING avg_quality ≥ 0.5clause is the correct quality gate - #465 —
post-routesweeps stalerouting_outcomessentinels older than 5 minutes; reporter saw 122/149 rows stuck at -1, invertingAVG(quality_score)to -0.717
Closed as duplicates
Security
- Patched 11 Dependabot alerts (#476):
@protobufjs/utf8, OpenTelemetry bumps
Getting Started
npx agentic-qe init --autoSee CHANGELOG and docs/releases/v3.9.26.md for full details.
Thanks to @Jordi-Izquierdo-DDS for the meticulous bug reports and patch shapes.