0.137.0

Added

  • 11 скрытых настроек добавлены в реестр и видны в UI /settings/advanced (ранее читались через settings.Get*, но отсутствовали в ParamRegistry, поэтому их нельзя было менять через REST/UI — только прямым SQL): agent_turn_timeout_minutes (10 мин, главный таймаут хода), strategy_router_timeout_seconds (15 с, таймаут выбора стратегии), history_window (50, окно истории в контекст), history_verbatim (10, дословных сообщений), file_upload_max_mb (50, лимит загрузки файла), cleanup_interval_hours (24, интервал forget-очистки), cleanup_age_days (14, возраст фактов для forget), cleanup_min_confidence (0.6, мин. confidence факта), dedup_cosine_threshold (0.88, порог дедупликации), dedup_llm_check_threshold (0.80, порог LLM-проверки дублей), dedup_fts_overlap_min (3, FTS-overlap для дедупа). Все валидируются по типу и диапазону [Min; Max] в PUT /api/v1/admin/advanced.

Changed

  • 11 «мёртвых» настроек подключены к чтению из БД (ранее были в реестре/UI, но код их не читал — изменение в UI не давало эффекта, вводя пользователя в заблуждение): agent_queue_size (actor.go, размер канала актора), subagent_timeout_seconds + subagent_max_iterations (subagent_config.go, теперь global-дефолты через MergeWithGlobals, перекрываются per-agent JSON), bus_buffer_size (main.go, NewMessageBus), ws_hub_buffer_size (websocket.go, newWSHub), auth_lockout_attempts + auth_lockout_window_minutes + auth_lockout_duration_minutes (oauth.go, newLoginLockout), auth_access_token_ttl_minutes + auth_refresh_token_ttl_days (tokens.go, const→поля TokenService с геттерами AccessTokenTTL()/RefreshTokenTTL()), server_http_timeout_seconds (router.go, chimw.Timeout). Для auth_*, cleanup_interval_hours, server_http_timeout_seconds добавлен Restart: true (значения читаются при старте).
  • settings.GetDuration поддерживает единицы "hours" и "days" (ранее только "seconds"/"minutes"). Требуется для auth_refresh_token_ttl_days.
  • server_http_timeout_seconds default 60300: выровнен с tool_timeout_seconds (ранее долгие tool-call’ы по REST обрезались HTTP-таймаутом раньше таймаута инструмента).
  • auth_refresh_token_ttl_days Max 3657: cookie max-age (refreshCookieTTL) — upper bound на сессию в 7 дней; значение больше 7 не имело эффекта без изменения cookie. Теперь диапазон честно отражает реальное ограничение.

Fixed

  • Расхождение default rag_retrieval_top_k: в реестре было 60, в коде fallback 30 (context.go:1460) — UI «врал» про default. Приведено к 60.
  • Защитные guards для настроек из БД: loadChanCap (chanCap<1→128), NewOAuthService (lockout attempts<2→5, window<=0→15m, duration<=0→15m), newWSHub (bufSize clamp [16;4096]), NewRouter (httpTimeout<=0→300s) — предотвращают паники/OOM при невалидных значениях в БД.

Removed

  • server_auth_rate_limit убран из реестра: default 5 сломал бы PKCE-логин (флоу = 3 запроса на попытку входа → ~1.6 попытки/мин). Значение завязано на внутреннюю структуру PKCE-флоу и не должно быть пользовательской настройкой без перепроектирования.
  • bus_publish_timeout_seconds убран из реестра: 5с — разумный фиксированный дефолт для backpressure; подключение требовало бы рефакторинга пакета bus (package-level var без доступа к Store), польза сомнительна.