0.85.0
Fixed
- KG: инжекция в системный промпт работает независимо от vector-RAG —
buildKGContextвызывается изBuildMessagesпараллельно с RAG-путями, даже при коротких сообщениях, отсутствии vector-RAG или embedder. Лимит KG-блока — 500 токенов (#116). - KG: закрыта cross-agent утечка — все KG-handler-методы читают
agentIDиз URL path (chi.URLParam), а не из query-параметра. ID сущностей/связей тоже из path. Фронтенд обновлён (#117). - KG: реэкстракция при обновлении факта —
ReprocessFactснимает флагkg_extractedи ставит факт в очередь при любомUpdateFact/UpdateFactWithL0в Consolidator и Dream (#119).
Changed
- KG: скоуп на уровне агента — все чтения KG (
SearchEntitiesByName,ListRelationsByEntity,QueryGraph,FindSimilarEntities) используютuserID = nil.KGWorker.ProcessFactпишет сущности сUserID = nil. Stats переписан черезCOUNT-запрос вместо O(N) прохода (#118). - KG: персистентная очередь экстракции — новая таблица
kg_extraction_queueс retry/backoff (5s, 15s, 60s, 5m, 15m). Лимит параллелизма = 4. LLM-таймаут увеличен до 60 секунд. Backfill при миграции. Защита Rebuild от двойного запуска (409 Conflict) (#120).