Эксплуатация OpenClaw 24 апреля 2026 г.

2026 Обновления OpenClaw, фиксация версий и откат launchctl на арендованной Mac mini ProxyMac

Инженерная команда ProxyMac 24 апреля 2026 г. около 11 мин. чтения

Шлюзы автоматизации стареют «собачьими годами»: минорный semver может перевернуть значения TLS по умолчанию, переименовать флаги CLI или сузить песочницы, которые LaunchAgents считали неизменными. На Mac mini ProxyMac в Гонконге, Японии, Корее, Сингапуре или США операционный контракт прост: предсказуемые перезапуски, аудируемые откаты и health-пробы до того, как клиенты заметят дрейф. Руководство показывает, кто должен держать ворота обновлений (владельцы платформы, а не каждая feature-команда), даёт матрицу до обновления с порогами (свободно на системном томе APFS ≥20 %, доля 5xx webhook за 24 ч <0,5 %), ритуалы снимков + контрольных сумм, упорядоченный танец launchctl bootout / kickstart -k в духе восстановления шлюза, таблицу четырёх стратегий отката, пост-обновленческие хуки к health-пробам и JSONL-логированию, а также FAQ про безнадзорные обновления. GitOps конфигурации и устранение сбоев развёртывания — обязательное чтение в том же окне изменений.

Фиксировать версии, сужать зону поражения, запрещать «latest» в продакшене

Помечайте каждый продакшен-plist точным путём к бинарнику или digest контейнера, на который может сослаться комплаенс. «Всегда тянуть main» годится на дев-ноутбуке; на арендованном железе с выплатами, маршрутизацией моделей или ночным ETL это генератор инцидентов. Держите staging-mini в том же регионе, что и прод, чтобы совпала задержка TLS — в ценах перечислены пять регионов с mini класса M4.

  • Семантические lockfile рядом с YAML OpenClaw, чтобы diff показывал намерение.
  • Уважать ThrottleInterval: не цеплять обновления быстрее, чем launchd даёт воркерам освободиться.
  • Ротация секретов отдельно от бинарных обновлений — свой календарь.

Матрица до обновления

СигналЗелёный порогЕсли красный
Свободно APFS≥20 % на системном томеАрхивировать JSONL, чистить кэш, затем трогать бинарники
Доля 5xx webhook (скользящие 24 ч)<0,5 %Сначала чинить upstream — обновления маскируют корень
Последний код выхода LaunchAgent0 на трёх последних рестартахЧитать циклы падений в Unified Logging
Смещение часов<2 с к NTPПосле обновления валидаторы JWT/HMAC падают загадочно

Снимок конфигурации, очередей и кэша моделей с контрольными суммами

Сначала весь каталог ~/Library/Application Support/OpenClaw (имена зависят от установки) в датированный tar на том же томе — копии через SMB в инциденте дают частичные записи. shasum -a 256 для tar и хэш в тикет. Срок хранения согласовать с руководством по логам, чтобы юристы ответили «что сохранили» без форензик-спринта.

Git — не база данных: бинарные шарды моделей и большие очереди SQLite — в объектное хранилище или ZFS-снимки, не в git push. Версии вести метаданными рядом с Git-тегом.

Последовательность launchctl: bootout, ожидание, bootstrap, kickstart

Современный macOS награждает терпением. После выгрузки агента ждать, пока launchctl print user/$(id -u)/com.openclaw.gateway не покажет PID, затем ставить новую сборку в версионированный каталог и symlink current. Только потом launchctl bootstrap и launchctl kickstart -k gui/$(id -u)/com.openclaw.gateway. Пропуск ожидания оставляет воркеры на старых областях разделяемой памяти — тот класс багов, что troubleshooting описывает как «работает до вторника».

# пример — замените label launchctl bootout gui/$(id -u) ~/Library/LaunchAgents/com.openclaw.gateway.plist sleep 2 # здесь сменить версионированную папку и symlink launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/com.openclaw.gateway.plist launchctl kickstart -k gui/$(id -u)/com.openclaw.gateway

Матрица отката: symlink, tar, переобразование

СтратегияВремя откатаРискКогда
Symlink на предыдущий semver-каталог30–90 сПропущенные миграции БДЧистые бинарные/API-регрессии
Полный tar-восстановление3–10 минПерезапись летающих файлов очередиПодозрение на порчу конфигурации
Переобразование mini (крайний случай)15–45 минЧеловеческая ошибка при restoreЗапутывание kext или TCC
Региональный failover на вторую miniограничено TTL DNSSplit-brain при общей БДКритический CVE без хотфикса
Отрабатывайте откат ежеквартально: если дежурный ни разу не откатывал symlink под стрессом, MTTR остаётся на бумаге.

Health-хуки и наблюдаемость после обновления

Первые 15 минут после kickstart — синтетические пробы к админ-портам localhost, выборка глубины очереди, исходящие вызовы модели с дешёвым canary-промптом. Алерты вешать на сдвиг p95 >15 % относительно базовой линии до изменения, а не только на жёсткие сбои. Экспортировать структурированные строки с upgrade_from, upgrade_to, change_ticket, чтобы пайплайн логов резал инциденты по релизу.

Вопросы и ответы

Можно ли brew upgrade в окне обслуживания? Только если комплаенс разрешает пути Homebrew в проде; многие клиенты ProxyMac кладут tarball в /opt/openclaw/releases/<semver>.

Миграции до или после нового бинарника? Обратно совместимые — до трафика; разрушительные — двухфазный флаг на несколько дней.

А XPC-хелперы? Запускать в порядке зависимостей у основного plist — граф родитель/ребёнок в восстановлении рестарта.

Почему Mac mini ProxyMac — правильное место для дисциплины обновлений

Apple Silicon M4 mini дают долгоживущие имена хостов, детерминированную производительность и запас, чтобы гонять canary-воркеры рядом с продом при blue/green — без борьбы с шумом гипервизора каждый вторник. Закрепите автоматизацию в HK / JP / KR / SG / US, оставляйте человека в контуре для мажоров, а рутину отдавайте железу, которое сами не стоите в стойку. Для GUI — VNC; если SSH режут прокси, читайте корпоративный CONNECT-гайд той же недели.

Автоматизация на железе, которое можно безопасно обновлять

HK / JP / KR / SG / US · готово к OpenClaw