Self-hosting 2.1.16 with the OpenClaw plugin. Stored memories routinely carry dates that were never in the source conversation.
Evidence — a search for recent facts returns a large cluster stamped 2023-10-04, roughly three years before this plugin was installed (July 2026). A separate fact about work done on 2026-08-09 came back as "On 2026-09-08". The content is accurate in both cases; only the dates are wrong.
Cause: SupermemoryClient.addMemory() (dist/index.js) sends {content, containerTag, metadata: {sm_source: "openclaw", ...}, customId, entityContext}. There is no timestamp in the payload and none in the default metadata. Extraction therefore has no capture time to anchor to, and dates in the generated memory text are model guesses.
Impact: any agent that reasons over memory chronology gets confidently wrong answers — "when did we build X", "what changed since Y". The memory is right, the date is fiction, and nothing distinguishes them.
Suggested fix: add the capture time to the add() payload — metadata.captured_at as ISO-8601, or prepend it to content. Either gives extraction a real anchor instead of a guess.
Self-hosting
2.1.16with the OpenClaw plugin. Stored memories routinely carry dates that were never in the source conversation.Evidence — a search for recent facts returns a large cluster stamped
2023-10-04, roughly three years before this plugin was installed (July 2026). A separate fact about work done on 2026-08-09 came back as "On 2026-09-08". The content is accurate in both cases; only the dates are wrong.Cause:
SupermemoryClient.addMemory()(dist/index.js) sends{content, containerTag, metadata: {sm_source: "openclaw", ...}, customId, entityContext}. There is no timestamp in the payload and none in the default metadata. Extraction therefore has no capture time to anchor to, and dates in the generated memory text are model guesses.Impact: any agent that reasons over memory chronology gets confidently wrong answers — "when did we build X", "what changed since Y". The memory is right, the date is fiction, and nothing distinguishes them.
Suggested fix: add the capture time to the
add()payload —metadata.captured_atas ISO-8601, or prepend it to content. Either gives extraction a real anchor instead of a guess.