OpenClaw має три публічні канали випусків: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.
- stable: теговані випуски, які за замовчуванням публікуються в npm
beta, або в npmlatest, коли це явно запитано - beta: передрелізні теги, які публікуються в npm
beta - dev: рухома вершина
main
Назви версій
- Версія стабільного випуску:
YYYY.M.D- Git-тег:
vYYYY.M.D
- Git-тег:
- Версія стабільного корекційного випуску:
YYYY.M.D-N- Git-тег:
vYYYY.M.D-N
- Git-тег:
- Передрелізна beta-версія:
YYYY.M.D-beta.N- Git-тег:
vYYYY.M.D-beta.N
- Git-тег:
- Не доповнюйте місяць або день нулями
latestозначає поточний просунутий стабільний npm-випускbetaозначає поточну ціль встановлення beta- Стабільні та стабільні корекційні випуски за замовчуванням публікуються в npm
beta; оператори випуску можуть явно націлити їх наlatestабо просунути перевірену beta-збірку пізніше - Кожен стабільний випуск OpenClaw постачається разом із npm-пакетом і застосунком macOS; beta-випуски зазвичай спочатку перевіряють і публікують шлях npm/пакета, а збирання/підпис/нотаризацію mac-застосунку залишають для стабільного випуску, якщо це явно не запитано
Каденція випусків
- Випуски рухаються спочатку через beta
- Стабільний випуск іде лише після перевірки останньої beta
- Maintainer-и зазвичай створюють випуски з гілки
release/YYYY.M.D, створеної з поточногоmain, щоб перевірка випуску та виправлення не блокували нову розробку вmain - Якщо beta-тег уже було надіслано або опубліковано й він потребує виправлення, maintainer-и створюють
наступний тег
-beta.Nзамість видалення або повторного створення старого beta-тега - Детальна процедура випуску, погодження, облікові дані та нотатки з відновлення доступні лише maintainer-ам
Контрольний список оператора випуску
Цей контрольний список є публічною формою процесу випуску. Приватні облікові дані, підписування, нотаризація, відновлення dist-tag і деталі аварійного відкату залишаються в runbook випуску лише для maintainer-ів.- Почніть із поточного
main: отримайте найновіші зміни, підтвердьте, що цільовий коміт надіслано, і підтвердьте, що поточний CImainдостатньо зелений, щоб створити від нього гілку. - Перепишіть верхній розділ
CHANGELOG.mdз реальної історії комітів за допомогою/changelog, залиште записи орієнтованими на користувача, закомітьте його, надішліть його та виконайте rebase/pull ще раз перед створенням гілки. - Перегляньте записи сумісності випуску в
src/plugins/compat/registry.tsіsrc/commands/doctor/shared/deprecation-compat.ts. Видаляйте застарілу сумісність лише тоді, коли шлях оновлення лишається покритим, або зафіксуйте, чому її навмисно збережено. - Створіть
release/YYYY.M.Dз поточногоmain; не виконуйте звичайну роботу над випуском безпосередньо вmain. - Підвищте кожне потрібне місце з версією для запланованого тега, потім виконайте
pnpm release:prep. Це оновлює версії Plugin, інвентар Plugin, схему конфігурації, метадані конфігурації вбудованих каналів, базову лінію документації конфігурації, експорти Plugin SDK і базову лінію API Plugin SDK у правильному порядку. Закомітьте будь-який згенерований дрейф перед тегуванням. Потім запустіть локальний детермінований preflight:pnpm check:test-types,pnpm check:architecture,pnpm build && pnpm ui:buildіpnpm release:check. - Запустіть
OpenClaw NPM Releaseзpreflight_only=true. Поки тега не існує, повний 40-символьний SHA гілки випуску дозволено для preflight лише з метою перевірки. Збережіть успішнийpreflight_run_id. - Запустіть усі передрелізні тести через
Full Release Validationдля гілки випуску, тега або повного SHA коміту. Це єдина ручна точка входу для чотирьох великих тестових боксів випуску: Vitest, Docker, QA Lab і Package. - Якщо перевірка не вдається, виправте в гілці випуску та повторно запустіть найменший невдалий файл, канал, workflow job, профіль пакета, provider або allowlist моделі, що доводить виправлення. Повторно запускайте повний umbrella лише тоді, коли змінена поверхня робить попередні докази застарілими.
- Для beta позначте
vYYYY.M.D-beta.N, потім запустітьOpenClaw Release Publishз відповідної гілкиrelease/YYYY.M.D. Він перевіряєpnpm plugins:sync:check, паралельно надсилає всі публіковані пакети Plugin до npm і той самий набір до ClawHub, а потім просуває підготовлений preflight-артефакт OpenClaw npm з відповідним dist-tag, щойно публікація Plugin в npm завершується успішно. Після успішного завершення дочірнього процесу публікації OpenClaw npm він створює або оновлює відповідну сторінку GitHub release/prerelease з повного відповідного розділуCHANGELOG.md. Стабільні випуски, опубліковані в npmlatest, стають найновішим випуском GitHub; стабільні maintenance-випуски, залишені в npmbeta, створюються з GitHublatest=false. Публікація ClawHub може ще тривати, поки публікується OpenClaw npm, але workflow публікації випуску одразу виводить ідентифікатори дочірніх запусків. За замовчуванням він не чекає на ClawHub після його dispatch, тому доступність OpenClaw npm не блокується повільнішими погодженнями ClawHub або роботою registry; встановітьwait_for_clawhub=true, коли ClawHub має блокувати завершення workflow. Шлях ClawHub повторює тимчасові збої встановлення CLI-залежностей, публікує Plugin-и, що пройшли preview, навіть коли одна preview-комірка має нестабільний збій, і завершується перевіркою registry для кожної очікуваної версії Plugin, щоб часткові публікації залишалися видимими та придатними для повтору. Після публікації виконайтеpnpm release:verify-beta -- YYYY.M.D-beta.N --openclaw-npm-run <run-id> --plugin-npm-run <run-id> --plugin-clawhub-run <run-id>для перевірки GitHub prerelease, npm dist-tagbeta, цілісності npm, опублікованого шляху встановлення, точних версій ClawHub, артефактів ClawHub і висновків дочірніх workflow однією командою. Додайте--rerun-failed-clawhub, коли sidecar ClawHub завершився невдало лише в job-ах, які можна повторити, і його слід повторно запустити на місці. Потім запустіть post-publish package acceptance проти опублікованого пакетаopenclaw@YYYY.M.D-beta.Nабоopenclaw@beta. Якщо надісланий або опублікований prerelease потребує виправлення, створіть наступний відповідний номер prerelease; не видаляйте й не переписуйте старий prerelease. - Для stable продовжуйте лише після того, як перевірена beta або release candidate має
потрібні докази перевірки. Публікація stable в npm також проходить через
OpenClaw Release Publish, повторно використовуючи успішний preflight-артефакт черезpreflight_run_id; готовність стабільного випуску macOS також потребує упакованих.zip,.dmg,.dSYM.zipі оновленогоappcast.xmlуmain. Приватний workflow публікації macOS автоматично публікує підписаний appcast у публічнийmainпісля перевірки release assets; якщо branch protection блокує прямий push, він відкриває або оновлює PR appcast. - Після публікації запустіть npm post-publish verifier, опційний автономний published-npm Telegram E2E, коли вам потрібен післяпублікаційний доказ каналу, просування dist-tag за потреби, перевірте згенеровану сторінку GitHub release і виконайте кроки оголошення випуску.
Release preflight
- Запустіть
pnpm check:test-typesперед передрелізною перевіркою, щоб тестовий TypeScript залишався покритим поза швидшим локальним шлюзомpnpm check - Запустіть
pnpm check:architectureперед передрелізною перевіркою, щоб ширші перевірки циклів імпортів і меж архітектури були зеленими поза швидшим локальним шлюзом - Запустіть
pnpm build && pnpm ui:buildпередpnpm release:check, щоб очікувані релізні артефактиdist/*і бандл Control UI існували для кроку перевірки пакування - Запустіть
pnpm release:prepпісля підвищення версії в корені й перед тегуванням. Він запускає кожен детермінований релізний генератор, який часто розходиться після зміни версії/конфігурації/API: версії Plugin, інвентар Plugin, схему базової конфігурації, метадані конфігурації вбудованих каналів, базову лінію документації конфігурації, експорти plugin SDK і базову лінію API plugin SDK.pnpm release:checkповторно запускає ці захисні перевірки в режимі перевірки та повідомляє про кожен знайдений збій дрейфу згенерованих файлів за один прохід перед запуском перевірок релізу пакета. - Запустіть ручний workflow
Full Release Validationперед затвердженням релізу, щоб запустити всі передрелізні тестові середовища з однієї точки входу. Він приймає гілку, тег або повний SHA коміту, запускає ручнийCIі запускаєOpenClaw Release Checksдля install smoke, приймання пакета, крос-ОС перевірок пакета, паритету QA Lab, Matrix і Telegram lanes. Стабільні/типові запуски тримають вичерпні live/E2E і Docker release-path soak заrun_release_soak=true;release_profile=fullпримусово вмикає soak. Зrelease_profile=fullіrerun_group=allвін також запускає package Telegram E2E проти артефактуrelease-package-under-testз release checks. Надайтеrelease_package_specпісля публікації beta, щоб повторно використати відвантажений npm-пакет у release checks, Package Acceptance і package Telegram E2E без перебудови релізного tarball. Надайтеnpm_telegram_package_specлише тоді, коли Telegram має використовувати інший опублікований пакет, ніж решта release validation. Надайтеpackage_acceptance_package_spec, коли Package Acceptance має використовувати інший опублікований пакет, ніж специфікація релізного пакета. Надайтеevidence_package_spec, коли приватний звіт доказів має довести, що валідація відповідає опублікованому npm-пакету без примусового Telegram E2E. Приклад:gh workflow run full-release-validation.yml --ref main -f ref=release/YYYY.M.D - Запустіть ручний workflow
Package Acceptance, коли потрібен побічний доказ для кандидата пакета, поки релізна робота триває. Використовуйтеsource=npmдляopenclaw@beta,openclaw@latestабо точної релізної версії;source=ref, щоб запакувати довірену гілку/тег/SHApackage_refз поточним harnessworkflow_ref;source=urlдля HTTPS tarball з обов’язковим SHA-256; абоsource=artifactдля tarball, завантаженого іншим запуском GitHub Actions. Workflow визначає кандидата якpackage-under-test, повторно використовує Docker E2E release scheduler проти цього tarball і може запускати Telegram QA проти того самого tarball зtelegram_mode=mock-openaiабоtelegram_mode=live-frontier. Коли вибрані Docker lanes містятьpublished-upgrade-survivor, артефакт пакета є кандидатом, аpublished_upgrade_survivor_baselineвибирає опубліковану базову лінію.update-restart-authвикористовує пакет-кандидат як встановлений CLI і як package-under-test, тож він перевіряє managed restart path команди оновлення кандидата. Приклад:gh workflow run package-acceptance.yml --ref main -f workflow_ref=main -f source=npm -f package_spec=openclaw@beta -f suite_profile=product -f published_upgrade_survivor_baseline=openclaw@2026.4.26 -f telegram_mode=mock-openaiПоширені профілі:smoke: lanes встановлення/каналу/агента, мережі Gateway і перезавантаження конфігураціїpackage: artifact-native lanes пакета/оновлення/перезапуску/Plugin без OpenWebUI або live ClawHubproduct: профіль package плюс MCP-канали, очищення cron/subagent, вебпошук OpenAI і OpenWebUIfull: Docker release-path chunks з OpenWebUIcustom: точний вибірdocker_lanesдля сфокусованого повторного запуску
- Запустіть ручний workflow
CIнапряму, коли потрібне лише повне звичайне покриття CI для релізного кандидата. Ручні запуски CI обходять scoped changed і примусово запускають Linux Node shards, bundled-plugin shards, channel contracts, сумісність Node 22,check,check-additional, build smoke, перевірки документації, Python skills, Windows, macOS, Android і Control UI i18n lanes. Приклад:gh workflow run ci.yml --ref release/YYYY.M.D - Запустіть
pnpm qa:otel:smokeпід час валідації релізної телеметрії. Він перевіряє QA-lab через локальний OTLP/HTTP receiver і верифікує експортовані назви trace span, обмежені атрибути та редагування вмісту/ідентифікаторів без потреби в Opik, Langfuse або іншому зовнішньому колекторі. - Запустіть
pnpm release:checkперед кожним тегованим релізом - Запустіть
OpenClaw Release Publishдля mutating publish sequence після того, як тег існує. Запускайте його зrelease/YYYY.M.D(абоmain, коли публікуєте тег, досяжний з main), передайте релізний тег і успішний OpenClaw npmpreflight_run_id, і зберігайте типовий scope публікації Pluginall-publishable, якщо ви не виконуєте навмисний сфокусований repair. Workflow серіалізує публікацію Plugin в npm, публікацію Plugin в ClawHub і публікацію OpenClaw в npm, щоб основний пакет не був опублікований раніше за свої зовнішні plugins. - Release checks тепер виконуються в окремому ручному workflow:
OpenClaw Release Checks OpenClaw Release Checksтакож запускає lane mock parity QA Lab плюс швидкий live-профіль Matrix і Telegram QA lane перед затвердженням релізу. Live lanes використовують середовищеqa-live-shared; Telegram також використовує оренди облікових даних Convex CI. Запустіть ручний workflowQA-Lab - All Lanesзmatrix_profile=allіmatrix_shards=true, коли потрібен повний інвентар Matrix transport, media і E2EE паралельно.- Крос-ОС валідація встановлення та runtime оновлення є частиною публічних
OpenClaw Release ChecksіFull Release Validation, які напряму викликають reusable workflow.github/workflows/openclaw-cross-os-release-checks-reusable.yml - Це розділення навмисне: тримайте реальний шлях npm-релізу коротким, детермінованим і зосередженим на артефактах, тоді як повільніші live checks залишаються у своїй окремій lane, щоб вони не затримували й не блокували publish
- Release checks із секретами слід запускати через
Full Release Validationабо з workflow refmain/release, щоб логіка workflow і секрети залишалися контрольованими OpenClaw Release Checksприймає гілку, тег або повний SHA коміту, якщо визначений коміт досяжний з гілки OpenClaw або релізного тегу- Validation-only preflight
OpenClaw NPM Releaseтакож приймає поточний повний 40-символьний SHA коміту workflow-branch без вимоги запушеного тегу - Цей шлях SHA призначений лише для валідації та не може бути підвищений до реального publish
- У режимі SHA workflow синтезує
v<package.json version>лише для перевірки метаданих пакета; реальний publish усе одно потребує справжнього релізного тегу - Обидва workflows тримають реальний шлях publish і promotion на GitHub-hosted runners, тоді як немутуючий шлях валідації може використовувати більші Blacksmith Linux runners
- Цей workflow запускає
OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_CACHE_TEST=1 pnpm test:live:cacheз використанням обох workflow secretsOPENAI_API_KEYіANTHROPIC_API_KEY - npm release preflight більше не чекає на окрему lane release checks
- Перед локальним тегуванням релізного кандидата запустіть
RELEASE_TAG=vYYYY.M.D-beta.N pnpm release:fast-pretag-check. Helper запускає швидкі релізні guardrails, перевірки релізу Plugin npm/ClawHub, build, UI build іrelease:openclaw:npm:checkу порядку, який виявляє поширені помилки, що блокують затвердження, до запуску workflow публікації GitHub. - Запустіть
RELEASE_TAG=vYYYY.M.D node --import tsx scripts/openclaw-npm-release-check.ts(або відповідний beta/correction tag) перед затвердженням - Після npm publish запустіть
node --import tsx scripts/openclaw-npm-postpublish-verify.ts YYYY.M.D(або відповідну beta/correction version), щоб перевірити шлях встановлення з опублікованого registry у свіжий temp prefix - Після beta publish запустіть
OPENCLAW_NPM_TELEGRAM_PACKAGE_SPEC=openclaw@YYYY.M.D-beta.N OPENCLAW_NPM_TELEGRAM_CREDENTIAL_SOURCE=convex OPENCLAW_NPM_TELEGRAM_CREDENTIAL_ROLE=ci pnpm test:docker:npm-telegram-liveщоб перевірити onboarding встановленого пакета, налаштування Telegram і реальний Telegram E2E проти опублікованого npm-пакета з використанням спільного пулу орендованих облікових даних Telegram. Локальні одноразові запуски maintainer можуть пропустити Convex vars і передати три env credentialsOPENCLAW_QA_TELEGRAM_*напряму. - Щоб запустити повний post-publish beta smoke з машини maintainer, використовуйте
pnpm release:beta-smoke -- --beta betaN. Helper запускає Parallels npm update/fresh-target validation, запускаєNPM Telegram Beta E2E, опитує точний workflow run, завантажує артефакт і друкує звіт Telegram. - Maintainers можуть запускати ту саму post-publish check з GitHub Actions через
ручний workflow
NPM Telegram Beta E2E. Він навмисно лише ручний і не запускається під час кожного merge. - Автоматизація релізів maintainer тепер використовує preflight-then-promote:
- реальний npm publish має пройти успішний npm
preflight_run_id - реальний npm publish має запускатися з тієї самої гілки
mainабоrelease/YYYY.M.D, що й успішний preflight run - stable npm releases типово використовують
beta - stable npm publish може явно націлюватися на
latestчерез workflow input - token-based мутація npm dist-tag тепер живе в
openclaw/releases-private/.github/workflows/openclaw-npm-dist-tags.ymlдля безпеки, тому щоnpm dist-tag addдосі потребуєNPM_TOKEN, тоді як публічний repo зберігає publish лише через OIDC - публічний
macOS Releaseє validation-only; коли тег існує лише на release branch, але workflow запускається зmain, задайтеpublic_release_branch=release/YYYY.M.D - реальний приватний mac publish має пройти успішні приватні mac
preflight_run_idіvalidate_run_id - реальні publish paths підвищують підготовлені артефакти замість того, щоб перебудовувати їх знову
- реальний npm publish має пройти успішний npm
- Для stable correction releases на кшталт
YYYY.M.D-Npost-publish verifier також перевіряє той самий шлях оновлення temp-prefix зYYYY.M.DдоYYYY.M.D-N, щоб release corrections не могли непомітно залишити старіші глобальні встановлення на базовому stable payload - npm release preflight fail-closed, якщо tarball не містить одночасно
dist/control-ui/index.htmlі непорожній payloaddist/control-ui/assets/, щоб ми знову не відвантажили порожню браузерну dashboard - Post-publish verification також перевіряє, що опубліковані entrypoints Plugin і
метадані пакета присутні у встановленому registry layout. Реліз, який
відвантажує відсутні runtime payloads Plugin, провалює postpublish verifier і
не може бути підвищений до
latest. pnpm test:install:smokeтакож забезпечує бюджетunpackedSizenpm pack для candidate update tarball, тож installer e2e виявляє випадкове pack bloat до release publish path- Якщо релізна робота торкалася планування CI, timing manifests extension або
test matrices extension, перегенеруйте й перегляньте outputs матриці
plugin-prerelease-extension-shard, що належать planner, з.github/workflows/plugin-prerelease.ymlперед затвердженням, щоб release notes не описували застарілий CI layout - Stable macOS release readiness також включає updater surfaces:
- GitHub release має зрештою містити запаковані
.zip,.dmgі.dSYM.zip appcast.xmlуmainмає вказувати на новий stable zip після publish; приватний macOS publish workflow комітить його автоматично або відкриває appcast PR, коли direct push заблоковано- запакований застосунок має зберігати non-debug bundle id, непорожній Sparkle feed
URL і
CFBundleVersionна рівні або вище канонічного Sparkle build floor для цієї релізної версії
- GitHub release має зрештою містити запаковані
Релізні тестові бокси
Full Release Validation — це спосіб, яким оператори запускають усі передрелізні тести з
однієї точки входу. Для доказу за зафіксованим комітом у гілці, що швидко
змінюється, використовуйте допоміжний скрипт, щоб кожен дочірній workflow
запускався з тимчасової гілки, зафіксованої на цільовому SHA:
release-ci/<sha>-..., запускає Full Release Validation
з цієї гілки з ref=<sha>, перевіряє, що headSha кожного дочірнього workflow
збігається з цільовим, а потім видаляє тимчасову гілку. Це запобігає випадковому
доказу дочірнього запуску з новішого main.
Для перевірки релізної гілки або тега запустіть його з довіреного workflow ref
main і передайте релізну гілку або тег як ref:
CI з
target_ref=<release-ref>, запускає OpenClaw Release Checks, готує
батьківський артефакт release-package-under-test для перевірок, орієнтованих
на пакет, і запускає автономний пакетний Telegram E2E, коли
release_profile=full з rerun_group=all або коли задано
release_package_spec чи npm_telegram_package_spec. Потім OpenClaw Release Checks розгалужується на install smoke, крос-OS релізні перевірки, live/E2E
Docker покриття релізного шляху, коли ввімкнено soak, Package Acceptance з
Telegram package QA, QA Lab parity, live Matrix і live Telegram. Повний запуск
прийнятний лише тоді, коли зведення Full Release Validation
показує normal_ci і release_checks як успішні. У режимі full/all дочірній
npm_telegram також має бути успішним; поза full/all його пропускають, якщо
не було надано опублікований release_package_spec або
npm_telegram_package_spec. Фінальне зведення верифікатора містить таблиці
найповільніших job для кожного дочірнього запуску, щоб release manager бачив
поточний критичний шлях без завантаження логів.
Див. Повна релізна перевірка для повної
матриці етапів, точних назв workflow job, відмінностей між профілями stable і
full, артефактів і цільових ручок повторного запуску.
Дочірні workflow запускаються з довіреного ref, який запускає Full Release Validation, зазвичай --ref main, навіть коли цільовий ref вказує на
старішу релізну гілку або тег. Окремого input для workflow-ref у Full Release
Validation немає; вибирайте довірений harness, вибираючи ref запуску workflow.
Не використовуйте --ref main -f ref=<sha> для точного доказу коміту на рухомому main;
сирі commit SHA не можуть бути workflow dispatch refs, тому використовуйте
pnpm ci:full-release --sha <sha>, щоб створити зафіксовану тимчасову гілку.
Використовуйте release_profile, щоб вибрати ширину live/provider:
minimum: найшвидший критичний для релізу OpenAI/core live і Docker шляхstable: minimum плюс стабільне покриття provider/backend для схвалення релізуfull: stable плюс широке консультативне покриття provider/media
run_release_soak=true зі stable, коли release-blocking лінії
зелені й вам потрібні вичерпні live/E2E, Docker релізний шлях і
обмежений sweep виживання опублікованих upgrade перед просуванням. Цей sweep
покриває останні чотири stable пакети плюс зафіксовані базові лінії 2026.4.23
і 2026.5.2 плюс старіше покриття 2026.4.15, з видаленими дубльованими
базовими лініями, і кожна базова лінія шардиться в окремий Docker runner job.
full передбачає run_release_soak=true.
OpenClaw Release Checks використовує довірений workflow ref, щоб один раз
розв’язати цільовий ref як release-package-under-test, і повторно використовує
цей артефакт у крос-OS, Package Acceptance і Docker перевірках релізного шляху,
коли запускається soak. Це тримає всі бокси, орієнтовані на пакет, на тих самих
байтах і уникає повторних збірок пакета.
Після того як beta вже є на npm, задайте release_package_spec=openclaw@YYYY.M.D-beta.N,
щоб релізні перевірки один раз завантажили відвантажений пакет, витягнули SHA
джерела збірки з dist/build-info.json і повторно використали цей артефакт для
крос-OS, Package Acceptance, Docker релізного шляху й пакетних Telegram ліній.
Крос-OS OpenAI install smoke використовує OPENCLAW_CROSS_OS_OPENAI_MODEL, коли
задано змінну repo/org, інакше openai/gpt-5.4, бо ця лінія доводить
встановлення пакета, onboarding, запуск gateway і один live agent turn, а не
бенчмарк найповільнішої моделі за замовчуванням. Ширша live provider matrix
залишається місцем для модель-специфічного покриття.
Використовуйте ці варіанти залежно від етапу релізу:
Verify full validation.
Для обмеженого відновлення передайте rerun_group у парасольку. all — це
справжній запуск release-candidate, ci запускає лише дочірній normal CI,
plugin-prerelease запускає лише release-only plugin child, release-checks
запускає кожен релізний бокс, а вужчі релізні групи — це install-smoke,
cross-os, live-e2e, package, qa, qa-parity, qa-live і npm-telegram.
Цільові повторні запуски npm-telegram потребують release_package_spec або
npm_telegram_package_spec; full/all запуски з release_profile=full
використовують пакетний артефакт release-checks. Цільові крос-OS повторні
запуски можуть додати cross_os_suite_filter=windows/packaged-upgrade або
інший OS/suite фільтр. Збої QA release-check є консультативними; збій лише QA
не блокує релізну перевірку.
Vitest
Бокс Vitest — це ручний дочірній workflowCI. Ручний CI навмисно обходить
changed scoping і примусово запускає звичайний test graph для реліз-кандидата:
Linux Node shards, bundled-plugin shards, channel contracts, сумісність Node 22,
check, check-additional, build smoke, docs checks, Python skills, Windows,
macOS, Android і Control UI i18n.
Використовуйте цей бокс, щоб відповісти: «чи пройшло дерево джерел повний
звичайний набір тестів?» Це не те саме, що перевірка продукту релізного шляху.
Докази, які слід зберігати:
- зведення
Full Release Validation, що показує URL запущеногоCIrun - зелений
CIrun на точному цільовому SHA - назви збійних або повільних shards із CI jobs під час розслідування регресій
- артефакти таймінгів Vitest, як-от
.artifacts/vitest-shard-timings.json, коли запуск потребує аналізу продуктивності
Docker
Бокс Docker живе вOpenClaw Release Checks через
openclaw-live-and-e2e-checks-reusable.yml, плюс workflow install-smoke у
release-mode. Він перевіряє реліз-кандидат через пакетовані Docker середовища,
а не лише тести рівня джерел.
Релізне Docker покриття включає:
- повний install smoke з увімкненим повільним Bun global install smoke
- підготовку/повторне використання smoke image root Dockerfile за цільовим SHA, з QR, root/gateway і installer/Bun smoke jobs, що запускаються як окремі install-smoke shards
- repository E2E лінії
- Docker chunks релізного шляху:
core,package-update-openai,package-update-anthropic,package-update-core,plugins-runtime-plugins,plugins-runtime-services,plugins-runtime-install-a,plugins-runtime-install-b,plugins-runtime-install-c,plugins-runtime-install-d,plugins-runtime-install-e,plugins-runtime-install-f,plugins-runtime-install-gіplugins-runtime-install-h - покриття OpenWebUI всередині chunk
plugins-runtime-services, коли запитано - розділені лінії встановлення/видалення bundled plugin
bundled-plugin-install-uninstall-0доbundled-plugin-install-uninstall-23 - live/E2E provider suites і Docker live model coverage, коли релізні перевірки включають live suites
.artifacts/docker-tests/ з логами ліній,
summary.json, failures.json, таймінгами фаз, JSON плану планувальника і
командами повторного запуску. Для цільового відновлення використовуйте
docker_lanes=<lane[,lane]> у reusable live/E2E workflow замість повторного
запуску всіх релізних chunks. Згенеровані команди повторного запуску включають
попередні package_artifact_run_id і підготовлені Docker image inputs, коли
доступні, щоб збійна лінія могла повторно використати той самий tarball і GHCR
images.
QA Lab
Бокс QA Lab також є частиноюOpenClaw Release Checks. Це agentic behavior і
channel-level release gate, окремий від Vitest і Docker механіки пакетів.
Релізне QA Lab покриття включає:
- mock parity лінію, що порівнює OpenAI candidate lane з базовою лінією Opus 4.6 за допомогою agentic parity pack
- швидкий live Matrix QA profile з використанням середовища
qa-live-shared - live Telegram QA lane з використанням Convex CI credential leases
pnpm qa:otel:smoke, коли релізній telemetry потрібен явний локальний доказ
Пакет
Бокс Package — це gate встановлюваного продукту. Він підтримуєтьсяPackage Acceptance і resolver
scripts/resolve-openclaw-package-candidate.mjs. Resolver нормалізує кандидата
в tarball package-under-test, який споживає Docker E2E, перевіряє package
inventory, записує версію пакета й SHA-256, і тримає ref workflow harness
окремо від ref джерела пакета.
Підтримувані джерела кандидатів:
source=npm:openclaw@beta,openclaw@latestабо точна релізна версія OpenClawsource=ref: запакувати довіренуpackage_refгілку, тег або повний commit SHA з вибранимworkflow_refharnesssource=url: завантажити HTTPS.tgzз обов’язковимpackage_sha256source=artifact: повторно використати.tgz, завантажений іншим GitHub Actions run
OpenClaw Release Checks запускає перевірку прийнятності пакетів із source=artifact, підготовленим артефактом релізного пакета, suite_profile=custom, docker_lanes=doctor-switch update-channel-switch skill-install update-corrupt-plugin upgrade-survivor published-upgrade-survivor update-restart-auth plugins-offline plugin-update, telegram_mode=mock-openai. Перевірка прийнятності пакетів утримує міграцію, оновлення, перезапуск оновлення з налаштованою автентифікацією, живе встановлення Skills із ClawHub, очищення застарілих залежностей Plugin, автономні фікстури Plugin, оновлення Plugin і QA пакета Telegram відносно того самого розв’язаного tarball. Блокувальні релізні перевірки використовують стандартну базову лінію останнього опублікованого пакета; run_release_soak=true або release_profile=full розширює її до кожної стабільної базової лінії, опублікованої в npm, від 2026.4.23 до latest, а також фікстур повідомлених проблем. Використовуйте перевірку прийнятності пакетів із source=npm для вже випущеного кандидата або source=ref/source=artifact для локального npm tarball, підкріпленого SHA, перед публікацією. Це нативна для GitHub заміна більшої частини покриття пакетів і оновлень, яке раніше вимагало Parallels. Крос-ОС релізні перевірки все ще важливі для специфічного для ОС онбордингу, інсталятора та поведінки платформи, але продуктова валідація пакетів і оновлень має віддавати перевагу перевірці прийнятності пакетів.
Канонічний чекліст для валідації оновлень і Plugin —
Тестування оновлень і Plugin. Використовуйте його, коли вирішуєте, яка локальна, Docker, перевірка прийнятності пакетів або релізна смуга доводить зміну встановлення/оновлення Plugin, очищення doctor або міграції опублікованого пакета. Вичерпна міграція опублікованих оновлень з кожного стабільного пакета 2026.4.23+ є окремим ручним workflow Update Migration, а не частиною Full Release CI.
Поблажливість застарілої перевірки прийнятності пакетів навмисно обмежена в часі. Пакети до 2026.4.25 включно можуть використовувати шлях сумісності для прогалин у метаданих, уже опублікованих у npm: приватні записи QA-інвентарю, відсутні в tarball, відсутній gateway install --wrapper, відсутні patch-файли у git-фікстурі, отриманій із tarball, відсутній збережений update.channel, застарілі розташування install-record для Plugin, відсутнє збереження install-record маркетплейсу та міграція метаданих конфігурації під час plugins update. Опублікований пакет 2026.4.26 може попереджати про локальні файли штампів метаданих збірки, які вже були випущені. Пізніші пакети мають відповідати сучасним контрактам пакетів; ті самі прогалини провалюють релізну валідацію.
Використовуйте ширші профілі перевірки прийнятності пакетів, коли релізне питання стосується фактичного встановлюваного пакета:
smoke: швидкі смуги встановлення пакета/каналу/агента, мережі Gateway і перезавантаження конфігураціїpackage: контракти встановлення/оновлення/перезапуску/пакета Plugin плюс живе підтвердження встановлення Skills із ClawHub; це стандарт релізної перевіркиproduct:packageплюс MCP-канали, очищення cron/subagent, вебпошук OpenAI і OpenWebUIfull: Docker-частини релізного шляху з OpenWebUIcustom: точний списокdocker_lanesдля сфокусованих повторних запусків
telegram_mode=mock-openai або telegram_mode=live-frontier у перевірці прийнятності пакетів. Workflow передає розв’язаний tarball package-under-test у смугу Telegram; окремий workflow Telegram усе ще приймає опубліковану npm-специфікацію для перевірок після публікації.
Автоматизація публікації релізу
OpenClaw Release Publish є звичайною мутувальною точкою входу для публікації. Він оркеструє trusted-publisher workflows у порядку, потрібному релізу:
- Отримати релізний тег і розв’язати його commit SHA.
- Перевірити, що тег досяжний із
mainабоrelease/*. - Запустити
pnpm plugins:sync:check. - Запустити
Plugin NPM Releaseізpublish_scope=all-publishableіref=<release-sha>. - Запустити
Plugin ClawHub Releaseз тим самим scope і SHA. - Запустити
OpenClaw NPM Releaseіз релізним тегом, npm dist-tag і збереженимpreflight_run_id.
latest є явним:
Plugin NPM Release і Plugin ClawHub Release лише для сфокусованого ремонту або повторної публікації. Для ремонту вибраного Plugin передайте plugin_publish_scope=selected і plugins=@openclaw/name до OpenClaw Release Publish або запустіть дочірній workflow напряму, коли пакет OpenClaw не має публікуватися.
Вхідні параметри NPM workflow
OpenClaw NPM Release приймає такі контрольовані оператором вхідні параметри:
tag: обов’язковий релізний тег, як-отv2026.4.2,v2026.4.2-1абоv2026.4.2-beta.1; колиpreflight_only=true, це також може бути поточний повний 40-символьний commit SHA гілки workflow для preflight лише з валідацієюpreflight_only:trueлише для валідації/збірки/пакування,falseдля реального шляху публікаціїpreflight_run_id: обов’язковий на реальному шляху публікації, щоб workflow повторно використав підготовлений tarball з успішного preflight-запускуnpm_dist_tag: цільовий npm tag для шляху публікації; стандартноbeta
OpenClaw Release Publish приймає такі контрольовані оператором вхідні параметри:
tag: обов’язковий релізний тег; має вже існуватиpreflight_run_id: ідентифікатор успішного preflight-запускуOpenClaw NPM Release; обов’язковий, колиpublish_openclaw_npm=truenpm_dist_tag: цільовий npm tag для пакета OpenClawplugin_publish_scope: стандартноall-publishable; використовуйтеselectedлише для сфокусованого ремонтуplugins: розділені комами назви пакетів@openclaw/*, колиplugin_publish_scope=selectedpublish_openclaw_npm: стандартноtrue; встановлюйтеfalseлише коли використовуєте workflow як оркестратор ремонту тільки для Pluginwait_for_clawhub: стандартноfalse, щоб доступність npm не блокувалася sidecar ClawHub; встановлюйтеtrueлише коли завершення workflow має включати завершення ClawHub
OpenClaw Release Checks приймає такі контрольовані оператором вхідні параметри:
ref: гілка, тег або повний commit SHA для валідації. Перевірки із секретами вимагають, щоб розв’язаний commit був досяжний із гілки OpenClaw або релізного тегу.run_release_soak: увімкнення вичерпного live/E2E, Docker release-path і all-since upgrade-survivor soak на стабільних/стандартних релізних перевірках. Примусово вмикається черезrelease_profile=full.
- Стабільні та корекційні теги можуть публікуватися або до
beta, або доlatest - Beta prerelease теги можуть публікуватися лише до
beta - Для
OpenClaw NPM Releaseвведення повного commit SHA дозволене лише колиpreflight_only=true OpenClaw Release ChecksіFull Release Validationзавжди є лише валідаційними- Реальний шлях публікації має використовувати той самий
npm_dist_tag, що використовувався під час preflight; workflow перевіряє ці метадані перед продовженням публікації
Послідовність стабільного npm-релізу
Коли готуєте стабільний npm-реліз:- Запустіть
OpenClaw NPM Releaseізpreflight_only=true- До появи тегу можна використати поточний повний commit SHA гілки workflow для сухого запуску preflight workflow лише з валідацією
- Оберіть
npm_dist_tag=betaдля звичайного потоку beta-first абоlatestлише коли навмисно хочете пряму стабільну публікацію - Запустіть
Full Release Validationна релізній гілці, релізному тегу або повному commit SHA, коли потрібні звичайний CI плюс покриття live prompt cache, Docker, QA Lab, Matrix і Telegram з одного ручного workflow - Якщо навмисно потрібен лише детермінований звичайний граф тестів, натомість запустіть ручний workflow
CIна релізному ref - Збережіть успішний
preflight_run_id - Запустіть
OpenClaw Release Publishз тим самимtag, тим самимnpm_dist_tagі збереженимpreflight_run_id; він публікує екстерналізовані Plugin до npm і ClawHub перед просуванням npm-пакета OpenClaw - Якщо реліз потрапив на
beta, використовуйте приватний workflowopenclaw/releases-private/.github/workflows/openclaw-npm-dist-tags.yml, щоб просунути цю стабільну версію зbetaдоlatest - Якщо реліз навмисно опубліковано безпосередньо до
latestіbetaмає негайно вказувати на ту саму стабільну збірку, використовуйте той самий приватний workflow, щоб спрямувати обидва dist-tags на стабільну версію, або дозвольте його запланованій self-healing синхронізації пізніше переміститиbeta
NPM_TOKEN, тоді як публічний репозиторій зберігає публікацію лише через OIDC.
Це залишає і шлях прямої публікації, і шлях beta-first просування задокументованими та видимими для оператора.
Якщо maintainer мусить повернутися до локальної npm-автентифікації, запускайте будь-які команди 1Password CLI (op) лише всередині виділеної tmux-сесії. Не викликайте op напряму з основної agent shell; утримання цього всередині tmux робить prompts, сповіщення й обробку OTP видимими та запобігає повторним host alerts.
Публічні посилання
.github/workflows/full-release-validation.yml.github/workflows/package-acceptance.yml.github/workflows/openclaw-npm-release.yml.github/workflows/openclaw-release-checks.yml.github/workflows/openclaw-cross-os-release-checks-reusable.ymlscripts/resolve-openclaw-package-candidate.mjsscripts/openclaw-npm-release-check.tsscripts/package-mac-dist.shscripts/make_appcast.sh
openclaw/maintainers/release/README.md
для фактичного runbook.