Алекс: исследован хард-гейт approval (allowlist), откат на yolo до живого TG-теста

- allowlist read-tools + exec-policy allowlist/on-miss: чтение свободно, write блокируется
- 2 вопроса (Telegram-кнопка approval не проверена; allowlist лишает гибкости) -> yolo
- механизм и allowlist-записи задокументированы для финализации в Этап 9

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
dttb
2026-05-31 21:52:52 +03:00
parent b71a2216f9
commit f757b4afd1
2 changed files with 331 additions and 1 deletions

View File

@@ -102,7 +102,7 @@ status: active
Алекс ходит в сеть Александра: коробка → NetBird → Cudy (`100.70.207.97`) → LAN. Прямой роут в `192.168.1.0/24` нельзя (коллизия с Знаменское/НИИКН в NetBird) → всё джампом через Cudy. Обёрнуто в скрипты на коробке (`/opt/assistant/`), Алекс зовёт их через exec (`exec-policy` = yolo). Проверено в живом диалоге (TG): «какие точки wifi по комнатам» → Алекс сам зовёт `alex-unifi.sh`.
**Подтверждение write-действий (Этап 4):** гейт = ЖЕЛЕЗНОЕ ПРАВИЛО в `SOUL.md` (двухшаговый протокол: на «перезапусти» Алекс сначала описывает+спрашивает «да?», выполняет только после ОТДЕЛЬНОГО «да»). Проверено: первый прогон без правила — выполнил молча; после усиления SOUL — спрашивает. Бэкстоп = авто-аудит каждого write-действия Олегу. **Настоящий хард-гейт для продукта** = `openclaw exec-policy set --security allowlist --ask on-miss` (read-tools в allowlist, `alex-fix.sh` кнопка-approval). Не делал на пилоте — риск сломать read-tools, нужен аккуратный allowlist; отложено в Этап 9.
**Подтверждение write-действий (Этап 4):** гейт = ЖЕЛЕЗНОЕ ПРАВИЛО в `SOUL.md` (двухшаговый протокол: на «перезапусти» Алекс сначала описывает+спрашивает «да?», выполняет только после ОТДЕЛЬНОГО «да»). Проверено: первый прогон без правила — выполнил молча; после усиления SOUL — спрашивает. Бэкстоп = авто-аудит каждого write-действия Олегу. **Настоящий хард-гейт для продукта** = allowlist + `exec-policy set --security allowlist --ask on-miss --ask-fallback deny`. Механизм: `openclaw approvals allowlist add "/opt/assistant/alex-router.sh*"` (glob; хранится в `exec-approvals.json``agents."*".allowlist[].pattern`). **Протестировано 2026-05-31:** чтение под allowlist работает свободно ✅, write (`alex-fix.sh`, не в allowlist) реально БЛОКИРУЕТСЯ (podkop не перезапустился) ✅. ДВА открытых вопроса → **откатил на yolo:** (1) не проверено, рисует ли Telegram интерактивную кнопку approval (в CLI headless — пусто/deny; **если кнопки нет → write вообще невыполним**, хуже мягкого гейта); (2) `security=allowlist` лишает агента гибкости (только 5 helper'ов, не импровизирует диагностику новых проблем). **Финализация:** живой тест в TG (Олег пишет боту «перезапусти» → есть ли кнопка?). Если да — вернуть allowlist (read-tools + alex-print), alex-fix НЕ в allowlist. allowlist-записи уже лежат в `exec-approvals.json` (неактивны при yolo). Отложено в Этап 9.
| Скрипт | Что делает |
|---|---|