Fix Active Memory no-relevant status#80015
Conversation
|
Codex review: needs maintainer review before merge. Summary Reproducibility: yes. from source inspection: current main maps normalized empty/ Real behavior proof Next step before merge Security Review detailsBest possible solution: Keep the fix owner-local in Do we have a high-confidence way to reproduce the issue? Yes from source inspection: current main maps normalized empty/ Is this the best way to solve the issue? Yes: the PR changes the narrow Active Memory status classifier, cache eligibility, timeout debug preservation, and adjacent tests/docs without moving ownership into core or adding configuration. I found no safer smaller fix for the reported behavior. What I checked:
Likely related people:
Remaining risk / open question:
Codex review notes: model gpt-5.5, reasoning high; reviewed against 3241f645949c. Re-review progress:
|
6daa2dd to
be033cf
Compare
|
Updated the PR body with the structured Real behavior proof fields accepted by
I verified the edited body locally with the policy evaluator before posting; it reports |
|
@clawsweeper re-review The PR body now uses the exact proof field labels accepted by |
|
Thanks @TurboTheTurtle. This fix has landed on Landed commit: eda0316 I preserved your authorship with a For future OpenClaw PRs, please enable GitHub's "Allow edits by maintainers" setting on the PR branch. That lets us apply small landing fixups directly to the PR instead of recreating the change locally. |
Recreated locally from PR openclaw#80015 because the contributor branch could not be updated by maintainers (maintainerCanModify=false). Fixes openclaw#79812. Co-authored-by: Andy Ye <andy@Andys-MacBook-Pro-2.local>
Recreated locally from PR openclaw#80015 because the contributor branch could not be updated by maintainers (maintainerCanModify=false). Fixes openclaw#79812. Co-authored-by: Andy Ye <andy@Andys-MacBook-Pro-2.local>
Summary
NONE/no-useful-memory recall decisions asstatus=no_relevant_memoryinstead ofstatus=empty.status=unavailableandstatus=failed.Root Cause
Active Memory treated several very different no-summary paths as
empty: ordinaryNONErecall decisions, zero-hit memory searches, unavailable tool/provider states, and generic subagent failures. It also cached empty results, so a normal no-relevant-memory turn could look like broken recall on later turns.Real Behavior Proof
Behavior or issue addressed:
Active Memory should distinguish a normal no-useful-memory recall decision from unavailable tooling, failed subagents, and timeout/debug cases. A
NONErecall should persiststatus=no_relevant_memory, should not be cached as a reusable empty result, and should not mask real timeout/search diagnostics.Real environment tested:
Local OpenClaw source checkout on macOS with Node/pnpm, running the Active Memory extension and reply-runner runtime paths from this PR branch.
Exact steps or command run after this patch:
pnpm test extensions/active-memory/index.test.ts.pnpm test src/auto-reply/reply/agent-runner.misc.runreplyagent.test.ts.pnpm exec oxfmt --check --threads=1 extensions/active-memory/index.ts extensions/active-memory/index.test.ts docs/concepts/active-memory.md CHANGELOG.md.git diff --check.pnpm check:changed --base upstream/main.Evidence after fix:
Copied terminal output from the after-fix OpenClaw proof run:
Observed Active Memory status/output from the local proof run:
Observed result after fix:
A subagent reply of
NONEnow persistsstatus=no_relevant_memoryinstead ofstatus=empty. A terminal zero-hitmemory_searchtranscript waits for the recall timeout and preserves the debug linebackend=qmd searchMs=8 hits=0. Missing registered memory tools persiststatus=unavailable, generic subagent failures persiststatus=failed, and no-relevant-memory results are not cached for the next turn.What was not tested:
A live production memory backend session with private user data was not captured in this environment. The proof above uses local OpenClaw runtime paths with controlled memory-search and recall behavior so private memory contents and external services are not required.
Validation
pnpm test extensions/active-memory/index.test.ts(122 tests passed)pnpm test src/auto-reply/reply/agent-runner.misc.runreplyagent.test.ts(37 tests passed)pnpm exec oxfmt --check --threads=1 extensions/active-memory/index.ts extensions/active-memory/index.test.ts docs/concepts/active-memory.md CHANGELOG.mdgit diff --checkpnpm check:changed --base upstream/mainFixes #79812