This release fixes issues for SREs watching stability and regressions.
✓ No known CVEs patched in this version
Topics
+13 more
Affected surfaces
Summary
AI summaryFixed two high‑impact fail‑open bugs in the healing friction gate and three dashboard/WebSocket crashes.
Full changelog
Wave-4 bug-hunt fixes (4 real, reproduced, RED/GREEN-tested)
- Healing friction gate: two HIGH fail-open bugs closed (trust-adjacent).
The friction safety gate inhook_pre_healing_modify(autonomy/hooks/migration-hooks.sh)
decides whether an autonomous healing edit may remove catalogued friction.
Two independent fail-open holes let a removal through that should have been
blocked: (A) type-coercion --safe_to_removewas read with Python truthiness,
so the JSON string"false"(truthy) wrongly cleared the block; (B)
blacklist-only -- the gate blocked only the two labelsbusiness_rule/unknown,
so any LLM-invented classification withsafe_to_remove:falseslipped past.
Fix: strict-boolean whitelist --safe = (friction.get('safe_to_remove') is True)
then block unless explicitly cleared, regardless of classification label. Only
a real JSON booleantrueclears; strings, ints, null, and missing keys all
block. Not over-blocking: the healing protocol's prescribed clearance path
(safe_to_remove:true) is preserved, and heal-mode-off / non-matching frictions
stay byte-identical no-ops. RED/GREEN test:tests/test-healing-friction-gate.sh
(8/8; old gate allowed cases A and B, proven by reconstruction). - Dashboard task-detail modal no longer crashes on a non-array field. In
loki-task-board.js_renderTaskDetailModal,acceptance_criteriaand
context_filesused|| []with no type guard, so a string value (truthy)
reached.map()and threw "not a function", blanking the modal. Fix:
Array.isArray(...)guards, matching the existingnotes/logspattern.
Test:dashboard-ui/tests/loki-task-board-modal-guard.node.test.mjs(6/6;
3/6 fail against pre-fix). - Memory retrieval no longer returns the same record twice.
memory/retrieval.py_progressive_retrieveemitted the same memory id in both
the Layer-2 summary and Layer-3 detail passes. Fix: dedup by id, preferring the
fuller record; records without an id are preserved. Test:
tests/test-memory-retrieval-wave6-bugs.py(8/8). - Dashboard WebSocket leak on project switch fixed (+ disconnect no longer
defeated by async onclose).loki-overview.js/loki-api-client.js: adopting
a new client on project switch left the old socket open;disconnect()fired
oncloseasynchronously which then re-opened via_scheduleReconnect. Fix:
close the old client before adopting the new one; add an_intentionalClose
flag so a deliberate disconnect is not reconnected. Test:
dashboard-ui/tests/loki-ws-leak-reconnect.node.test.mjs(3/3).
All four independently reproduced and RED/GREEN-verified; council 3-of-3 APPROVE
(2 Opus + 1 Sonnet, reviewers ran the tests). No behavior change to any shipping
loki command; no trust core / evidence gate touched.
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]