0.134.34

Fixed (DEFERRED-задачи §3.7 Memory/Embeddings/Reranker/KG, см. docs/audit/backend-2026-06.md §3.7)

  • H-M-1 persistFacts N+1 embed-вызовов — batch Embed всех фактов одним вызовом.
  • H-M-2 _ = cosineMain — assignment-to-blank, не отключение (ложная тревога). Код убран.
  • H-M-3 ExtractRealtime делал 2 LLM-вызова (gate + extract) — объединён в один extraction call.
  • H-M-4 persistFacts сериализовал embed по одному — переписан на batch (validate all → embed all → dedup loop).
  • H-M-5 askMerge блокировал actor-контекст — resolveConflict запускает askMerge через goroutine с семафором (max 2 concurrent).
  • H-M-6 RunForAllScopes sequential — переписан на concurrent scopes через WaitGroup + semaphore (max 2).
  • H-M-7 Dream execute N+1 GetFactallFactsInScope/firstDupInScope/merge-supersede используют batch GetFactsByIDs.
  • H-M-8 analyze промпт рос линейно — chunking active facts по 50, каждый chunk — отдельный LLM-вызов.
  • H-M-9 Dream execute per-action embed — один batch Embed для всех create/update/merge действий.
  • H-M-10 KG GC N+1 GetFact (20k запросов) — один GetActiveFactIDsByIDs вместо N вызовов.
  • H-M-11 findAndLinkSameAs embed 999 имён — заменён на FindSimilarEntities (Jaro-Winkler), нулевые embed-вызовы.
  • H-M-12 Pairwise cosine O(N²) — заменён на FindSimilarEntities с порогом.
  • H-M-16 Cleanup удалял L0-факты — last_used_by_l0_at колонка + TouchL0Facts + isStale skip.
  • H-M-24 Ollama reranker N concurrent goroutines — sequential scoring (Ollama single-threaded).

Added

  • Миграция 074 (l0_last_used): колонка last_used_by_l0_at в memory_facts (SQLite + PostgreSQL).
  • Store-методы: GetActiveFactIDsByIDs, TouchL0Facts, ListL0FactIDs.
  • ContextBuilder.buildL0Context вызывает TouchL0Facts при инъекции L0-абстрактов.
  • Consolidator.resolveSem — semaphore channel (max 2) для askMerge concurrency.