0.134.38
Fixed (MEDIUM §4.3–4.7 remaining + CRITICAL partial — 12 задач, см. docs/audit/backend-2026-06.md)
- C-SC-4 Атомарный refresh-rotation:
RevokeRefreshTokenIfActive(SQLite + PG + DualStore) —UPDATE ... WHERE revoked_at IS NULLсRowsAffected(). TOCTOU-окно закрыто. - M-X-4
env_scrub.go:pass→ word-boundary regex(?:^|[-_])pass(?:$|[-_])— убраны false positives на COMPASS, BYPASS. - M-M-3
AutoCompactService: jitter ±20% на первый тик — при рестарте все агенты не стартуют одновременно. - M-M-4
AutoCompactService.Stop():sync.WaitGroup+wg.Wait()— корректное завершение goroutine. - M-M-7
Dream.loadDynamicConfig: кэш с TTL 60s — не дёргает БД на каждомRun(). - M-M-11
Consolidator.persistFacts: задокументирована не-атомарность (acceptable для фоновой задачи). - M-M-13
Indexer:IndexRequest.CreatedAtпередаётся вAddChunk(SQLite + PG) — чанки наследуют дату документа. - M-M-14
recall_scoring.go: multi-formatparseRecallTime(RFC3339Nano, RFC3339, SQLite) — работает на PostgreSQL. - M-M-16
CachedEmbedder: async DB cache write через goroutine — не блокируетEmbed(). - M-M-20
reranker/llm.go: rune-awaretruncate— не разрезает UTF-8 мультибайтные символы. - M-M-21
reranker/ollama.go: regex[-+]?\d*\.?\d+вместоSscanf— парсит число из произвольного ответа. - M-U-9
permissions/presets.go:slog.WarnприcustomAllowPatternsактивен — видимость security risk.