This release adds 3 notable features for engineering teams evaluating rollout.
✓ No known CVEs patched in this version
Topics
+13 more
Summary
AI summaryUpdates SWE-bench instance durability, Doctor UX, and Memory data integrity across a mixed release.
Full changelog
Reliability + data-durability + repo hygiene wave (12 fixes)
This release is a quality/reliability pass: dashboard concurrency hardening,
memory data-integrity fixes, durable SWE-bench instance persistence, doctor UX,
healing-hook safety, and test-suite hygiene (no more leaked branches/temp dirs).
No user-facing behavior changes; everything is additive or a bug fix.
Memory data integrity
- Consolidation merge no longer drops entries (
memory/consolidation.py):
when two newly-generated patterns merged into the same existing pattern in one
consolidation run, the second merge read a stale in-memory copy and the full
overwrite silently dropped the first merge's conditions, source episodes, and
confidence bump. The in-memory list is now refreshed after each merge, so no
entry is lost. Regression-tested (proven non-vacuous: the test fails against
the old code with the exact data-loss symptom). - Memory store hardened against malformed input (
memory/storage.py,
memory/retrieval.py): non-dict entries in a pattern list are now skipped
instead of raisingAttributeError; a store missing thepatternskey
degrades to empty instead ofKeyError; re-saving a pattern stays idempotent
(no index double-count). Each failure mode has a regression fixture.
SWE-bench instance durability
- Completed SWE-bench instances now persist durably and resume
(benchmarks/swebench-pro-pilot/run_batch.py): the pilot harness wrote
per-instance results only under/tmpand rewrote a single monolithic ledger
every iteration, so a reboot or a crash mid-write could lose every completed
instance. Results now write incrementally, one atomic file per instance
(temp + fsync + rename), to a durable repo-relative ledger under
benchmarks/results/swebench-pro-pilot/(git-ignored data, tracked
.gitignore, so it survives reboots but stays internal). Re-runs skip
already-completed instances;--force/--rerunre-runs from scratch. Infra
failures and budget placeholders are not frozen as "done", so they stay
re-runnable. Cleanup globs (/tmp, test-branch pruning) structurally cannot
reach the durable results.
Dashboard concurrency hardening + heredoc CI guard (reliability)
- Dashboard no longer stalls under concurrent requests (
dashboard/server.py):
several FastAPI endpoints did blocking filesystem work (event-log reads,
learning-signal scans, memory blobs, cost/timeline aggregation, council
transcripts, checkpoint listing, log tails) directly on the asyncio event
loop. A single slow read could freeze every other in-flight request, so the
status poller and live panels could hang while one endpoint did heavy I/O.
Those blocking call sites now run viaasyncio.to_thread, keeping the event
loop responsive. Verified:/api/statusstayed sub-millisecond while a
deliberately slow endpoint blocked for seconds; all endpoints still return
200. The shared compose-discovery TTL cache reachable from the new concurrent
path isthreading.Lock-guarded (read-modify-write bracketed); the wrapped
helpers are pure reads, and no shared-state writer was newly threaded. - CI guard against the v7.41 heredoc
$<digit>footgun
(tests/check-heredoc-dollar-digit.sh, wired intoscripts/local-ci.sh):
scansautonomy/lokiandautonomy/run.shfor unescaped$1..$9inside
python3 -c "..."bodies, whichset -ubash silently expands as positional
params (the class of bug that once crashedloki plan --jsonfor every user).
Non-vacuity proven (the check fires on a planted violation). Runs on every
local-cipre-push.
Doctor UX
loki doctornow prints the exact install command for a missing provider
(autonomy/loki): a missing optional provider CLI (claude/codex/cline/aider)
previously printed only "not found" with no remedy; it now prints the precise
install command under the warning. Bounded network probes (ChromaDB, MiroFish)
gained--connect-timeout/--max-timeso a doctor run can no longer hang on a
dead endpoint, with transient stderr-only progress feedback (stdout stays
byte-identical for bash/Bun parity).
Healing-hook safety + test hygiene
- Healing hooks regression test for live-tree safety
(tests/test-healing-hooks-safety.sh): locks in that a healing revert
preserves unrelated uncommitted edits (snapshot-scoped restore, no blanket
git checkout) and that friction path matching is exact (no substring false
hits). The source already had these guards; this test prevents regression and
proves non-vacuity against the old destructive behavior. - Test suite no longer leaks git branches or temp dirs
(tests/test-e2e-features.sh,tests/test-stop-process-group.sh): added
unconditionaltrap ... EXIT INT TERMcleanup so an interrupted test can no
longer leave aloki-test-wt-*worktree/branch in the real repo or a
loki-pgtest-*temp dir behind. Newscripts/clean-test-branches.shsafely
prunes only test-artifact branches from a sandbox repo (refuses the real repo,
protected branches, or while a live run is active).
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About Loki Mode
Multi-agent autonomous SDLC framework. Spec to deployed app. PRD, GitHub issue, OpenAPI/JSON/YAML, or one-line brief. 5 AI providers, 11 quality gates.
Related context
Related tools
Beta — feedback welcome: [email protected]