Це окремий контрольний список для перевірки оновлень і Plugin. Мета проста: довести, що інстальований пакет може оновлювати реальний стан користувача, виправляти застарілий legacy-стан черезDocumentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
doctor і надалі встановлювати, завантажувати, оновлювати та видаляти
Plugin з підтримуваних джерел.
Ширшу мапу засобів запуску тестів див. у Тестування. Для live-ключів провайдерів
і наборів тестів, що торкаються мережі, див. Live-тестування.
Що ми захищаємо
Тести оновлень і Plugin захищають такі контракти:- Tarball пакета повний, має чинний
dist/postinstall-inventory.jsonі не залежить від нерозпакованих файлів репозиторію. - Користувач може перейти зі старішого опублікованого пакета на пакет-кандидат без втрати конфігурації, агентів, сесій, робочих просторів, allowlist Plugin або конфігурації каналів.
openclaw doctor --fix --non-interactiveвідповідає за очищення та виправлення legacy-шляхів. Запуск не повинен обростати прихованими міграціями сумісності для застарілого стану Plugin.- Встановлення Plugin працює з локальних каталогів, git-репозиторіїв, npm-пакетів і шляху реєстру ClawHub.
- npm-залежності Plugin встановлюються в керований npm root, скануються перед довірою й видаляються через npm під час деінсталяції, щоб hoisted-залежності не залишалися.
- Оновлення Plugin стабільне, коли нічого не змінилося: записи встановлення, resolved source, структура встановлених залежностей і ввімкнений стан залишаються незмінними.
Локальне підтвердження під час розробки
Починайте вузько:release:check запускає перевірки дрейфу config/docs/API, записує package dist
inventory, запускає npm pack --dry-run, відхиляє заборонені запаковані файли, встановлює
tarball у тимчасовий prefix, запускає postinstall і виконує smoke-перевірку bundled channel
entrypoints.
Docker lanes
Docker lanes є product-level підтвердженням. Вони встановлюють або оновлюють реальний пакет у Linux-контейнерах і перевіряють поведінку через CLI-команди, запуск Gateway, HTTP-проби, RPC-статус і стан файлової системи. Під час ітерацій використовуйте цільові lanes:test:docker:pluginsперевіряє smoke встановлення Plugin, встановлення з локальної папки, skip-поведінку оновлення локальної папки, локальні папки з попередньо встановленими залежностями, встановленняfile:пакетів, git-встановлення з виконанням CLI, оновлення moving-ref у git, встановлення з npm registry з hoisted transitive dependencies, no-op оновлення npm, встановлення з локальної ClawHub fixture і no-op оновлення, поведінку оновлення marketplace та ввімкнення/інспекцію Claude-bundle. УстановітьOPENCLAW_PLUGINS_E2E_CLAWHUB=0, щоб блок ClawHub залишався герметичним/offline.test:docker:plugin-updateперевіряє, що незмінений встановлений Plugin не перевстановлюється й не втрачає install metadata під часopenclaw plugins update.test:docker:upgrade-survivorвстановлює tarball-кандидат поверх dirty old-user fixture, запускає оновлення пакета плюс non-interactive doctor, потім запускає loopback Gateway і перевіряє збереження стану.test:docker:published-upgrade-survivorспершу встановлює опублікований baseline, конфігурує його через вбудований рецептopenclaw config set, оновлює його до tarball-кандидата, запускає doctor, перевіряє legacy cleanup, запускає Gateway і пробує/healthz,/readyzта RPC-статус.test:docker:update-migrationє cleanup-heavy published-update lane. Він стартує з налаштованого Discord/Telegram-style стану користувача, запускає baseline doctor, щоб налаштовані залежності Plugin мали шанс матеріалізуватися, сіє legacy plugin dependency debris для налаштованого packaged plugin, оновлює до tarball-кандидата й вимагає, щоб post-update doctor видалив legacy dependency roots.
base, feishu-channel, bootstrap-persona,
plugin-deps-cleanup, tilde-log-path і versioned-runtime-deps. В aggregate runs
OPENCLAW_UPGRADE_SURVIVOR_SCENARIOS=reported-issues розгортається в усі reported
issue-shaped scenarios.
Повна міграція оновлень навмисно відокремлена від Full Release CI. Використовуйте
ручний workflow Update Migration, коли release-питання звучить так: “чи може кожен
опублікований stable release від 2026.4.23 і далі оновитися до цього кандидата та
очистити plugin dependency debris?”:
Package Acceptance
Package Acceptance — це GitHub-native package gate. Він визначає один candidate package у tarballpackage-under-test, записує version і SHA-256, а потім
запускає reusable Docker E2E lanes проти саме цього tarball. Workflow harness
ref відокремлений від package source ref, тому поточна логіка тестів може перевіряти
старіші trusted releases.
Джерела кандидатів:
source=npm: перевіритиopenclaw@beta,openclaw@latestабо точну опубліковану версію.source=ref: запакувати trusted branch, tag або commit з вибраним поточним harness.source=url: перевірити HTTPS tarball з обов’язковимpackage_sha256.source=artifact: повторно використати tarball, завантажений іншим Actions run.
release-history — це bounded release-check sample: останні шість stable releases,
2026.4.23 і один старіший pre-date anchor. Для вичерпного покриття published update
migration використовуйте all-since-2026.4.23 в окремому workflow Update Migration
замість Full Release CI.
Запустіть package profile вручну під час перевірки кандидата перед релізом:
suite_profile=product, коли release-питання охоплює MCP channels,
cron/subagent cleanup, OpenAI web search або OpenWebUI. Використовуйте suite_profile=full
лише тоді, коли потрібне повне покриття Docker release-path.
Типовий варіант для релізу
Для release candidates типовий proof stack такий:pnpm check:changedіpnpm test:changedдля source-level регресій.pnpm release:checkдля цілісності артефакту пакета.- Package Acceptance
packageprofile або release-check custom package lanes для install/update/plugin contracts. - Cross-OS release checks для OS-specific installer, onboarding і platform behavior.
- Live-набори лише тоді, коли змінена surface зачіпає provider або hosted-service behavior.
Legacy-сумісність
Compatibility leniency вузька й обмежена в часі:- Пакети до
2026.4.25включно, зокрема2026.4.25-beta.*, можуть толерувати вже випущені прогалини package metadata у Package Acceptance. - Опублікований пакет
2026.4.26може попереджати про local build metadata stamp files, які вже були випущені. - Пізніші пакети мають задовольняти сучасні контракти. Ті самі прогалини призводять до failure замість warning або skipping.
upgrade-survivor або published-upgrade-survivor.
Додавання покриття
Коли змінюєте поведінку оновлення або Plugin, додавайте покриття на найнижчому рівні, який може впасти з правильної причини:- Чиста логіка шляхів або metadata: unit test поруч із source.
- Поведінка package inventory або packed-file:
package-dist-inventoryабо tarball checker test. - Поведінка CLI install/update: Docker lane assertion або fixture.
- Поведінка published-release migration: сценарій
published-upgrade-survivor. - Поведінка registry/package source: fixture
test:docker:pluginsабо ClawHub fixture server. - Поведінка dependency layout або cleanup: перевіряйте і runtime execution, і
filesystem boundary. npm-залежності можуть бути hoisted під managed npm
root, тому тести мають доводити, що root сканується/очищується, замість припущення про
package-local дерево
node_modules.
Тріаж збоїв
Починайте з ідентичності артефакту:- Summary
resolve_packageу Package Acceptance: source, version, SHA-256 і artifact name. - Docker artifacts:
.artifacts/docker-tests/**/summary.json,failures.json, lane logs і rerun commands. - Upgrade survivor summary:
.artifacts/upgrade-survivor/summary.json, зокрема baseline version, candidate version, scenario, phase timings і recipe steps.