0.134.87
Fixed
- Retention handler:
http.Error→writeJSONError: неконсистентный формат ответа при ошибке записи (отсутствовалиContent-Type: application/jsonиX-API-Version). - Retention handler: удалена мёртвая
normalizedmap: копировалаreqбез трансформации, заменена прямой итерацией. - WebUI «Настройки логов» — валидация: невалидные значения (не-число, вне диапазона, пустое поле) теперь показывают
toast.errorвместо молчаливого пропуска и ложного «Нет изменений». - WebUI «Настройки логов» —
isChanged/reset: бейдж «изменено» и кнопка «Сброс» теперь корректно работают от последнего сохранённого значения, а не от default. - WebUI «Настройки логов» — refetch после save: данные обновляются с сервера после сохранения.
- WebUI «Настройки логов» — success toast: показывается до refetch, чтобы избежать противоречия при ошибке загрузки.
Changed
- Purge-методы Store: 7 идентичных методов
Purge*Beforeв SQLite/Postgres сведены к приватному хелперуpurgeCreatedBeforeс allowlist таблицallowedPurgeTables(единый вstore.go). - Cleanup service: defaults для retention-параметров читаются из
settings.RegistryDefaultIntвместо hardcoded-значений. - Иконка «Настройки логов»: уникальная иконка clipboard вместо дублирующей иконки колбы.
Added
settings.RegistryDefaultInt: хелпер для чтения default изParamRegistryс fallback.- Тесты retention handler (
retention_test.go): 10 тестов — Get (группа, значения, defaults), Update (valid, min/max, invalid, unknown-key, multi), формат ошибок. - Тесты Purge-методов (
purge_test.go): 7 тестов — PurgeAuditLog (базовый, пустая таблица, граница), PurgeToolAudit, PurgeWebhookRequests, PurgeRevokedRefreshTokens (revoked + active not deleted).