The enriched ingest has always distilled 1-5 self-contained facts per chunk and then thrown them away. 1.4.0 persists that distillation and can embed + display it as the recall surface — behind a flag that stays off by default after A/B measurement showed it trades recall coverage for ranking precision.
Added
Memory.distilledcolumn (migration 13). Enriched ingest persists the LLM-distilled facts alongside the verbatim turn when they pass a lexical grounding gate (is_grounded) that keeps hallucinated facts off the recall surface. Verbatimcontentremains the immutable source of truth (FTS5, audit, re-embed).enable_distilled_recall_surfaceflag (default off). When enabled, embeddings usedistilled or contentand recall snippets prefer the distilled fact (expandalways returns verbatim). Measured on LongMemEval: the distilled surface ranks gold sessions higher (MRR +0.12) but loses coverage (R@5 −0.25) — a bad trade with a reranker downstream, so the default stays off.- mem0-style distillation prompt. Preserves identifiers/code/numbers verbatim, resolves pronouns to named entities, keeps decisions with their rationale, grounds relative time; distill content window raised 2000 → 4000 chars.
Fixed
- Security: chunk content is credential-scrubbed before it reaches the LLM intelligence graph. Previously only the stored copy was sanitized — raw secrets could reach the configured cloud LLM during classification/distillation.