-
Notifications
You must be signed in to change notification settings - Fork 574
Description
Plugin Version
1.1.0-beta.10
OpenClaw Version
2026.3+
Bug Description
memory_recall tool exposes an includeFullText parameter documented as "Return full memory text when true", but passing includeFullText: true still returns the L0 one-line abstract — identical to the default false behaviour.
Root cause: storeCandidate writes candidate.abstract (L0) into the text column of LanceDB:
// src/smart-extractor.ts:1184-1191
await this.store.store({
text: candidate.abstract, // L0 used as the searchable text ← stored here
vector,
...
});The memory_recall execute handler then reads back that column for both modes:
// src/tools.ts:606-608 (current — broken)
const base = includeFullText
? r.entry.text // ← also L0, because text column = L0
: metadata.l0_abstract || r.entry.text;So includeFullText is effectively a no-op: L2 full content (metadata.l2_content) is stored in the metadata JSON but never surfaced to the agent.
Expected Behavior
When an agent explicitly calls memory_recall with includeFullText: true, it is signalling active intent to retrieve detailed memory content — the full narrative (L2), not just the one-line index. The tool should resolve content through the L2 → L1 → L0 fallback chain:
const base = includeFullText
? (metadata.l2_content || metadata.l1_overview || r.entry.text)
: (metadata.l0_abstract || r.entry.text);The same issue affects sanitizeMemoryForSerialization: the details.memories payload also only carries L0 via text: r.entry.text, so callers inspecting the structured response cannot access full content either.
Steps to Reproduce
- Enable
smartExtraction: trueand have the agent capture a multi-sentence memory (e.g. acasesorpatternsentry — these tend to have rich L2 content) - Call
memory_recallwithincludeFullText: true - Observe the returned text is a single-line abstract, not the full stored content
Impact
Most severe for cases (problem→solution pairs) and patterns (reusable workflows) categories, where L2 contains actionable step-by-step detail that L0 cannot summarise in one line.
Logs / Screenshots
N/A — reproducible by code inspection.
Embedding Provider
Any (not embedding-related)
OS / Platform
Any