0.167.2
Fixed
- Ложный 409 Conflict при сохранении MCP/permissions агента. На страницах
/agents/{id}/mcpи/agents/{id}/permissionsпосле нажатия Save появлялся баннер «agent was modified by another request, please retry», хотя фактически изменения сохранялись. Причина — race condition вPermissionsStore.save()(web/src/lib/features/permissions/usePermissions.svelte.ts):permissions.updateиagents.updateзапускались параллельно черезPromise.all, оба пишут в таблицуagents.UpdateAgentPermissions(internal/store/sqlite.go:563) фиксируетupdated_at = NOW, аAgentHandler.Update(internal/server/handler/agent.go:272) идёт черезUpdateAgentIfNotChangedс optimistic lockingWHERE id=? AND updated_at=?. Когда первый UPDATE фиксируется раньше — второй видит уже обновлённыйupdated_at, получаетRowsAffected=0и возвращаетErrConcurrentModification→ HTTP 409.Promise.allреджектится целиком → ошибка показывается пользователю. Фикс: запросы выполняются последовательно (permissions.update→agents.update); ответpermResприменяется к локальному стейту сразу после первого запроса, чтобы при падении второго retry не переслал «грязные» локальные данные.