Steer: проверка и применение настройки — со сроком

ctl check, apply --dry-run и steer apply шли без срока. Если демон
зависнет, вместе с ним зависла бы задача панели, а следом все
операции Steer. Теперь проверка ограничена 150 с (демон сам ждёт
проверку до 120 с), применение — 300 с. Если срок вышел, это
отказ: спека возвращается прежняя, как при любом отказе.

Committed-by: agy-cli (autonomous, run #96)
This commit is contained in:
xyzmean committed 2026-10-03 16:38:37 +03:00
1 parent 8d406dbb67
commit ed62161ab2
1 file changed
+3 -3
+3 -3
View File
@@ -7117,14 +7117,14 @@ _stl_spec() {
_stl_check() { _stl_check() {
local r c local r c
if stl_running && [ -S "$STL_SOCK" ]; then if stl_running && [ -S "$STL_SOCK" ]; then
r="$(steer ctl check < "$1" 2>/dev/null)" r="$(_stl_t 150 steer ctl check < "$1" 2>/dev/null)"
c="$(printf '%s' "$r" | jsonfilter -e '@.code' 2>/dev/null)" c="$(printf '%s' "$r" | jsonfilter -e '@.code' 2>/dev/null)"
case "$c" in case "$c" in
0) return 0 ;; 0) return 0 ;;
[1-9]*) printf '%s' "$r" | jsonfilter -e '@.stderr' 2>/dev/null; return 1 ;; [1-9]*) printf '%s' "$r" | jsonfilter -e '@.stderr' 2>/dev/null; return 1 ;;
esac esac
fi fi
steer apply --dry-run --spec "$1" 2>&1 >/dev/null _stl_t 150 steer apply --dry-run --spec "$1" 2>&1 >/dev/null
} }
stl_apply() { stl_apply() {
@@ -7143,7 +7143,7 @@ stl_apply() {
mv -f "$new" "$STL_SPEC" mv -f "$new" "$STL_SPEC"
"$STL_INIT" enable >/dev/null 2>&1 "$STL_INIT" enable >/dev/null 2>&1
if stl_running; then if stl_running; then
if ! err="$(steer apply 2>&1 >/dev/null)"; then if ! err="$(_stl_t 300 steer apply 2>&1 >/dev/null)"; then
if [ -s "$prev" ]; then mv -f "$prev" "$STL_SPEC"; else rm -f "$STL_SPEC"; fi if [ -s "$prev" ]; then mv -f "$prev" "$STL_SPEC"; else rm -f "$STL_SPEC"; fi
echo "ОШИБКА: ядро steer не применило правила — остались прежние" echo "ОШИБКА: ядро steer не применило правила — остались прежние"
printf '%s\n' "$err" | tail -n 5 printf '%s\n' "$err" | tail -n 5