0.48.0

Added

  • Recall-скоринг — формула 0.30×freq + 0.35×relevance + 0.20×recency + 0.15×freshness для каждого факта. Поля recall_count, recall_score, last_recalled_at в memory_facts. TouchBuffer автоматически записывает recall-сигнал при RAG-попадании. Dream использует recall-score для приоритизации фактов при анализе.
  • L0-абстракты — extractive-сжатие каждого факта (~200 символов) без LLM-вызова. При тривиальных сообщениях (короткие реплики без ?) полный RAG заменяется лёгкой инъекцией L0-абстрактов (~300 токенов), что радикально сокращает latency и стоимость для 60-80% ходов. При пустом RAG для нетривиальных сообщений — fallback на L0.
  • DB-кеш эмбеддингов — таблица embedding_cache в SQLite/PostgreSQL. Персистентный кеш переживает рестарт, устраняя потерю in-memory LRU. Двухуровневый кеш: in-memory LRU → DB fallback.
  • Спецификация Knowledge Graph в docs/kg-spec.md — план реализации для отдельной задачи.

Changed

  • ContextBuilder.TouchBuffer интерфейс расширен методом TouchWithScore(factID, score) для передачи relevance-сигнала.
  • Store.UpdateFact дополнен методом UpdateFactWithL0 для атомарного обновления content + L0-абстракта.
  • MemoryFact структура расширена полями L0Abstract, RecallCount, RecallScore, LastRecalledAt.