0.34.0

Added

  • P3-M1: Tokenization-aware chunkingsplitIntoChunks в indexer.go переписан: размер чанков и overlap считаются по токенам (tokens.Count) вместо байтов. Корректная работа с UTF-8 кириллицей. Функция tokenOverlapTail для overlap по токен-границе.
  • P3-M2: Russian-aware sentence split — regex расширен для многоточий (), восклицаний (?!), переносов строк. Знаки препинания сохраняются в предложениях (переход с regexp.Split на FindAllStringIndex). Fallback splitByNewlines.
  • P3-M3: Dream батчированиеlistAllActiveFacts логирует slog.Warn при достижении лимита 10000 фактов (вместо молчания). Батчевый analyze: при > 500 активных фактов разбиение на батчи по 500.
  • P3-M4: TouchBuffer — буфер дедупликации TouchBuffer (touch_buffer.go): накапливает fact IDs, flush по достижении 100 или раз в 5 сек. Integrated в ContextBuilder/AgentLoop. Fallback на TouchFact при отсутствии буфера.
  • P3-M5: Settings hot-reloadDreamService и ConsolidatorService перечитывают интервал из БД после каждого тика, пересоздают time.Ticker при изменении. consolidator_interval_minutes добавлен в whitelist настроек API.
  • P3-M6: UI метрики памяти — word-by-word diff в истории фактов. Карточка метрик: активных/неактивных, средняя confidence, всего обращений, мёртвые факты (access=0), топ-5 по access_count.
  • 29 новых тестов: indexer_test.go (14), dream_batch_test.go (3), touch_buffer_test.go (5), hotreload_test.go (5), indexer_test.go (+2 общих).

Changed

  • ContextBuilder.TouchBuffer — новый интерфейсный поле, заменяет прямой вызов TouchFacts.
  • AgentLoop — поле touchBuffer + SetTouchBuffer(), останавливается в Stop().

Security

  • Knowledge Graph (P3-M6) отложен в docs/todo.md.