Repository navigation
v3.15.4: CRDT, caching, GOAP, test-count and schedule fixes
·
606 commits
to main
since this release
What's New
Correctness fixes for AQE's CRDT memory sync, LLM response caching, embedding
caches, GOAP planning, Vitest test counting and legacy schedules, mostly
contributed by Rudy Celekli. Also includes new
regression tests and a quieter session journal on a full disk.
Fixed
- Expanded Vitest test counts. Code-intelligence test counting now
includes each case ofit.each/test.eachon small and medium suites.
Collection runs in its own process group with a timeout, and large suites
keep the fast static count. Interrupting the caller (Ctrl-C) or hitting the
timeout no longer leaves Vitest running or temp folders behind (#890). - Legacy cron schedules no longer break
workflow list. Invalid entries in
~/.aqe/schedules.json, including ones whosescheduleisn't a string, are
disabled with a reason instead of making the whole file unreadable. Valid
schedules are kept exactly (#951). - CRDT replicas converge reliably (ADR-133):
- LWW registers now order concurrent writes the same way on every
replica, using code-unit comparison and treating version 0 as
"unwritten" (#943); - OR-sets resume their tag counters after a restore, so new adds can't
reuse an old tag and vanish (#945); - convergence fingerprints are unambiguous (structured SHA-256) (#949);
- a peer whose checkpoint is older than the retained delta history gets the
full state instead of missing changes (#952).
- LWW registers now order concurrent writes the same way on every
- Content-filter refusals aren't cached by
generate(), so a retry isn't
served a cached empty answer (#946).complete()caching of refusals is
tracked in #912. - Nomic embeddings: verified cache entries are namespaced, so unversioned
legacy entries are recomputed once instead of being reused (#948). - GOAP planning: actions without a duration estimate count as 1000 ms
againstmaxDurationMs, and the duration backfill runs in a single
transaction (#953, ADR-134). - Session journal: a full disk no longer logs
[AQE] FATALon every
flush tick. Entries stay buffered and one warning is shown (#983).
Changed
- Schedules saved by older versions with cron strings the current parser
rejects (for example@dailyor six-field expressions) now show as disabled,
with the reason inworkflow list(#951). - Guard timing tests have CI headroom sized from measurements, and they still
catch quadratic slowdowns (#990). - Rolling upgrades of CRDT memory sync: until every node runs 3.15.4,
old and new nodes can pick different winners for writes with exactly equal
timestamps (for example, owner idsavsB). This settles once all nodes
are upgraded (#943). - GOAP plan totals now include the 1000 ms fallback, so tight
maxDurationMsbudgets may reject plans that used to pass (#953). - New regression tests for
saveResultson all 10 domain tools, session
journal partial writes and init orchestration, ported from Rudy's PRs (#985).
Getting Started
npx agentic-qe init --autoSee CHANGELOG for full details.