2026-05-07 Плагин передачи файлов OpenClaw: политика путей, потолки байт и безголовый арендованный облачный Mac (HK / JP / KR / SG / US)
OpenClaw 2026.5.x урезает горячий путь шлюза и поставляет встроенный плагин передачи файлов. Поверхности file_fetch / dir_list / dir_fetch / file_write остаются бинарно-безопасными, к ним добавляются политика путей по умолчанию «запрет» и потолок около 16 МБ на операцию. На арендованном Mac mini M4 в HK/JP/KR/SG/US чаще больно соседство с CI, чем нехватка NVMe: OpenClaw, checkout Xcode, подпись и scratch живут под одним пользователем автоматизации. Материал на 2026-05-07 фиксирует контракт: разрешённые корни, рабочий каталог launchd, корреляция отказов с структурированным логированием, возврат при необходимости к ripgrep-first и чанкам, плюс TCC / доступ к файлам. Даже если модель «просто хочет файл», границы приватности остаются.
Плагин — это плоскость данных: новые разрешённые строки проходят тот же контроль, что и правила файрвола. Закрепление semver npm и откат tarball см. обновление и откат шлюза; при двойном шлюзе разверните ту же файловую политику на обоих OPENCLAW_STATE_DIR.
Почему меняется модель угроз
Общее «чтение файлов» уязвимо к prompt injection и симлинкам; запрет по умолчанию превращается в проверяемую в Git конфигурацию.
Контекст 2026.5.x
Ленивая загрузка помогает холодному старту, но сужает окно дрейфа конфигурации. Фиксируйте semver, сохраняйте npm ls --depth=0, репетируйте откат.
Запрет по умолчанию для общих билдеров
Нулевое доверие: только CI checkout, явный OPENCLAW_STATE_DIR, scratch NVMe с жизненным циклом. ~/.ssh и цепочка связки ключей — явный запрет в policy-as-code и журнал.
Инструменты
Думайте глаголами:
| Задача | Безопасно | Антипаттерн |
|---|---|---|
dir_list | Обзор внутри разрешённых корней | Обход / |
file_fetch | Бинарник с известным хэшем | Тянуть огромное медиа целиком |
file_write | Патч в scratch → git apply | Прямая запись в подписанное дерево |
Отличие от старых инструментов
На headless SSH без GUI дисциплина чанков обязательна. Уберите shell-cat как второй канал данных.
Потолок байт и чанки
Даже 16 МБ расточительны при ошибках: (1) метаданные (2) при возможности превью 64 КБ (3) полный fetch после согласования. Крупные медиа — подписанный URL.
launchd и cwd
Зафиксируйте WorkingDirectory на нейтральном пути вроде /var/lib/openclaw; следуйте приоритетам переменных окружения и секретов, чтобы HOME не расширял whitelist. Затем launchctl kickstart и curl-матрица health/readiness.
Аудит
На каждый fetch: актор, нормализованный путь, результат, байты; тот же бакет, что и nginx ingress, чтобы отделить TLS и отказы политики.
Семь шагов выката
- Заморозить semver npm и записать lock
- Снимок
OPENCLAW_STATE_DIRи plist - Allowlist в Git, ревью PR
- Синтетические пробы
dir_list/file_fetch - Включить плагин только на канарейке
- 24 ч следить за отказами и p95
- Промоут или откат tarball + plist
SLO
| Сигнал | Порог | Действие |
|---|---|---|
| Отказы/час | неожиданные пути >5 | остановить запись, diff |
| Медиана размера | >6 МБ держится | вернуть chunk-gates |
| Свободный scratch | <15 % | уборка или SKU 2 ТБ |
FAQ
| Вопрос | Ответ |
|---|---|
Рекурсия на ~? | Нет—перечисляйте корни явно. |
| Замена объектного хранилища? | Нет—большие объёмы через подписанный URL. |
Почему Mac mini M4
Пики записи конкурируют с метаданными APFS и xcodebuild. 1–2 ТБ NVMe на Mac mini M4 выравнивают задержку scratch. Ёмкость: цены, аварийные шаги: справка, FDA при необходимости через VNC.
Изолируйте scratch OpenClaw до prod
HK / JP / KR / SG / US · SSH / optional VNC