Description
openclaw memory status --deep always reports Indexed: 0/12 files · 0 chunks when using the QMD memory backend, even when the QMD index contains real data and search works correctly.
Root Cause
QmdStatusOnlyManager.status() in search-manager-DNBHwaee.js (~line 294) hardcodes:
This class is used by the CLI memory status command. It never queries the actual QMD SQLite index for document/vector counts.
Steps to Reproduce
- Configure
memory.backend: "qmd" in openclaw.json
- Let the agent index memory files (daily logs, MEMORY.md, etc.)
- Verify QMD has data:
XDG_CACHE_HOME=~/.openclaw/agents/main/qmd/xdg-cache qmd status → shows 22 files, 373 vectors
- Run
openclaw memory status --deep → reports 0/12 files · 0 chunks
- Run
openclaw memory status --deep --json → confirms "files": 0, "chunks": 0 while "custom.qmd.collections": 3
Expected Behavior
memory status should query the QMD index SQLite database for actual document and vector counts, e.g.:
SELECT COUNT(*) FROM documents WHERE active = 1;
SELECT COUNT(*) FROM content_vectors;
Impact
- Users cannot monitor memory health via the CLI
- Heartbeat checks relying on
openclaw memory status get false readings
- Workaround: use
qmd status directly with XDG_CACHE_HOME set to the agent's QMD cache path
Environment
- OpenClaw: 2026.3.23-2
- QMD: 2.0.1
- Platform: macOS (Darwin 25.3.0, Apple M4 Max)
Description
openclaw memory status --deepalways reportsIndexed: 0/12 files · 0 chunkswhen using the QMD memory backend, even when the QMD index contains real data and search works correctly.Root Cause
QmdStatusOnlyManager.status()insearch-manager-DNBHwaee.js(~line 294) hardcodes:This class is used by the CLI
memory statuscommand. It never queries the actual QMD SQLite index for document/vector counts.Steps to Reproduce
memory.backend: "qmd"inopenclaw.jsonXDG_CACHE_HOME=~/.openclaw/agents/main/qmd/xdg-cache qmd status→ shows 22 files, 373 vectorsopenclaw memory status --deep→ reports0/12 files · 0 chunksopenclaw memory status --deep --json→ confirms"files": 0, "chunks": 0while"custom.qmd.collections": 3Expected Behavior
memory statusshould query the QMD index SQLite database for actual document and vector counts, e.g.:Impact
openclaw memory statusget false readingsqmd statusdirectly withXDG_CACHE_HOMEset to the agent's QMD cache pathEnvironment