Repository navigation
v3.15.8: Memory writes survive dreams; workers honour AQE_WORKERS_ENABLED
·
457 commits
to main
since this release
What's New
Your acknowledged memory writes are no longer lost when a dream is running,
and starting the MCP server no longer deletes old dream insights.
AQE_WORKERS_ENABLED=false now really turns the background workers off.
Learning pattern lookups and stats, test retries through symlinks and
per-file coverage from a subfolder also got fixes. Every change was
reviewed adversarially before merge.
Fixed
- Acknowledged memory writes are no longer lost during a dream
(#1060, #1068): while a dream was running, amemory_storethat
returnedpersisted: true, or any other foreground write, could be
silently rolled back if the dream was cancelled, failed or was still
running when the MCP client closed. Dreams no longer hold a database
savepoint, so those writes stay. Dream results are the same as before. A
dream that is still running at shutdown is now recorded asinterrupted
instead of being left atrunning. Thanks to @pacphi for the report and
the repro. This is a mitigation: the full rework stays tracked in
#1060. - Starting the MCP server no longer deletes old dream insights
(#1061, #1067): everyaqe-mcpstart used to delete unapplied
dream_insightsolder than 30 days within about 30 seconds, with no log
line, even withAQE_WORKERS_ENABLED=false. Now:AQE_WORKERS_ENABLED=false(also0,off,no) starts neither the
background workers nor the QualityDaemon.- The retention sweep never runs at startup. The first one runs after one
full worker interval (30 minutes). - Every deletion is logged on stderr with the count and the age window.
- Thanks to @pacphi for the report and the numbers from real stores.
- Learning pattern lookups and stats (#1055, #1072): looking up
patterns by tag no longer throws aTypeError, andqe/learning/optimize
pattern totals and averages count only active patterns. Provenance and
archive records used to be counted (averages came out asnull) and
could push real patterns out of the search. Pattern export writes each
pattern once, and pattern dates are real dates again. Thanks to @pacphi
for the diagnosis. - Test retries through a symlinked folder (#1047, #1053): a Vitest
retry of a test file reached through a symlink now clears when the real
file passes. Thanks to @rudycelekli. - Per-file coverage from a subfolder (#1030, #1047, #1054):
relative per-file coverage paths now resolve against the project root
(AQE_PROJECT_ROOT, then the repository root), so quality assessment and
defect prediction find the file's measurement when the MCP server starts
in a subfolder. Thanks to @rudycelekli.
Added
AQE_DISABLED_WORKERS: a comma-separated list of background worker
ids to skip, for examplelearning-consolidation. Unknown ids are
reported on stderr.AQE_DREAM_INSIGHTS_RETENTION_DAYS: how old an unapplied dream
insight must be before the sweep deletes it. The default is 30.0or
offturns the sweep off. Any other value that is not a whole number from
1 to 36500 prints a warning and the default applies.
Both are documented in docs/v3/reference/configuration.md.
Changed
- Installs made with
aqe init --no-databaseno longer start background
workers. Those installs already writeAQE_WORKERS_ENABLED=false, and
the MCP server now honours it. Remove that line from your MCP config if
you want the workers. - Dream branching is off by default. Dreams no longer run inside a
savepoint, so they no longer emit branch events orDREAM_MERGE/
DREAM_DISCARDwitness entries. Library users can still set
DreamConfig.enableBranching: true, but that keeps the original risk: a
discarded dream rolls back foreground writes made during it (#1060).
If a dream fails part-way, what it already wrote (activations and
insights for a cycle markedfailedorinterrupted) is kept. - Relative coverage paths are project-root relative. For library users:
a relative path passed to the per-file coverage readers now resolves
against the project root instead of the current folder. Absolute paths
and explicit roots behave as before. qe/learning/optimizetotals change.patternsanddashboardnow
report active patterns only, so totals can drop and averages become real
numbers. Readers receiveDateobjects forcreatedAtandlastUsedAt.- For library users: the exported
LearningConsolidationProtocolcan
now archive low-value patterns in the namespace it reads. Before, it never
matched anything. Nothing in AQE runs it by default (#1071).
Known issues
- Dreams still need the full rework: compute first, then commit in one
short transaction, and cancel on shutdown. A dream killed abruptly
(SIGKILL, crash) can still be left atrunning(#1060). - The retention sweep still hard-deletes rows instead of archiving them,
AQE_DREAM_INSIGHTS_RETENTION_DAYS=falseis treated as invalid (so the
30-day default applies), worker ids inAQE_DISABLED_WORKERSare
case-sensitive, and the explicitaqe daemon startcommand is not gated by
AQE_WORKERS_ENABLED(#1066). quality_assessleaves its Queen task slot in use (#1070).- Learning export, import and the consolidation protocol read a different
namespace than the one patterns are learned in, and the pattern scan stops
at about 5,000 patterns with only a log warning (#1071). - Workspace member dependencies are not scanned from a monorepo root yet
(#1057). - MCP
test_execute_parallelruns the test suite twice (#1059, fix in
review in #1065). - Windows paths are unit-tested only, not run on Windows (#971, #982).
Getting Started
npx agentic-qe init --autoSee CHANGELOG for full details.