Контекст. Для 2026.4.x типичны правки вокруг peer-зависимостей плагинов (диапазоны совместимости, разрешение peer-ссылок) и доработки конвейера образов. Ниже — нейтрально: сверяйте release notes, гоняйте тот же сценарий на теневом узле, отделяйте рекламу от приёмки.
Ещё по кластеру: канарея, multi-AZ, тенанты, rsync · главная · блог · справка · покупка.
Чек-лист шагов и точки отката
Каждая строка — атомарный шаг; колонка отката — последний «безопасный» рубеж.
| Шаг | Действие | Контроль | Точка отката |
|---|---|---|---|
| 0 | Снимок npm ls -g --depth=0, весов LB, openclaw.lock, JSON doctor |
Артефакты в /var/db/openclaw/audit/ |
Без изменений на узлах |
| 1 | Снять долю трафика с канареечного узла; drain по вашему LB | Нет sticky на «полупустом» шлюзе | Вернуть веса из снимка шага 0 |
| 2 | npm -g: ядро openclaw@2026.4.x, затем плагины |
openclaw plugins doctor без peer warning |
npm -g uninstall … + установка прежних версий из списка |
| 3 | На каждом обновлённом узле: openclaw doctor --json по тенантам с трафиком |
Сверка semver с lock/symlink skill | Откат npm или symlink current (см. канарею) |
| 4 | Включить merge-пробу: ядро, плагины, очередь, дайджест | Один /readyz для LB |
Выключить узел из пула до зелёного JSON |
| 5 | Канарея: 5–10% трафика, два интервала пробы, затем шаги 10–20% | p95, очередь, поле дайджеста внутри JSON | Снимок весов шага 0 + broadcast «стоп промоушен» |
| 6 | Rolling на следующий узел только при зелёном шаге 5 | Нет расхождения lock между шлюзами | Изолировать отстающий узел; откат по одному узлу |
plugins doctor, сделайте откат на канарее и одно широковещательное сообщение (см. ниже).Порядок npm -g на узле
Сначала ядро CLI, затем плагины от узких peer к зависимым — так короче окно «новый CLI, старые расширения». После установок — openclaw plugins doctor --json; цепочку образов проверяйте отдельным прогоном CI, не смешивая с LB.
# Пример последовательности на одном узле (имена пакетов замените на ваш scope) set -euo pipefail sudo npm install -g "openclaw@2026.4.x" sudo npm install -g @your-scope/openclaw-plugin-core @your-scope/openclaw-plugin-vision /usr/local/bin/openclaw plugins doctor --json | tee "/tmp/plugins-doctor-$(hostname -s).json" /usr/local/bin/openclaw doctor --json | tee "/tmp/openclaw-doctor-$(hostname -s).json"
Повторяйте блок на каждом узле clustervps в очереди rolling; не копируйте node_modules между хостами — только согласованные версии из одного списка.
Doctor на каждом узле до merge-пробы
doctor на каждом узле ловит рассинхрон peer и lock до того, как LB увидит «зелёный» PID. Сохраняйте JSON с hostname; при расхождении с openclaw.lock не вводите узел в канарею. Для сценариев с образами опирайтесь на артефакт, а не на косвенный webhook.
Слияние health-проб
Объедините сигналы в один endpoint для балансировщика: версия ядра и плагинов (или резолв symlink skill), очередь, поле дайджеста webhook. Так вы не получите ситуацию, когда три URL «зелёные», а четвёртый — красный. Ниже — скелет проверки; подставьте порты и пути из гайда по тенантам.
#!/usr/bin/env bash
set -euo pipefail
TENANT_CANARY="${TENANT_CANARY:-acme}"
/usr/local/bin/openclaw version --json | tee /tmp/oc-version.json
/usr/local/bin/openclaw doctor --tenant "${TENANT_CANARY}" --json | tee /tmp/oc-doctor.json
/usr/bin/curl -fsS --max-time 3 "http://127.0.0.1:9099/v1/webhook-digest" -o /tmp/digest.json
/usr/bin/curl -fsS --max-time 3 "http://127.0.0.1:8088/readyz" | tee /tmp/readyz.json
Политика статусов: degraded допустим при жёлтом второстепенном плагине, если peer и lock согласованы; fail — немедленный вывод узла из LB и откат по чек-листу.
Канареечный сдвиг и промоушен
После зелёной merge-пробы верните малую долю; держите ≥двух интервалов p95 и очереди. Наращивайте вес, если semver на канарее совпадает со стабильными и дайджест чист. Следующий узел — только когда канарея не одинока на новой линии.
Широковещание при сбое
При красной пробе — одно сообщение дежурным: hostname, целевой 2026.4.x, шаг чек-листа, откат npm/symlink, ссылка на последний зелёный JSON. Так вы режете дубли алертов и фиксируете «стоп промоушен». Это не бизнес-webhook, а инцидент выкладки.
Коротко
Peer и образы в 2026.4.x проверяйте на теневом Mac теми же командами, что и в проде; не полагайтесь на косвенные метрики. Минимум два стабильных узла + канарея сохраняют окно отката, пока вы катаете npm -g по очереди.
readyz зависят от вашей сборки; примеры — шаблоны для clustervps.