OpenClaw ma trzy publiczne tory wydań: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: oznaczone wydania, które domyślnie publikują do npm
beta, albo do npmlatestna wyraźne żądanie - beta: tagi przedwydań publikowane do npm
beta - dev: ruchoma głowica
main
Nazewnictwo wersji
- Wersja wydania stabilnego:
YYYY.M.D- Tag Git:
vYYYY.M.D
- Tag Git:
- Wersja poprawkowego wydania stabilnego:
YYYY.M.D-N- Tag Git:
vYYYY.M.D-N
- Tag Git:
- Wersja przedwydania beta:
YYYY.M.D-beta.N- Tag Git:
vYYYY.M.D-beta.N
- Tag Git:
- Nie uzupełniaj miesiąca ani dnia zerami
latestoznacza aktualnie promowane stabilne wydanie npmbetaoznacza aktualny cel instalacji beta- Wydania stabilne i poprawkowe wydania stabilne domyślnie publikują do npm
beta; operatorzy wydań mogą wyraźnie wskazaćlatestalbo później wypromować zweryfikowany build beta - Każde stabilne wydanie OpenClaw dostarcza razem pakiet npm i aplikację macOS; wydania beta zwykle najpierw weryfikują i publikują ścieżkę npm/pakietu, a build/podpis/notaryzacja aplikacji Mac są zarezerwowane dla wydań stabilnych, chyba że wyraźnie zażądano inaczej
Rytm wydań
- Wydania przechodzą najpierw przez beta
- Stabilne wydanie następuje dopiero po zweryfikowaniu najnowszej beta
- Maintainerzy zwykle tworzą wydania z gałęzi
release/YYYY.M.Dutworzonej z bieżącegomain, aby walidacja wydania i poprawki nie blokowały nowego rozwoju namain - Jeśli tag beta został wypchnięty lub opublikowany i wymaga poprawki, maintainerzy tworzą
następny tag
-beta.Nzamiast usuwać albo odtwarzać stary tag beta - Szczegółowa procedura wydania, zatwierdzenia, dane uwierzytelniające i notatki odzyskiwania są dostępne tylko dla maintainerów
Lista kontrolna operatora wydania
Ta lista kontrolna pokazuje publiczny kształt przepływu wydania. Prywatne dane uwierzytelniające, podpisywanie, notaryzacja, odzyskiwanie dist-tagów i szczegóły awaryjnego wycofania pozostają w runbooku wydań dostępnym tylko dla maintainerów.- Zacznij od bieżącego
main: pobierz najnowsze zmiany, potwierdź, że docelowy commit został wypchnięty, i potwierdź, że bieżące CImainjest wystarczająco zielone, aby utworzyć z niego gałąź. - Przepisz górną sekcję
CHANGELOG.mdna podstawie rzeczywistej historii commitów za pomocą/changelog, utrzymaj wpisy jako skierowane do użytkownika, zacommituj je, wypchnij je i wykonaj rebase/pull jeszcze raz przed utworzeniem gałęzi. - Przejrzyj rekordy zgodności wydań w
src/plugins/compat/registry.tsorazsrc/commands/doctor/shared/deprecation-compat.ts. Usuwaj wygasłą zgodność tylko wtedy, gdy ścieżka aktualizacji pozostaje pokryta, albo zanotuj, dlaczego jest celowo utrzymywana. - Utwórz
release/YYYY.M.Dz bieżącegomain; nie wykonuj normalnej pracy wydaniowej bezpośrednio namain. - Podbij każdą wymaganą lokalizację wersji dla zamierzonego tagu, a następnie uruchom
pnpm release:prep. Odświeża to wersje Plugin, inwentarz Plugin, schemat konfiguracji, metadane konfiguracji spakowanych kanałów, baseline dokumentacji konfiguracji, eksporty Plugin SDK oraz baseline API Plugin SDK we właściwej kolejności. Zacommituj wszelkie wygenerowane różnice przed tagowaniem. Następnie uruchom lokalny deterministyczny preflight:pnpm check:test-types,pnpm check:architecture,pnpm build && pnpm ui:buildorazpnpm release:check. - Uruchom
OpenClaw NPM Releasezpreflight_only=true. Zanim istnieje tag, pełny 40-znakowy SHA gałęzi wydania jest dozwolony dla preflight wyłącznie walidacyjnego. Zapisz udanypreflight_run_id. - Uruchom wszystkie testy przedwydaniowe za pomocą
Full Release Validationdla gałęzi wydania, tagu albo pełnego SHA commita. To jest jedyny ręczny punkt wejścia dla czterech dużych boksów testów wydaniowych: Vitest, Docker, QA Lab i Package. - Jeśli walidacja się nie powiedzie, napraw na gałęzi wydania i ponownie uruchom najmniejszy nieudany plik, tor, zadanie workflow, profil pakietu, dostawcę albo allowlistę modeli, która potwierdza poprawkę. Ponownie uruchom pełny parasol tylko wtedy, gdy zmieniona powierzchnia sprawia, że wcześniejsze dowody są nieaktualne.
- Dla beta otaguj
vYYYY.M.D-beta.N, a następnie uruchomOpenClaw Release Publishz odpowiadającej gałęzirelease/YYYY.M.D. Weryfikujepnpm plugins:sync:check, dispatchuje wszystkie publikowalne pakiety Plugin do npm i ten sam zestaw do ClawHub równolegle, a następnie promuje przygotowany artefakt preflight npm OpenClaw z pasującym dist-tagiem, gdy tylko publikacja npm Plugin się powiedzie. Po powodzeniu dziecka publikacji npm OpenClaw tworzy albo aktualizuje odpowiadającą stronę wydania/przedwydania GitHub z kompletnej pasującej sekcjiCHANGELOG.md. Stabilne wydania opublikowane do npmlateststają się najnowszym wydaniem GitHub; stabilne wydania utrzymaniowe pozostawione na npmbetasą tworzone z GitHublatest=false. Publikowanie do ClawHub może nadal trwać, gdy npm OpenClaw publikuje, ale workflow publikacji wydania od razu wypisuje identyfikatory uruchomień potomnych. Domyślnie nie czeka na ClawHub po dispatchu, więc dostępność npm OpenClaw nie jest blokowana przez wolniejsze zatwierdzenia ClawHub ani prace rejestrowe; ustawwait_for_clawhub=true, gdy ClawHub musi blokować ukończenie workflow. Ścieżka ClawHub ponawia przejściowe błędy instalacji zależności CLI, publikuje Plugin, które przeszły preview, nawet gdy jedna komórka preview jest niestabilna, i kończy weryfikacją rejestru dla każdej oczekiwanej wersji Plugin, aby częściowe publikacje pozostawały widoczne i możliwe do ponowienia. Po publikacji uruchompnpm release:verify-beta -- YYYY.M.D-beta.N --openclaw-npm-run <run-id> --plugin-npm-run <run-id> --plugin-clawhub-run <run-id>aby jednym poleceniem zweryfikować przedwydanie GitHub, dist-tagi npmbeta, integralność npm, ścieżkę instalacji opublikowanego pakietu, dokładne wersje ClawHub, artefakty ClawHub oraz konkluzje workflow potomnych. Dodaj--rerun-failed-clawhub, gdy sidecar ClawHub nie powiódł się tylko w zadaniach możliwych do ponowienia i powinien zostać ponownie uruchomiony w miejscu. Następnie uruchom powydaniową akceptację pakietu wobec opublikowanego pakietuopenclaw@YYYY.M.D-beta.Nalboopenclaw@beta. Jeśli wypchnięte lub opublikowane przedwydanie wymaga poprawki, utwórz następny pasujący numer przedwydania; nie usuwaj ani nie przepisuj starego przedwydania. - Dla wydania stabilnego kontynuuj dopiero po tym, jak zweryfikowana beta albo release candidate ma
wymagane dowody walidacji. Stabilna publikacja npm również przechodzi przez
OpenClaw Release Publish, ponownie używając udanego artefaktu preflight przezpreflight_run_id; gotowość stabilnego wydania macOS wymaga także spakowanych.zip,.dmg,.dSYM.ziporaz zaktualizowanegoappcast.xmlnamain. Prywatny workflow publikacji macOS automatycznie publikuje podpisany appcast do publicznegomainpo zweryfikowaniu zasobów wydania; jeśli ochrona gałęzi blokuje bezpośredni push, otwiera albo aktualizuje PR appcast. - Po publikacji uruchom weryfikator npm po publikacji, opcjonalny samodzielny opublikowany-npm Telegram E2E, gdy potrzebujesz dowodu kanału po publikacji, promocję dist-tagu, gdy jest potrzebna, zweryfikuj wygenerowaną stronę wydania GitHub i uruchom kroki ogłoszenia wydania.
Preflight wydania
- Uruchom
pnpm check:test-typesprzed preflightem wydania, aby testowy TypeScript pozostawał objęty sprawdzeniem poza szybszą lokalną bramkąpnpm check - Uruchom
pnpm check:architectureprzed preflightem wydania, aby szersze sprawdzenia cykli importów i granic architektury były zielone poza szybszą lokalną bramką - Uruchom
pnpm build && pnpm ui:buildprzedpnpm release:check, aby oczekiwane artefakty wydaniadist/*i pakiet Control UI istniały na potrzeby kroku walidacji pakietu - Uruchom
pnpm release:preppo podbiciu wersji w katalogu głównym i przed tagowaniem. Uruchamia wszystkie deterministyczne generatory wydania, które często rozjeżdżają się po zmianie wersji/konfiguracji/API: wersje pluginów, inwentarz pluginów, schemat konfiguracji bazowej, metadane konfiguracji dołączonych kanałów, bazę odniesienia dokumentacji konfiguracji, eksporty SDK pluginów i bazę odniesienia API SDK pluginów.pnpm release:checkponownie uruchamia te zabezpieczenia w trybie sprawdzania i zgłasza wszystkie znalezione rozjazdy wygenerowanych danych w jednym przebiegu przed uruchomieniem sprawdzeń wydania pakietu. - Uruchom ręczny workflow
Full Release Validationprzed zatwierdzeniem wydania, aby uruchomić wszystkie przedwydaniowe środowiska testowe z jednego punktu wejścia. Przyjmuje gałąź, tag lub pełny SHA commita, dispatchuje ręcznyCIi dispatchujeOpenClaw Release Checksdla install smoke, akceptacji pakietu, międzyplatformowych sprawdzeń pakietów, parzystości QA Lab, Matrix i ścieżek Telegram. Stabilne/domyślne uruchomienia trzymają wyczerpujące live/E2E i Docker release-path soak zarun_release_soak=true;release_profile=fullwymusza soak. Zrelease_profile=fullirerun_group=alluruchamia też pakietowe Telegram E2E względem artefakturelease-package-under-testze sprawdzeń wydania. Podajrelease_package_specpo opublikowaniu wersji beta, aby ponownie użyć wysłanego pakietu npm w sprawdzeniach wydania, Package Acceptance i pakietowym Telegram E2E bez ponownego budowania tarballa wydania. Podajnpm_telegram_package_spectylko wtedy, gdy Telegram powinien użyć innego opublikowanego pakietu niż reszta walidacji wydania. Podajpackage_acceptance_package_spec, gdy Package Acceptance powinno użyć innego opublikowanego pakietu niż specyfikacja pakietu wydania. Podajevidence_package_spec, gdy prywatny raport dowodowy powinien wykazać, że walidacja odpowiada opublikowanemu pakietowi npm bez wymuszania Telegram E2E. Przykład:gh workflow run full-release-validation.yml --ref main -f ref=release/YYYY.M.D - Uruchom ręczny workflow
Package Acceptance, gdy chcesz uzyskać boczny dowód dla kandydata pakietu, podczas gdy prace nad wydaniem trwają. Użyjsource=npmdlaopenclaw@beta,openclaw@latestlub dokładnej wersji wydania;source=ref, aby spakować zaufaną gałąź/tag/SHApackage_refz bieżącym harnessworkflow_ref;source=urldla tarballa HTTPS z wymaganym SHA-256; albosource=artifactdla tarballa przesłanego przez inny przebieg GitHub Actions. Workflow rozwiązuje kandydata dopackage-under-test, ponownie używa harmonogramu wydania Docker E2E względem tego tarballa i może uruchomić Telegram QA względem tego samego tarballa ztelegram_mode=mock-openailubtelegram_mode=live-frontier. Gdy wybrane ścieżki Docker obejmująpublished-upgrade-survivor, artefakt pakietu jest kandydatem, apublished_upgrade_survivor_baselinewybiera opublikowaną bazę odniesienia.update-restart-authużywa pakietu kandydata jako zarówno zainstalowanego CLI, jak i package-under-test, więc sprawdza ścieżkę zarządzanego restartu polecenia aktualizacji kandydata. Przykład: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-openaiTypowe profile:smoke: ścieżki instalacji/kanału/agenta, sieci gateway i przeładowania konfiguracjipackage: natywne dla artefaktu ścieżki pakietu/aktualizacji/restartu/pluginów bez OpenWebUI ani live ClawHubproduct: profil pakietowy plus kanały MCP, czyszczenie cron/subagent, wyszukiwanie webowe OpenAI i OpenWebUIfull: fragmenty Docker release-path z OpenWebUIcustom: dokładny wybórdocker_lanesdla ukierunkowanego ponownego uruchomienia
- Uruchom ręczny workflow
CIbezpośrednio, gdy potrzebujesz tylko pełnego zwykłego pokrycia CI dla kandydata wydania. Ręczne dispatchowanie CI omija zakresowanie zmian i wymusza shardy Linux Node, shardy dołączonych pluginów, kontrakty kanałów, zgodność z Node 22,check,check-additional, build smoke, sprawdzenia dokumentacji, Python skills, Windows, macOS, Android i ścieżki i18n Control UI. Przykład:gh workflow run ci.yml --ref release/YYYY.M.D - Uruchom
pnpm qa:otel:smokepodczas walidacji telemetrii wydania. Sprawdza QA-lab przez lokalny odbiornik OTLP/HTTP i weryfikuje wyeksportowane nazwy spanów śladu, ograniczone atrybuty oraz redakcję treści/identyfikatorów bez wymagania Opik, Langfuse ani innego zewnętrznego kolektora. - Uruchom
pnpm release:checkprzed każdym tagowanym wydaniem - Uruchom
OpenClaw Release Publishdla mutującej sekwencji publikacji po utworzeniu tagu. Dispatchuj go zrelease/YYYY.M.D(lubmain, gdy publikujesz tag osiągalny z main), przekaż tag wydania i udany OpenClaw npmpreflight_run_id, a domyślny zakres publikacji pluginówall-publishablepozostaw bez zmian, chyba że celowo uruchamiasz ukierunkowaną naprawę. Workflow szereguje publikację pluginów npm, publikację pluginów ClawHub i publikację OpenClaw npm, aby pakiet główny nie został opublikowany przed swoimi zewnętrznymi pluginami. - Sprawdzenia wydania działają teraz w osobnym ręcznym workflow:
OpenClaw Release Checks OpenClaw Release Checksuruchamia też ścieżkę parzystości mock QA Lab oraz szybki profil live Matrix i ścieżkę Telegram QA przed zatwierdzeniem wydania. Ścieżki live używają środowiskaqa-live-shared; Telegram używa też dzierżaw poświadczeń Convex CI. Uruchom ręczny workflowQA-Lab - All Laneszmatrix_profile=allimatrix_shards=true, gdy chcesz mieć równolegle pełny inwentarz transportu Matrix, multimediów i E2EE.- Międzyplatformowa walidacja runtime instalacji i aktualizacji jest częścią publicznych
OpenClaw Release ChecksiFull Release Validation, które wywołują reusable workflow.github/workflows/openclaw-cross-os-release-checks-reusable.ymlbezpośrednio - Ten podział jest celowy: utrzymuje rzeczywistą ścieżkę wydania npm jako krótką, deterministyczną i skoncentrowaną na artefaktach, podczas gdy wolniejsze sprawdzenia live pozostają we własnej ścieżce, aby nie opóźniały ani nie blokowały publikacji
- Sprawdzenia wydania zawierające sekrety powinny być dispatchowane przez
Full Release Validationalbo z referencji workflowmain/release, aby logika workflow i sekrety pozostawały kontrolowane OpenClaw Release Checksakceptuje gałąź, tag lub pełny SHA commita, o ile rozwiązany commit jest osiągalny z gałęzi OpenClaw albo tagu wydania- Preflight tylko walidacyjny
OpenClaw NPM Releaseakceptuje także bieżący pełny 40-znakowy SHA commita gałęzi workflow bez wymagania wypchniętego tagu - Ta ścieżka SHA służy tylko do walidacji i nie może zostać promowana do rzeczywistej publikacji
- W trybie SHA workflow syntetyzuje
v<package.json version>tylko na potrzeby sprawdzenia metadanych pakietu; rzeczywista publikacja nadal wymaga prawdziwego tagu wydania - Oba workflow utrzymują rzeczywistą ścieżkę publikacji i promocji na runnerach hostowanych przez GitHub, podczas gdy niemutująca ścieżka walidacji może używać większych runnerów Blacksmith Linux
- Ten workflow uruchamia
OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_CACHE_TEST=1 pnpm test:live:cacheużywając sekretów workflowOPENAI_API_KEYiANTHROPIC_API_KEY - Preflight wydania npm nie czeka już na osobną ścieżkę sprawdzeń wydania
- Przed lokalnym tagowaniem kandydata wydania uruchom
RELEASE_TAG=vYYYY.M.D-beta.N pnpm release:fast-pretag-check. Helper uruchamia szybkie zabezpieczenia wydania, sprawdzenia wydań pluginów npm/ClawHub, build, build UI irelease:openclaw:npm:checkw kolejności, która wyłapuje typowe błędy blokujące zatwierdzenie przed startem workflow publikacji GitHub. - Uruchom
RELEASE_TAG=vYYYY.M.D node --import tsx scripts/openclaw-npm-release-check.ts(albo odpowiadający tag beta/korekty) przed zatwierdzeniem - Po publikacji npm uruchom
node --import tsx scripts/openclaw-npm-postpublish-verify.ts YYYY.M.D(albo odpowiadającą wersję beta/korekty), aby zweryfikować opublikowaną ścieżkę instalacji z rejestru w świeżym tymczasowym prefiksie - Po publikacji beta uruchom
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-liveaby zweryfikować onboarding zainstalowanego pakietu, konfigurację Telegram i rzeczywiste Telegram E2E względem opublikowanego pakietu npm z użyciem wspólnej dzierżawionej puli poświadczeń Telegram. Lokalne jednorazowe uruchomienia maintainerów mogą pominąć zmienne Convex i przekazać trzy poświadczenia środowiskoweOPENCLAW_QA_TELEGRAM_*bezpośrednio. - Aby uruchomić pełny post-publish beta smoke z maszyny maintainera, użyj
pnpm release:beta-smoke -- --beta betaN. Helper uruchamia walidację aktualizacji npm w Parallels/świeżego celu, dispatchujeNPM Telegram Beta E2E, odpytuje dokładny przebieg workflow, pobiera artefakt i wypisuje raport Telegram. - Maintainerzy mogą uruchomić to samo sprawdzenie post-publish z GitHub Actions przez
ręczny workflow
NPM Telegram Beta E2E. Jest celowo tylko ręczny i nie uruchamia się przy każdym merge. - Automatyzacja wydań maintainerów używa teraz schematu preflight-then-promote:
- rzeczywista publikacja npm musi przejść udany npm
preflight_run_id - rzeczywista publikacja npm musi być dispatchowana z tej samej gałęzi
mainalborelease/YYYY.M.Dco udany przebieg preflight - stabilne wydania npm domyślnie trafiają na
beta - stabilna publikacja npm może jawnie celować w
latestprzez wejście workflow - mutacja dist-tag npm oparta na tokenie znajduje się teraz w
openclaw/releases-private/.github/workflows/openclaw-npm-dist-tags.ymlze względów bezpieczeństwa, ponieważnpm dist-tag addnadal wymagaNPM_TOKEN, podczas gdy publiczne repo zachowuje publikację wyłącznie OIDC - publiczne
macOS Releasesłuży tylko do walidacji; gdy tag istnieje tylko na gałęzi release, ale workflow jest dispatchowany zmain, ustawpublic_release_branch=release/YYYY.M.D - rzeczywista prywatna publikacja mac musi przejść udane prywatne mac
preflight_run_idivalidate_run_id - rzeczywiste ścieżki publikacji promują przygotowane artefakty zamiast ponownie je budować
- rzeczywista publikacja npm musi przejść udany npm
- Dla stabilnych wydań korekcyjnych takich jak
YYYY.M.D-Nweryfikator post-publish sprawdza także tę samą ścieżkę aktualizacji w tymczasowym prefiksie zYYYY.M.DdoYYYY.M.D-N, aby korekty wydania nie mogły po cichu pozostawić starszych globalnych instalacji na bazowym stabilnym payloadzie - Preflight wydania npm kończy się niepowodzeniem w trybie zamkniętym, chyba że tarball zawiera zarówno
dist/control-ui/index.html, jak i niepusty payloaddist/control-ui/assets/, abyśmy ponownie nie wysłali pustego dashboardu przeglądarkowego - Weryfikacja post-publish sprawdza też, czy opublikowane entrypointy pluginów i
metadane pakietu są obecne w zainstalowanym układzie z rejestru. Wydanie, które
wysyła brakujące payloady runtime pluginów, nie przechodzi weryfikatora postpublish i
nie może zostać promowane do
latest. pnpm test:install:smokeegzekwuje też budżetunpackedSizenpm pack dla tarballa kandydata aktualizacji, więc installer e2e wychwytuje przypadkowy rozrost pakietu przed ścieżką publikacji wydania- Jeśli prace nad wydaniem dotknęły planowania CI, manifestów czasów rozszerzeń albo
macierzy testów rozszerzeń, wygeneruj ponownie i przejrzyj zarządzane przez planner
wyjścia macierzy
plugin-prerelease-extension-shardz.github/workflows/plugin-prerelease.ymlprzed zatwierdzeniem, aby notatki wydania nie opisywały nieaktualnego układu CI - Gotowość stabilnego wydania macOS obejmuje też powierzchnie aktualizatora:
- wydanie GitHub musi finalnie zawierać spakowane
.zip,.dmgi.dSYM.zip appcast.xmlnamainmusi wskazywać nowy stabilny zip po publikacji; prywatny workflow publikacji macOS commituje go automatycznie albo otwiera PR appcast, gdy bezpośredni push jest zablokowany- spakowana aplikacja musi zachować nie-debugowy identyfikator bundle, niepusty adres URL feedu
Sparkle i
CFBundleVersionna poziomie lub powyżej kanonicznego minimalnego builda Sparkle dla tej wersji wydania
- wydanie GitHub musi finalnie zawierać spakowane
Testowe środowiska wydania
Full Release Validation to sposób, w jaki operatorzy uruchamiają wszystkie testy przedwydaniowe z jednego punktu wejścia. Aby uzyskać dowód przypiętego commita na szybko zmieniającej się gałęzi, użyj helpera, żeby każdy workflow podrzędny działał z tymczasowej gałęzi ustawionej na docelowy SHA:
release-ci/<sha>-..., uruchamia Full Release Validation z tej gałęzi z ref=<sha>, weryfikuje, że każdy headSha workflow podrzędnego pasuje do celu, a następnie usuwa tymczasową gałąź. Zapobiega to przypadkowemu udowodnieniu nowszego uruchomienia podrzędnego z main.
Do walidacji gałęzi wydania lub tagu uruchom go z zaufanego refa workflow main i przekaż gałąź wydania lub tag jako ref:
CI z target_ref=<release-ref>, uruchamia OpenClaw Release Checks, przygotowuje nadrzędny artefakt release-package-under-test dla kontroli dotyczących pakietu oraz uruchamia samodzielne pakietowe Telegram E2E, gdy release_profile=full z rerun_group=all albo gdy ustawiono release_package_spec lub npm_telegram_package_spec. OpenClaw Release Checks następnie rozgałęzia się na smoke test instalacji, międzyplatformowe kontrole wydania, live/E2E pokrycie ścieżki wydania Docker, gdy soak jest włączony, Package Acceptance z QA pakietu Telegram, parytet QA Lab, live Matrix i live Telegram. Pełne uruchomienie jest akceptowalne tylko wtedy, gdy podsumowanie Full Release Validation pokazuje normal_ci i release_checks jako zakończone sukcesem. W trybie full/all dziecko npm_telegram również musi zakończyć się sukcesem; poza full/all jest pomijane, chyba że podano opublikowany release_package_spec lub npm_telegram_package_spec. Końcowe podsumowanie weryfikatora zawiera tabele najwolniejszych zadań dla każdego uruchomienia podrzędnego, dzięki czemu menedżer wydania może zobaczyć aktualną ścieżkę krytyczną bez pobierania logów.
Zobacz Pełna walidacja wydania, aby poznać kompletną macierz etapów, dokładne nazwy zadań workflow, różnice między profilami stable i full, artefakty oraz uchwyty do skoncentrowionych ponownych uruchomień.
Workflow podrzędne są uruchamiane z zaufanego refa, który uruchamia Full Release Validation, zwykle --ref main, nawet gdy docelowy ref wskazuje starszą gałąź wydania lub tag. Nie ma osobnego wejścia refa workflow Full Release Validation; wybierz zaufany harness, wybierając ref uruchomienia workflow.
Nie używaj --ref main -f ref=<sha> dla dokładnego dowodu commita na zmieniającym się main; surowe SHA commitów nie mogą być refami workflow dispatch, więc użyj pnpm ci:full-release --sha <sha>, aby utworzyć przypiętą tymczasową gałąź.
Użyj release_profile, aby wybrać zakres live/providera:
minimum: najszybsza ścieżka release-critical OpenAI/core live i Dockerstable: minimum plus stabilne pokrycie provider/backend do zatwierdzenia wydaniafull: stable plus szerokie doradcze pokrycie provider/media
run_release_soak=true z stable, gdy pasy blokujące wydanie są zielone i chcesz wykonać wyczerpujące live/E2E, ścieżkę wydania Docker oraz ograniczony sweep przetrwania aktualizacji opublikowanych pakietów przed promocją. Ten sweep obejmuje najnowsze cztery stabilne pakiety oraz przypięte baseline’y 2026.4.23 i 2026.5.2, a także starsze pokrycie 2026.4.15, z usuniętymi duplikatami baseline’ów i każdym baseline’em podzielonym na własne zadanie runnera Docker. full implikuje run_release_soak=true.
OpenClaw Release Checks używa zaufanego refa workflow, aby raz rozwiązać docelowy ref jako release-package-under-test, i ponownie używa tego artefaktu w kontrolach cross-OS, Package Acceptance oraz release-path Docker, gdy działa soak. Dzięki temu wszystkie środowiska dotyczące pakietu używają tych samych bajtów i unika się powtarzanych buildów pakietu.
Po tym, jak beta jest już w npm, ustaw release_package_spec=openclaw@YYYY.M.D-beta.N, aby kontrole wydania pobrały wysłany pakiet raz, wyodrębniły jego SHA źródła buildu z dist/build-info.json i ponownie użyły tego artefaktu dla pasów cross-OS, Package Acceptance, release-path Docker oraz pakietowego Telegram.
Smoke test instalacji OpenAI cross-OS używa OPENCLAW_CROSS_OS_OPENAI_MODEL, gdy ustawiona jest zmienna repo/org, w przeciwnym razie openai/gpt-5.4, ponieważ ten pas dowodzi instalacji pakietu, onboardingu, uruchomienia Gateway i jednej live tury agenta, a nie benchmarkuje najwolniejszy model domyślny. Szersza macierz provider live pozostaje miejscem pokrycia specyficznego dla modelu.
Użyj tych wariantów zależnie od etapu wydania:
Verify full validation.
Do ograniczonego odzyskiwania przekaż rerun_group do parasola. all to właściwe uruchomienie release-candidate, ci uruchamia tylko zwykłe dziecko CI, plugin-prerelease uruchamia tylko dziecko pluginu przeznaczone wyłącznie dla wydania, release-checks uruchamia każde środowisko wydania, a węższe grupy wydania to install-smoke, cross-os, live-e2e, package, qa, qa-parity, qa-live i npm-telegram.
Skoncentrowane ponowne uruchomienia npm-telegram wymagają release_package_spec lub npm_telegram_package_spec; pełne/all uruchomienia z release_profile=full używają artefaktu pakietu z release-checks. Skoncentrowane ponowne uruchomienia cross-OS mogą dodać cross_os_suite_filter=windows/packaged-upgrade lub inny filtr OS/suite. Niepowodzenia QA release-check są doradcze; niepowodzenie tylko QA nie blokuje walidacji wydania.
Vitest
Środowisko Vitest to ręczny workflow podrzędnyCI. Ręczny CI celowo omija zakresowanie zmian i wymusza normalny graf testów dla release candidate: shardy Linux Node, shardy bundled-plugin, kontrakty kanałów, kompatybilność Node 22, check, check-additional, smoke test buildu, kontrole dokumentacji, Python skills, Windows, macOS, Android i i18n Control UI.
Użyj tego środowiska, aby odpowiedzieć: „czy drzewo źródłowe przeszło pełny normalny zestaw testów?” To nie to samo co walidacja produktu w ścieżce wydania. Dowody do zachowania:
- podsumowanie
Full Release Validationpokazujące URL uruchomionegoCI - zielone uruchomienie
CIna dokładnym docelowym SHA - nazwy nieudanych lub wolnych shardów z zadań CI podczas badania regresji
- artefakty czasów Vitest, takie jak
.artifacts/vitest-shard-timings.json, gdy uruchomienie wymaga analizy wydajności
Docker
Środowisko Docker znajduje się wOpenClaw Release Checks przez openclaw-live-and-e2e-checks-reusable.yml, plus workflow install-smoke w trybie wydania. Waliduje release candidate przez spakowane środowiska Docker, a nie tylko testy na poziomie źródeł.
Pokrycie Docker wydania obejmuje:
- pełny smoke test instalacji z włączonym wolnym smoke testem globalnej instalacji Bun
- przygotowanie/ponowne użycie obrazu smoke z root Dockerfile według docelowego SHA, z zadaniami QR, root/gateway oraz installer/Bun smoke działającymi jako osobne shardy install-smoke
- pasy E2E repozytorium
- chunki release-path Docker:
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-giplugins-runtime-install-h - pokrycie OpenWebUI w chunku
plugins-runtime-services, gdy jest wymagane - podzielone pasy instalacji/deinstalacji bundled plugin
bundled-plugin-install-uninstall-0dobundled-plugin-install-uninstall-23 - zestawy provider live/E2E i pokrycie modelu live Docker, gdy kontrole wydania obejmują zestawy live
.artifacts/docker-tests/ z logami pasów, summary.json, failures.json, czasami faz, JSON-em planu harmonogramu i poleceniami ponownego uruchomienia. Do skoncentrowanego odzyskiwania użyj docker_lanes=<lane[,lane]> w wielokrotnego użytku workflow live/E2E zamiast ponownie uruchamiać wszystkie chunki wydania. Wygenerowane polecenia ponownego uruchomienia zawierają wcześniejsze package_artifact_run_id i przygotowane wejścia obrazu Docker, gdy są dostępne, więc nieudany pas może ponownie użyć tego samego tarballa i obrazów GHCR.
QA Lab
Środowisko QA Lab jest również częściąOpenClaw Release Checks. To brama wydania dla zachowania agentowego i poziomu kanału, oddzielna od Vitest i mechaniki pakietów Docker.
Pokrycie QA Lab wydania obejmuje:
- pas mock parity porównujący kandydujący pas OpenAI z baseline’em Opus 4.6 przy użyciu agentic parity pack
- szybki profil live Matrix QA używający środowiska
qa-live-shared - pas live Telegram QA używający dzierżaw poświadczeń Convex CI
pnpm qa:otel:smoke, gdy telemetria wydania wymaga jawnego lokalnego dowodu
Pakiet
Środowisko Package jest bramą instalowalnego produktu. Opiera się naPackage Acceptance i resolverze scripts/resolve-openclaw-package-candidate.mjs. Resolver normalizuje kandydata do tarballa package-under-test używanego przez Docker E2E, waliduje inwentarz pakietu, zapisuje wersję pakietu i SHA-256 oraz utrzymuje ref harnessa workflow oddzielnie od refa źródła pakietu.
Obsługiwane źródła kandydata:
source=npm:openclaw@beta,openclaw@latestlub dokładna wersja wydania OpenClawsource=ref: spakuj zaufaną gałąźpackage_ref, tag lub pełny SHA commita z wybranym harnessemworkflow_refsource=url: pobierz HTTPS.tgzz wymaganympackage_sha256source=artifact: ponownie użyj.tgzprzesłanego przez inne uruchomienie GitHub Actions
OpenClaw Release Checks uruchamia Package Acceptance z source=artifact,
przygotowanym artefaktem pakietu wydania, 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. Package Acceptance utrzymuje migrację, aktualizację,
restart aktualizacji skonfigurowanego uwierzytelniania, instalację Skills z ClawHub na żywo, czyszczenie przestarzałych zależności pluginów, fixture’y pluginów offline, aktualizację pluginów i QA pakietu Telegram względem tego samego rozwiązanego tarballa. Blokujące kontrole wydania używają domyślnej najnowszej opublikowanej bazowej wersji pakietu; run_release_soak=true lub
release_profile=full rozszerza zakres do każdej stabilnej bazowej wersji opublikowanej w npm od
2026.4.23 do latest oraz fixture’ów zgłoszonych problemów. Użyj
Package Acceptance z source=npm dla kandydata, który został już wydany, albo
source=ref/source=artifact dla lokalnego tarballa npm opartego na SHA przed
publikacją. To natywny dla GitHuba zamiennik większości pokrycia pakietów/aktualizacji, które wcześniej wymagało Parallels. Kontrole wydania między systemami operacyjnymi nadal są ważne dla specyficznego dla OS onboardingu, instalatora i zachowania platformy, ale walidacja produktu pakiet/aktualizacja powinna preferować Package Acceptance.
Kanoniczna lista kontrolna walidacji aktualizacji i pluginów to
Testing updates and plugins. Używaj jej przy
decydowaniu, który lokalny, Dockerowy, Package Acceptance albo wydaniowy lane potwierdza zmianę instalacji/aktualizacji pluginu, czyszczenia przez doctor albo migracji opublikowanego pakietu.
Wyczerpująca migracja opublikowanych aktualizacji z każdego stabilnego pakietu 2026.4.23+ jest
osobnym ręcznym workflow Update Migration, a nie częścią Full Release CI.
Łagodność starszego package-acceptance jest celowo ograniczona czasowo. Pakiety do
2026.4.25 mogą używać ścieżki zgodności dla luk metadanych już opublikowanych
w npm: prywatnych wpisów inwentarza QA brakujących w tarballu, brakującego
gateway install --wrapper, brakujących plików patchy w fixture git
pochodzącym z tarballa, brakującego utrwalonego update.channel, starszych lokalizacji rekordów instalacji pluginów, brakującej trwałości rekordów instalacji marketplace oraz migracji metadanych konfiguracji podczas plugins update. Opublikowany pakiet 2026.4.26 może ostrzegać
o plikach znaczników metadanych lokalnej kompilacji, które zostały już wydane. Późniejsze pakiety
muszą spełniać nowoczesne kontrakty pakietów; te same luki powodują niepowodzenie walidacji
wydania.
Używaj szerszych profili Package Acceptance, gdy pytanie o wydanie dotyczy
rzeczywistego instalowalnego pakietu:
smoke: szybkie lane’y instalacji pakietu/kanału/agenta, sieci Gateway i przeładowania konfiguracjipackage: kontrakty pakietu instalacji/aktualizacji/restartu/pluginów oraz dowód instalacji Skills z ClawHub na żywo; to domyślna wartość kontroli wydaniaproduct:packageplus kanały MCP, czyszczenie cron/subagent, wyszukiwanie w sieci OpenAI i OpenWebUIfull: Dockerowe fragmenty ścieżki wydania z OpenWebUIcustom: dokładna listadocker_lanesdo ukierunkowanych ponownych uruchomień
telegram_mode=mock-openai albo
telegram_mode=live-frontier w Package Acceptance. Workflow przekazuje
rozwiązany tarball package-under-test do lane’u Telegram; samodzielny
workflow Telegram nadal akceptuje opublikowaną specyfikację npm dla kontroli po publikacji.
Automatyzacja publikacji wydania
OpenClaw Release Publish jest standardowym mutującym punktem wejścia publikacji. Orkiestruje workflow zaufanego publikatora w kolejności potrzebnej wydaniu:
- Pobierz tag wydania i rozwiąż jego commit SHA.
- Zweryfikuj, że tag jest osiągalny z
mainalborelease/*. - Uruchom
pnpm plugins:sync:check. - Wyślij
Plugin NPM Releasezpublish_scope=all-publishableiref=<release-sha>. - Wyślij
Plugin ClawHub Releasez tym samym zakresem i SHA. - Wyślij
OpenClaw NPM Releasez tagiem wydania, dist-tag npm i zapisanympreflight_run_id.
latest jest jawna:
Plugin NPM Release i Plugin ClawHub Release
tylko do ukierunkowanej naprawy albo ponownej publikacji. Dla wybranej naprawy pluginu przekaż
plugin_publish_scope=selected i plugins=@openclaw/name do
OpenClaw Release Publish albo wyślij workflow podrzędny bezpośrednio, gdy
pakiet OpenClaw nie może zostać opublikowany.
Dane wejściowe workflow NPM
OpenClaw NPM Release akceptuje te dane wejściowe kontrolowane przez operatora:
tag: wymagany tag wydania, taki jakv2026.4.2,v2026.4.2-1albov2026.4.2-beta.1; gdypreflight_only=true, może to być również bieżący pełny 40-znakowy commit SHA gałęzi workflow dla preflight tylko walidacyjnegopreflight_only:truedla samej walidacji/kompilacji/pakowania,falsedla rzeczywistej ścieżki publikacjipreflight_run_id: wymagane w rzeczywistej ścieżce publikacji, aby workflow ponownie użył przygotowanego tarballa z udanego przebiegu preflightnpm_dist_tag: docelowy tag npm dla ścieżki publikacji; domyślniebeta
OpenClaw Release Publish akceptuje te dane wejściowe kontrolowane przez operatora:
tag: wymagany tag wydania; musi już istniećpreflight_run_id: id udanego przebiegu preflightOpenClaw NPM Release; wymagane, gdypublish_openclaw_npm=truenpm_dist_tag: docelowy tag npm dla pakietu OpenClawplugin_publish_scope: domyślnieall-publishable; używajselectedtylko do ukierunkowanych naprawplugins: oddzielone przecinkami nazwy pakietów@openclaw/*, gdyplugin_publish_scope=selectedpublish_openclaw_npm: domyślnietrue; ustawfalsetylko wtedy, gdy używasz workflow jako orkiestratora napraw wyłącznie pluginówwait_for_clawhub: domyślniefalse, aby dostępność npm nie była blokowana przez sidecar ClawHub; ustawtruetylko wtedy, gdy ukończenie workflow musi obejmować ukończenie ClawHub
OpenClaw Release Checks akceptuje te dane wejściowe kontrolowane przez operatora:
ref: gałąź, tag albo pełny commit SHA do walidacji. Kontrole zawierające sekrety wymagają, aby rozwiązany commit był osiągalny z gałęzi OpenClaw albo tagu wydania.run_release_soak: włącza wyczerpujący soak live/E2E, Dockerową ścieżkę wydania oraz all-since upgrade-survivor w stabilnych/domyślnych kontrolach wydania. Jest wymuszane przezrelease_profile=full.
- Tagi stabilne i korygujące mogą publikować do
betaalbolatest - Tagi prerelease beta mogą publikować tylko do
beta - Dla
OpenClaw NPM Releasepełny commit SHA jest dozwolony tylko wtedy, gdypreflight_only=true OpenClaw Release ChecksiFull Release Validationzawsze są wyłącznie walidacyjne- Rzeczywista ścieżka publikacji musi używać tego samego
npm_dist_tag, którego użyto podczas preflight; workflow weryfikuje te metadane przed kontynuowaniem publikacji
Sekwencja stabilnego wydania npm
Podczas przygotowywania stabilnego wydania npm:- Uruchom
OpenClaw NPM Releasezpreflight_only=true- Zanim tag będzie istnieć, możesz użyć bieżącego pełnego commit SHA gałęzi workflow do walidacyjnego suchego przebiegu workflow preflight
- Wybierz
npm_dist_tag=betadla normalnego przepływu najpierw-beta albolatesttylko wtedy, gdy celowo chcesz bezpośredniej stabilnej publikacji - Uruchom
Full Release Validationna gałęzi wydania, tagu wydania albo pełnym commit SHA, gdy chcesz uzyskać normalne CI oraz pokrycie live prompt cache, Docker, QA Lab, Matrix i Telegram z jednego ręcznego workflow - Jeśli celowo potrzebujesz tylko deterministycznego zwykłego grafu testów, uruchom
ręczny workflow
CIna refie wydania - Zapisz udany
preflight_run_id - Uruchom
OpenClaw Release Publishz tym samymtag, tym samymnpm_dist_tagi zapisanympreflight_run_id; publikuje zewnętrzne pluginy do npm i ClawHub przed promowaniem pakietu npm OpenClaw - Jeśli wydanie trafiło na
beta, użyj prywatnego workflowopenclaw/releases-private/.github/workflows/openclaw-npm-dist-tags.yml, aby wypromować tę stabilną wersję zbetadolatest - Jeśli wydanie celowo opublikowano bezpośrednio do
latest, abetapowinna natychmiast wskazywać tę samą stabilną kompilację, użyj tego samego prywatnego workflow, aby skierować oba dist-tags na stabilną wersję, albo pozwól, by później zrobiła to jego zaplanowana synchronizacja samonaprawcza
NPM_TOKEN, podczas gdy publiczne repozytorium zachowuje publikację wyłącznie przez OIDC.
Dzięki temu zarówno bezpośrednia ścieżka publikacji, jak i ścieżka promocji najpierw-beta
pozostają udokumentowane i widoczne dla operatora.
Jeśli maintainer musi wrócić do lokalnego uwierzytelniania npm, uruchamiaj wszystkie polecenia CLI 1Password
(op) tylko w dedykowanej sesji tmux. Nie wywołuj op
bezpośrednio z głównej powłoki agenta; trzymanie go w tmux sprawia, że prompty,
alerty i obsługa OTP są obserwowalne oraz zapobiega powtarzającym się alertom hosta.
Odwołania publiczne
.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
jako właściwej instrukcji wykonania.