OpenClaw hat drei öffentliche Release-Kanäle: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: getaggte Releases, die standardmäßig in npm
betaveröffentlichen, oder in npmlatest, wenn dies ausdrücklich angefordert wird - beta: Vorab-Release-Tags, die in npm
betaveröffentlichen - dev: der bewegliche Head von
main
Versionsbenennung
- Stable-Release-Version:
YYYY.M.D- Git-Tag:
vYYYY.M.D
- Git-Tag:
- Stable-Korrektur-Release-Version:
YYYY.M.D-N- Git-Tag:
vYYYY.M.D-N
- Git-Tag:
- Beta-Vorab-Release-Version:
YYYY.M.D-beta.N- Git-Tag:
vYYYY.M.D-beta.N
- Git-Tag:
- Monat oder Tag nicht mit führenden Nullen auffüllen
latestbedeutet den aktuell promoteten stabilen npm-Releasebetabedeutet das aktuelle Beta-Installationsziel- Stable- und Stable-Korrektur-Releases veröffentlichen standardmäßig in npm
beta; Release-Operatoren können ausdrücklichlatestals Ziel wählen oder später einen geprüften Beta-Build promoten - Jeder stabile OpenClaw-Release liefert das npm-Paket und die macOS-App gemeinsam aus; Beta-Releases validieren und veröffentlichen normalerweise zuerst den npm-/Paketpfad, während macOS-App-Build, Signierung und Notarisierung für stabile Releases reserviert sind, sofern nicht ausdrücklich angefordert
Release-Takt
- Releases durchlaufen zuerst Beta
- Stable folgt erst, nachdem die neueste Beta validiert wurde
- Maintainer erstellen Releases normalerweise aus einem
release/YYYY.M.D-Branch, der aus dem aktuellenmainerstellt wurde, damit Release-Validierung und Fixes neue Entwicklung aufmainnicht blockieren - Wenn ein Beta-Tag gepusht oder veröffentlicht wurde und einen Fix benötigt, erstellen Maintainer
das nächste
-beta.N-Tag, statt das alte Beta-Tag zu löschen oder neu zu erstellen - Detailliertes Release-Verfahren, Freigaben, Zugangsdaten und Wiederherstellungshinweise sind nur für Maintainer bestimmt
Checkliste für Release-Operatoren
Diese Checkliste beschreibt die öffentliche Form des Release-Ablaufs. Private Zugangsdaten, Signierung, Notarisierung, Dist-Tag-Wiederherstellung und Details zu Notfall-Rollbacks bleiben im nur für Maintainer bestimmten Release-Runbook.- Vom aktuellen
mainstarten: neuesten Stand pullen, bestätigen, dass der Ziel-Commit gepusht ist, und bestätigen, dass die aktuellemain-CI ausreichend grün ist, um davon zu branchen. - Den obersten Abschnitt in
CHANGELOG.mdanhand der echten Commit-Historie mit/changelogneu schreiben, Einträge benutzerorientiert halten, committen, pushen und vor dem Branching noch einmal rebasen/pullen. - Release-Kompatibilitätsdatensätze in
src/plugins/compat/registry.tsundsrc/commands/doctor/shared/deprecation-compat.tsprüfen. Abgelaufene Kompatibilität nur entfernen, wenn der Upgrade-Pfad weiterhin abgedeckt bleibt, oder dokumentieren, warum sie absichtlich beibehalten wird. release/YYYY.M.Daus dem aktuellenmainerstellen; normale Release-Arbeiten nicht direkt aufmaindurchführen.- Jede erforderliche Versionsstelle für das beabsichtigte Tag erhöhen, dann
pnpm release:prepausführen. Dies aktualisiert Plugin-Versionen, Plugin-Inventar, Konfigurationsschema, gebündelte Channel-Konfigurationsmetadaten, Konfigurationsdokumentations-Baseline, Plugin SDK Exporte und Plugin SDK API-Baseline in der richtigen Reihenfolge. Jegliche generierte Drift vor dem Taggen committen. Dann den lokalen deterministischen Preflight ausführen:pnpm check:test-types,pnpm check:architecture,pnpm build && pnpm ui:buildundpnpm release:check. OpenClaw NPM Releasemitpreflight_only=trueausführen. Bevor ein Tag existiert, ist ein vollständiger 40-Zeichen-SHA des Release-Branch für rein validierenden Preflight zulässig. Die erfolgreichepreflight_run_idspeichern.- Alle Pre-Release-Tests mit
Full Release Validationfür den Release-Branch, das Tag oder den vollständigen Commit-SHA starten. Dies ist der eine manuelle Einstiegspunkt für die vier großen Release-Testboxen: Vitest, Docker, QA Lab und Package. - Wenn die Validierung fehlschlägt, auf dem Release-Branch fixen und die kleinste fehlgeschlagene Datei, Lane, Workflow-Job, Paketprofil, Provider- oder Modell-Allowlist erneut ausführen, die den Fix belegt. Den vollständigen Umbrella nur erneut ausführen, wenn die geänderte Oberfläche frühere Nachweise veraltet macht.
- Für Beta
vYYYY.M.D-beta.Ntaggen, dannOpenClaw Release Publishaus dem passendenrelease/YYYY.M.D-Branch ausführen. Es prüftpnpm plugins:sync:check, dispatcht alle veröffentlichbaren Plugin-Pakete an npm und dieselbe Menge parallel an ClawHub und promotet dann das vorbereitete OpenClaw-npm-Preflight-Artefakt mit dem passenden Dist-Tag, sobald die Plugin-npm-Veröffentlichung erfolgreich ist. Nachdem das OpenClaw-npm-Publish-Child erfolgreich ist, erstellt oder aktualisiert es die passende GitHub-Release-/Prerelease-Seite aus dem vollständigen passenden Abschnitt inCHANGELOG.md. Stable-Releases, die in npmlatestveröffentlicht werden, werden zum neuesten GitHub-Release; stabile Wartungs-Releases, die auf npmbetableiben, werden mit GitHublatest=falseerstellt. Die ClawHub-Veröffentlichung kann noch laufen, während OpenClaw npm veröffentlicht, aber der Release-Publish-Workflow gibt die Child-Run-IDs sofort aus. Standardmäßig wartet er nach dem Dispatch nicht auf ClawHub, damit die OpenClaw-npm-Verfügbarkeit nicht durch langsamere ClawHub-Freigaben oder Registry-Arbeiten blockiert wird; setzen Siewait_for_clawhub=true, wenn ClawHub den Workflow-Abschluss blockieren muss. Der ClawHub-Pfad wiederholt vorübergehende Fehler bei der Installation von CLI-Abhängigkeiten, veröffentlicht Plugins mit bestandenem Preview auch dann, wenn eine Preview-Zelle flakt, und endet mit Registry-Verifizierung für jede erwartete Plugin-Version, sodass Teilveröffentlichungen sichtbar und wiederholbar bleiben. Nach der Veröffentlichung ausführen:pnpm release:verify-beta -- YYYY.M.D-beta.N --openclaw-npm-run <run-id> --plugin-npm-run <run-id> --plugin-clawhub-run <run-id>um GitHub-Prerelease, npm-beta-Dist-Tags, npm-Integrität, veröffentlichten Installationspfad, exakte ClawHub-Versionen, ClawHub-Artefakte und Child- Workflow-Ergebnisse mit einem Befehl zu verifizieren.--rerun-failed-clawhubhinzufügen, wenn der ClawHub-Sidecar nur in wiederholbaren Jobs fehlgeschlagen ist und direkt erneut ausgeführt werden soll. Dann die Post-Publish-Package-Acceptance gegen das veröffentlichte Paketopenclaw@YYYY.M.D-beta.Noderopenclaw@betaausführen. Wenn ein gepushter oder veröffentlichter Prerelease einen Fix benötigt, die nächste passende Prerelease-Nummer erstellen; den alten Prerelease nicht löschen oder umschreiben. - Für Stable nur fortfahren, nachdem die geprüfte Beta oder der Release Candidate die
erforderlichen Validierungsnachweise hat. Stable-npm-Veröffentlichung läuft ebenfalls über
OpenClaw Release Publish, wobei das erfolgreiche Preflight-Artefakt überpreflight_run_idwiederverwendet wird; Stable-macOS-Release-Bereitschaft erfordert außerdem die paketierten.zip,.dmg,.dSYM.zipund die aktualisierteappcast.xmlaufmain. Der private macOS-Publish-Workflow veröffentlicht den signierten Appcast automatisch auf dem öffentlichenmain, nachdem Release-Assets verifiziert wurden; wenn Branch-Schutz den direkten Push blockiert, öffnet oder aktualisiert er einen Appcast-PR. - Nach der Veröffentlichung den npm-Post-Publish-Verifizierer, bei Bedarf optionales eigenständiges veröffentlichtes-npm-Telegram-E2E für Post-Publish-Channel-Nachweis, Dist-Tag-Promotion bei Bedarf, die generierte GitHub-Release-Seite verifizieren und die Schritte für die Release-Ankündigung ausführen.
Release-Preflight
- Führen Sie
pnpm check:test-typesvor dem Release-Preflight aus, damit Test-TypeScript auch außerhalb des schnelleren lokalenpnpm check-Gates abgedeckt bleibt - Führen Sie
pnpm check:architecturevor dem Release-Preflight aus, damit die breiteren Prüfungen auf Importzyklen und Architekturgrenzen außerhalb des schnelleren lokalen Gates grün sind - Führen Sie
pnpm build && pnpm ui:buildvorpnpm release:checkaus, damit die erwartetendist/*-Release-Artefakte und das Control-UI-Bundle für den Pack- Validierungsschritt vorhanden sind - Führen Sie
pnpm release:prepnach dem Versionsbump im Root und vor dem Tagging aus. Es führt jeden deterministischen Release-Generator aus, der nach einer Versions-/Konfigurations-/API-Änderung häufig driftet: Plugin-Versionen, Plugin-Inventar, Basiskonfigurations- schema, gebündelte Channel-Konfigurationsmetadaten, Konfigurationsdokumentations-Baseline, Plugin-SDK- Exporte und Plugin-SDK-API-Baseline.pnpm release:checkführt diese Guards im Prüfmodus erneut aus und meldet jeden gefundenen Driftfehler generierter Dateien in einem Durchlauf, bevor Paket-Release-Prüfungen ausgeführt werden. - Führen Sie den manuellen
Full Release Validation-Workflow vor der Release-Freigabe aus, um alle Pre-Release-Testboxen über einen einzigen Einstiegspunkt zu starten. Er akzeptiert einen Branch, Tag oder vollständigen Commit-SHA, dispatcht manuelleCIund dispatchtOpenClaw Release Checksfür Installations-Smoke, Paketakzeptanz, Cross-OS- Paketprüfungen, QA-Lab-Parität, Matrix- und Telegram-Lanes. Stabile/Standardläufe behalten erschöpfende Live-/E2E- und Docker-Release-Pfad-Soak-Prüfungen hinterrun_release_soak=true;release_profile=fullerzwingt Soak. Mitrelease_profile=fullundrerun_group=allläuft außerdem Paket-Telegram- E2E gegen dasrelease-package-under-test-Artefakt aus den Release-Prüfungen. Geben Sierelease_package_specnach der Veröffentlichung einer Beta an, um das ausgelieferte npm-Paket über Release-Prüfungen, Package Acceptance und Paket-Telegram- E2E hinweg wiederzuverwenden, ohne den Release-Tarball neu zu bauen. Geben Sienpm_telegram_package_specnur an, wenn Telegram ein anderes veröffentlichtes Paket als der Rest der Release-Validierung verwenden soll. Geben Siepackage_acceptance_package_specan, wenn Package Acceptance ein anderes veröffentlichtes Paket als die Release-Paketspezifikation verwenden soll. Geben Sieevidence_package_specan, wenn der private Evidenzbericht nachweisen soll, dass die Validierung einem veröffentlichten npm-Paket entspricht, ohne Telegram E2E zu erzwingen. Beispiel:gh workflow run full-release-validation.yml --ref main -f ref=release/YYYY.M.D - Führen Sie den manuellen
Package Acceptance-Workflow aus, wenn Sie einen Side-Channel-Nachweis für einen Paketkandidaten möchten, während die Release-Arbeit weiterläuft. Verwenden Siesource=npmfüropenclaw@beta,openclaw@latestoder eine exakte Release-Version;source=ref, um einen vertrauenswürdigenpackage_ref-Branch/-Tag/-SHA mit dem aktuellenworkflow_ref-Harness zu packen;source=urlfür einen HTTPS-Tarball mit erforderlichem SHA-256; odersource=artifactfür einen Tarball, der von einem anderen GitHub- Actions-Lauf hochgeladen wurde. Der Workflow löst den Kandidaten zupackage-under-testauf, verwendet den Docker-E2E-Release-Scheduler gegen diesen Tarball wieder und kann Telegram-QA gegen denselben Tarball mittelegram_mode=mock-openaiodertelegram_mode=live-frontierausführen. Wenn die ausgewählten Docker-Lanespublished-upgrade-survivorenthalten, ist das Paket- artefakt der Kandidat undpublished_upgrade_survivor_baselinewählt die veröffentlichte Baseline aus.update-restart-authverwendet das Kandidatenpaket als sowohl installierte CLI als auch package-under-test, damit der verwaltete Neustartpfad des Update-Befehls des Kandidaten geprüft wird. Beispiel: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-openaiHäufige Profile:smoke: Installations-/Channel-/Agent-, Gateway-Netzwerk- und Konfigurations-Neulade-Lanespackage: artefaktnative Paket-/Update-/Neustart-/Plugin-Lanes ohne OpenWebUI oder live ClawHubproduct: Paketprofil plus MCP-Kanäle, Cron-/Subagent-Bereinigung, OpenAI-Websuche und OpenWebUIfull: Docker-Release-Pfad-Chunks mit OpenWebUIcustom: exaktedocker_lanes-Auswahl für einen fokussierten erneuten Lauf
- Führen Sie den manuellen
CI-Workflow direkt aus, wenn Sie nur vollständige normale CI- Abdeckung für den Release-Kandidaten benötigen. Manuelle CI-Dispatches umgehen Changed- Scoping und erzwingen die Linux-Node-Shards, Bundled-Plugin-Shards, Channel- Contracts, Node-22-Kompatibilität,check,check-additional, Build-Smoke, Docs-Prüfungen, Python-Skills, Windows, macOS, Android und Control-UI-i18n- Lanes. Beispiel:gh workflow run ci.yml --ref release/YYYY.M.D - Führen Sie
pnpm qa:otel:smokeaus, wenn Sie Release-Telemetrie validieren. Es führt QA-Lab über einen lokalen OTLP/HTTP-Empfänger aus und verifiziert die exportierten Trace- Span-Namen, begrenzten Attribute und Inhalts-/Kennungs-Redaktion, ohne Opik, Langfuse oder einen anderen externen Collector zu benötigen. - Führen Sie
pnpm release:checkvor jedem getaggten Release aus - Führen Sie
OpenClaw Release Publishfür die verändernde Publish-Sequenz aus, nachdem der Tag existiert. Dispatchen Sie ihn vonrelease/YYYY.M.D(odermain, wenn ein von main erreichbarer Tag veröffentlicht wird), übergeben Sie den Release-Tag und die erfolgreiche OpenClaw-npm-preflight_run_id, und behalten Sie den standardmäßigen Plugin-Publish-Scopeall-publishablebei, es sei denn, Sie führen bewusst eine fokussierte Reparatur aus. Der Workflow serialisiert Plugin-npm-Publish, Plugin-ClawHub-Publish und OpenClaw- npm-Publish, damit das Core-Paket nicht vor seinen externalisierten Plugins veröffentlicht wird. - Release-Prüfungen laufen jetzt in einem separaten manuellen Workflow:
OpenClaw Release Checks OpenClaw Release Checksführt vor der Release-Freigabe außerdem die QA-Lab-Mock-Paritätslane plus das schnelle Live-Matrix-Profil und die Telegram-QA-Lane aus. Die Live- Lanes verwenden dieqa-live-shared-Umgebung; Telegram verwendet außerdem Convex-CI- Credential-Leases. Führen Sie den manuellenQA-Lab - All Lanes-Workflow mitmatrix_profile=allundmatrix_shards=trueaus, wenn Sie vollständigen Matrix- Transport sowie Medien- und E2EE-Inventar parallel möchten.- Cross-OS-Installations- und Upgrade-Laufzeitvalidierung ist Teil der öffentlichen
OpenClaw Release ChecksundFull Release Validation, die den wiederverwendbaren Workflow.github/workflows/openclaw-cross-os-release-checks-reusable.ymldirekt aufrufen - Diese Aufteilung ist beabsichtigt: Halten Sie den echten npm-Release-Pfad kurz, deterministisch und artefaktfokussiert, während langsamere Live-Prüfungen in ihrer eigenen Lane bleiben, damit sie den Publish nicht verzögern oder blockieren
- Release-Prüfungen mit Secrets sollten über
Full Release Validationoder über diemain-/Release-Workflow-Ref dispatcht werden, damit Workflow-Logik und Secrets kontrolliert bleiben OpenClaw Release Checksakzeptiert einen Branch, Tag oder vollständigen Commit-SHA, solange der aufgelöste Commit von einem OpenClaw-Branch oder Release-Tag erreichbar ist- Die validierungsreine Preflight-Prüfung von
OpenClaw NPM Releaseakzeptiert außerdem den aktuellen vollständigen 40-Zeichen-Commit-SHA des Workflow-Branches, ohne einen gepushten Tag zu verlangen - Dieser SHA-Pfad dient nur der Validierung und kann nicht zu einem echten Publish hochgestuft werden
- Im SHA-Modus synthetisiert der Workflow
v<package.json version>nur für die Paketmetadatenprüfung; echter Publish erfordert weiterhin einen echten Release-Tag - Beide Workflows halten den echten Publish- und Promotion-Pfad auf GitHub-gehosteten Runnern, während der nicht verändernde Validierungspfad die größeren Blacksmith-Linux-Runner verwenden kann
- Dieser Workflow führt
OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_CACHE_TEST=1 pnpm test:live:cachemit den Workflow-SecretsOPENAI_API_KEYundANTHROPIC_API_KEYaus - npm-Release-Preflight wartet nicht mehr auf die separate Release-Prüfungs-Lane
- Bevor Sie einen Release-Kandidaten lokal taggen, führen Sie
RELEASE_TAG=vYYYY.M.D-beta.N pnpm release:fast-pretag-checkaus. Der Helper führt die schnellen Release-Guardrails, Plugin-npm-/ClawHub-Release-Prüfungen, Build, UI-Build undrelease:openclaw:npm:checkin der Reihenfolge aus, die häufige freigabeblockierende Fehler abfängt, bevor der GitHub-Publish-Workflow startet. - Führen Sie
RELEASE_TAG=vYYYY.M.D node --import tsx scripts/openclaw-npm-release-check.ts(oder den passenden Beta-/Korrektur-Tag) vor der Freigabe aus - Führen Sie nach dem npm-Publish
node --import tsx scripts/openclaw-npm-postpublish-verify.ts YYYY.M.D(oder die passende Beta-/Korrekturversion) aus, um den veröffentlichten Registry- Installationspfad in einem frischen temporären Prefix zu verifizieren - Führen Sie nach einem 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-liveaus, um Onboarding mit installiertem Paket, Telegram-Einrichtung und echtes Telegram-E2E gegen das veröffentlichte npm-Paket über den gemeinsam geleasten Telegram-Credential- Pool zu verifizieren. Lokale einmalige Maintainer-Läufe können die Convex-Variablen weglassen und die dreiOPENCLAW_QA_TELEGRAM_*-Env-Credentials direkt übergeben. - Um den vollständigen Post-Publish-Beta-Smoke von einer Maintainer-Maschine aus auszuführen, verwenden Sie
pnpm release:beta-smoke -- --beta betaN. Der Helper führt Parallels-npm-Update-/Fresh-Target-Validierung aus, dispatchtNPM Telegram Beta E2E, pollt den exakten Workflow-Lauf, lädt das Artefakt herunter und gibt den Telegram-Bericht aus. - Maintainer können dieselbe Post-Publish-Prüfung über den manuellen Workflow
NPM Telegram Beta E2Eaus GitHub Actions ausführen. Er ist bewusst nur manuell und läuft nicht bei jedem Merge. - Maintainer-Release-Automatisierung verwendet jetzt Preflight-dann-Promotion:
- Echter npm-Publish muss eine erfolgreiche npm-
preflight_run_idbestehen - Der echte npm-Publish muss vom selben
main- oderrelease/YYYY.M.D-Branch dispatcht werden wie der erfolgreiche Preflight-Lauf - Stabile npm-Releases verwenden standardmäßig
beta - Stabile npm-Publishs können über Workflow-Eingabe explizit
latestanvisieren - Tokenbasierte npm-dist-tag-Mutation liegt jetzt in
openclaw/releases-private/.github/workflows/openclaw-npm-dist-tags.ymlaus Sicherheitsgründen, weilnpm dist-tag addweiterhinNPM_TOKENbenötigt, während das öffentliche Repo bei OIDC-only-Publish bleibt - Öffentliches
macOS Releaseist validierungsrein; wenn ein Tag nur auf einem Release-Branch existiert, der Workflow aber vonmaindispatcht wird, setzen Siepublic_release_branch=release/YYYY.M.D - Echter privater Mac-Publish muss erfolgreiche private Mac-
preflight_run_idundvalidate_run_idbestehen - Die echten Publish-Pfade promoten vorbereitete Artefakte, statt sie erneut neu zu bauen
- Echter npm-Publish muss eine erfolgreiche npm-
- Bei stabilen Korrektur-Releases wie
YYYY.M.D-Nprüft der Post-Publish-Verifizierer außerdem denselben Temp-Prefix-Upgrade-Pfad vonYYYY.M.DaufYYYY.M.D-N, damit Release-Korrekturen ältere globale Installationen nicht unbemerkt auf dem stabilen Basis-Payload belassen können - npm-Release-Preflight schlägt geschlossen fehl, wenn der Tarball nicht sowohl
dist/control-ui/index.htmlals auch einen nicht leerendist/control-ui/assets/-Payload enthält, damit wir nicht erneut ein leeres Browser-Dashboard ausliefern - Die Post-Publish-Verifizierung prüft außerdem, dass veröffentlichte Plugin-Entrypoints und
Paketmetadaten im installierten Registry-Layout vorhanden sind. Ein Release, das
fehlende Plugin-Laufzeit-Payloads ausliefert, schlägt im Postpublish-Verifizierer fehl und
kann nicht zu
latestpromotet werden. pnpm test:install:smokeerzwingt außerdem das npm-Pack-unpackedSize-Budget für den Kandidaten-Update-Tarball, damit Installer-E2E versehentliche Pack-Aufblähung vor dem Release-Publish-Pfad abfängt- Wenn die Release-Arbeit CI-Planung, Extension-Timing-Manifeste oder
Extension-Testmatrizen berührt hat, regenerieren und prüfen Sie die plannerverwalteten
plugin-prerelease-extension-shard-Matrix-Ausgaben aus.github/workflows/plugin-prerelease.ymlvor der Freigabe, damit Release Notes kein veraltetes CI-Layout beschreiben - Die Bereitschaft stabiler macOS-Releases umfasst außerdem die Updater-Oberflächen:
- Das GitHub-Release muss am Ende die gepackte
.zip,.dmgund.dSYM.zipenthalten appcast.xmlaufmainmuss nach dem Publish auf das neue stabile Zip zeigen; der private macOS-Publish-Workflow committet es automatisch oder öffnet einen Appcast- PR, wenn direkter Push blockiert ist- Die gepackte App muss eine Nicht-Debug-Bundle-ID, eine nicht leere Sparkle-Feed-
URL und eine
CFBundleVersionauf oder über dem kanonischen Sparkle-Build-Floor für diese Release-Version behalten
- Das GitHub-Release muss am Ende die gepackte
Release-Testboxen
Full Release Validation ist der Weg, mit dem Operatoren alle Pre-Release-Tests von
einem einzigen Einstiegspunkt aus starten. Für einen Nachweis eines fixierten Commits auf
einem schnelllebigen Branch verwenden Sie den Helper, damit jeder untergeordnete Workflow
von einem temporären Branch ausgeführt wird, der auf die Ziel-SHA festgelegt ist:
release-ci/<sha>-..., startet Full Release Validation
von diesem Branch mit ref=<sha>, verifiziert, dass jede untergeordnete Workflow-headSha
mit dem Ziel übereinstimmt, und löscht anschließend den temporären Branch. Dadurch wird vermieden, versehentlich einen
neueren untergeordneten main-Lauf nachzuweisen.
Für die Validierung eines Release-Branchs oder -Tags führen Sie sie vom vertrauenswürdigen main-Workflow-
Ref aus und übergeben den Release-Branch oder -Tag als ref:
CI mit
target_ref=<release-ref>, startet OpenClaw Release Checks, bereitet ein
übergeordnetes release-package-under-test-Artefakt für paketbezogene Prüfungen vor und
startet eigenständiges Paket-Telegram-E2E, wenn release_profile=full mit
rerun_group=all verwendet wird oder wenn release_package_spec oder
npm_telegram_package_spec gesetzt ist. OpenClaw Release Checks fächert dann Install-Smoke, plattformübergreifende Release-Prüfungen, Live-/E2E-Docker-
Release-Pfad-Abdeckung bei aktiviertem Soak, Package Acceptance mit Telegram-
Paket-QA, QA-Lab-Parität, Live-Matrix und Live-Telegram auf. Ein vollständiger Lauf ist nur akzeptabel, wenn die
Zusammenfassung von Full Release Validation
normal_ci und release_checks als erfolgreich anzeigt. Im full/all-Modus
muss auch das untergeordnete npm_telegram erfolgreich sein; außerhalb von full/all wird es übersprungen,
sofern kein veröffentlichtes release_package_spec oder npm_telegram_package_spec
bereitgestellt wurde. Die abschließende
Verifier-Zusammenfassung enthält Tabellen der langsamsten Jobs für jeden untergeordneten Lauf, sodass der Release-
Manager den aktuellen kritischen Pfad sehen kann, ohne Logs herunterzuladen.
Siehe Vollständige Release-Validierung für die
vollständige Stufenmatrix, exakte Workflow-Jobnamen, Unterschiede zwischen stabilem und vollständigem Profil,
Artefakte und gezielte Rerun-Handles.
Untergeordnete Workflows werden von dem vertrauenswürdigen Ref gestartet, der Full Release Validation ausführt, normalerweise --ref main, selbst wenn der Ziel-ref auf einen
älteren Release-Branch oder -Tag zeigt. Es gibt keinen separaten Full-Release-Validation-
Workflow-Ref-Eingang; wählen Sie das vertrauenswürdige Harness, indem Sie den Workflow-Run-Ref wählen.
Verwenden Sie --ref main -f ref=<sha> nicht für einen exakten Commit-Nachweis auf einem beweglichen main;
rohe Commit-SHAs können keine Workflow-Dispatch-Refs sein, verwenden Sie daher
pnpm ci:full-release --sha <sha>, um den fixierten temporären Branch zu erstellen.
Verwenden Sie release_profile, um die Live-/Provider-Breite auszuwählen:
minimum: schnellster release-kritischer OpenAI-/Core-Live- und Docker-Pfadstable: Minimum plus stabile Provider-/Backend-Abdeckung für die Release-Freigabefull: Stable plus breite Advisory-Provider-/Medienabdeckung
run_release_soak=true mit stable, wenn die release-blockierenden Lanes
grün sind und Sie vor der Promotion die umfassende Live-/E2E-, Docker-Release-Pfad- und
begrenzte veröffentlichte Upgrade-Survivor-Prüfung wünschen. Diese Prüfung deckt
die neuesten vier stabilen Pakete plus fixierte 2026.4.23- und 2026.5.2-
Baselines sowie ältere 2026.4.15-Abdeckung ab, wobei doppelte Baselines entfernt und
jede Baseline in einen eigenen Docker-Runner-Job geshardet wird. full impliziert
run_release_soak=true.
OpenClaw Release Checks verwendet den vertrauenswürdigen Workflow-Ref, um den Ziel-
Ref einmal als release-package-under-test aufzulösen, und verwendet dieses Artefakt in plattformübergreifenden,
Package-Acceptance- und Release-Pfad-Docker-Prüfungen erneut, wenn Soak läuft. Dadurch bleiben
alle paketbezogenen Boxen auf denselben Bytes und wiederholte Paket-Builds werden vermieden.
Nachdem eine Beta bereits auf npm ist, setzen Sie release_package_spec=openclaw@YYYY.M.D-beta.N,
damit Release-Prüfungen das ausgelieferte Paket einmal herunterladen, dessen Build-Source-
SHA aus dist/build-info.json extrahieren und dieses Artefakt für plattformübergreifende,
Package-Acceptance-, Release-Pfad-Docker- und Paket-Telegram-Lanes wiederverwenden.
Der plattformübergreifende OpenAI-Install-Smoke verwendet OPENCLAW_CROSS_OS_OPENAI_MODEL, wenn die
Repo-/Org-Variable gesetzt ist, andernfalls openai/gpt-5.4, weil diese Lane
Paketinstallation, Onboarding, Gateway-Start und eine Live-Agent-Runde nachweist
statt das langsamste Standardmodell zu benchmarken. Die breitere Live-Provider-
Matrix bleibt der Ort für modellspezifische Abdeckung.
Verwenden Sie diese Varianten je nach Release-Phase:
Verify full validation erneut aus.
Für begrenzte Wiederherstellung übergeben Sie rerun_group an den Umbrella. all ist der echte
Release-Candidate-Lauf, ci führt nur das normale untergeordnete CI aus, plugin-prerelease
führt nur das release-spezifische untergeordnete Plugin aus, release-checks führt jede Release-
Box aus, und die engeren Release-Gruppen sind install-smoke, cross-os,
live-e2e, package, qa, qa-parity, qa-live und npm-telegram.
Gezielte npm-telegram-Reruns erfordern release_package_spec oder
npm_telegram_package_spec; full/all-Läufe mit release_profile=full verwenden das
Paketartefakt der Release-Prüfungen. Gezielte
plattformübergreifende Reruns können cross_os_suite_filter=windows/packaged-upgrade oder
einen anderen OS-/Suite-Filter hinzufügen. QA-Release-Check-Fehlschläge sind advisory; ein reiner QA-
Fehlschlag blockiert die Release-Validierung nicht.
Vitest
Die Vitest-Box ist der manuelle untergeordneteCI-Workflow. Manuelles CI umgeht absichtlich
Changed-Scoping und erzwingt den normalen Testgraphen für den Release
Candidate: Linux-Node-Shards, gebündelte Plugin-Shards, Channel-Verträge, Node-22-
Kompatibilität, check, check-additional, Build-Smoke, Docs-Prüfungen, Python-
Skills, Windows, macOS, Android und Control-UI-i18n.
Verwenden Sie diese Box, um zu beantworten: „Hat der Source Tree die vollständige normale Testsuite bestanden?“
Sie ist nicht dasselbe wie Release-Pfad-Produktvalidierung. Aufzubewahrende Nachweise:
Full Release Validation-Zusammenfassung mit der URL des gestartetenCI-Laufs- grüner
CI-Lauf auf der exakten Ziel-SHA - fehlgeschlagene oder langsame Shard-Namen aus den CI-Jobs bei der Untersuchung von Regressionen
- Vitest-Timing-Artefakte wie
.artifacts/vitest-shard-timings.json, wenn ein Lauf eine Performance-Analyse benötigt
Docker
Die Docker-Box befindet sich inOpenClaw Release Checks über
openclaw-live-and-e2e-checks-reusable.yml sowie im Release-Modus-
Workflow install-smoke. Sie validiert den Release Candidate über paketierte
Docker-Umgebungen statt nur über Tests auf Source-Ebene.
Die Release-Docker-Abdeckung umfasst:
- vollständiger Install-Smoke mit aktiviertem langsamem globalem Bun-Install-Smoke
- Vorbereitung/Wiederverwendung des Root-Dockerfile-Smoke-Images nach Ziel-SHA, mit QR-, Root-/Gateway- und Installer-/Bun-Smoke-Jobs als separate Install-Smoke- Shards
- Repository-E2E-Lanes
- Release-Pfad-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-gundplugins-runtime-install-h - OpenWebUI-Abdeckung innerhalb des Chunks
plugins-runtime-services, wenn angefordert - aufgeteilte Install-/Uninstall-Lanes für gebündelte Plugins
bundled-plugin-install-uninstall-0bisbundled-plugin-install-uninstall-23 - Live-/E2E-Provider-Suites und Docker-Live-Modellabdeckung, wenn Release-Prüfungen Live-Suites enthalten
.artifacts/docker-tests/ mit Lane-Logs, summary.json, failures.json,
Phasen-Timings, Scheduler-Plan-JSON und Rerun-Befehlen hoch. Für gezielte Wiederherstellung
verwenden Sie docker_lanes=<lane[,lane]> im wiederverwendbaren Live-/E2E-Workflow statt
alle Release-Chunks erneut auszuführen. Generierte Rerun-Befehle enthalten vorherige
package_artifact_run_id- und vorbereitete Docker-Image-Eingaben, sofern verfügbar, sodass eine
fehlgeschlagene Lane denselben Tarball und dieselben GHCR-Images wiederverwenden kann.
QA Lab
Die QA-Lab-Box ist ebenfalls Teil vonOpenClaw Release Checks. Sie ist das agentische
Verhaltens- und Channel-Level-Release-Gate, getrennt von Vitest und Docker-
Paketmechanik.
Die Release-QA-Lab-Abdeckung umfasst:
- Mock-Parity-Lane, die die OpenAI-Candidate-Lane mit der Opus-4.6- Baseline mithilfe des agentischen Parity-Packs vergleicht
- schnelles Live-Matrix-QA-Profil mit der Umgebung
qa-live-shared - Live-Telegram-QA-Lane mit Convex-CI-Credential-Leases
pnpm qa:otel:smoke, wenn Release-Telemetrie expliziten lokalen Nachweis benötigt
Package
Die Package-Box ist das Gate für das installierbare Produkt. Sie wird durchPackage Acceptance und den Resolver
scripts/resolve-openclaw-package-candidate.mjs gestützt. Der Resolver normalisiert einen
Candidate in den package-under-test-Tarball, der von Docker E2E verwendet wird, validiert
das Paketinventar, zeichnet die Paketversion und SHA-256 auf und hält den
Workflow-Harness-Ref vom Package-Source-Ref getrennt.
Unterstützte Candidate-Quellen:
source=npm:openclaw@beta,openclaw@latestoder eine exakte OpenClaw-Release- Versionsource=ref: einen vertrauenswürdigenpackage_ref-Branch, -Tag oder vollständige Commit-SHA mit dem ausgewähltenworkflow_ref-Harness packensource=url: eine HTTPS-.tgzmit erforderlichempackage_sha256herunterladensource=artifact: eine von einem anderen GitHub-Actions-Lauf hochgeladene.tgzwiederverwenden
OpenClaw Release Checks führt Package Acceptance mit source=artifact, dem
vorbereiteten Release-Paketartefakt, 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 aus. Package Acceptance hält Migration, Update,
Neustart eines konfigurierten Auth-Updates, Live-Installation von ClawHub-Skills, Bereinigung veralteter Plugin-Abhängigkeiten, Offline-Plugin-
Fixtures, Plugin-Update und Telegram-Paket-QA gegen denselben aufgelösten
Tarball. Blockierende Release-Prüfungen verwenden die standardmäßige Baseline
des neuesten veröffentlichten Pakets; run_release_soak=true oder
release_profile=full erweitert dies auf jede stabile, in npm veröffentlichte
Baseline von 2026.4.23 bis latest plus Fixtures zu gemeldeten Issues.
Verwenden Sie Package Acceptance mit source=npm für einen bereits
ausgelieferten Kandidaten oder source=ref/source=artifact für einen
SHA-gestützten lokalen npm-Tarball vor der Veröffentlichung. Es ist der
GitHub-native Ersatz für den Großteil der Paket-/Update-Abdeckung, die zuvor
Parallels erforderte. Release-Prüfungen über mehrere Betriebssysteme hinweg
bleiben für betriebssystemspezifisches Onboarding, Installer und
Plattformverhalten wichtig, aber die Produktvalidierung für Pakete/Updates
sollte Package Acceptance bevorzugen.
Die kanonische Checkliste für Update- und Plugin-Validierung ist
Updates und Plugins testen. Verwenden Sie sie,
wenn Sie entscheiden, welche lokale, Docker-, Package-Acceptance- oder
Release-Check-Lane eine Plugin-Installation/ein Plugin-Update, eine
Doctor-Bereinigung oder eine Migrationsänderung eines veröffentlichten Pakets
belegt. Eine vollständige veröffentlichte Update-Migration aus jedem stabilen
2026.4.23+-Paket ist ein separater manueller Update Migration-Workflow und
nicht Teil von Full Release CI.
Die Nachsicht der Legacy-Package-Acceptance ist bewusst zeitlich begrenzt.
Pakete bis einschließlich 2026.4.25 dürfen den Kompatibilitätspfad für
Metadatenlücken verwenden, die bereits in npm veröffentlicht wurden: private
QA-Inventareinträge, die im Tarball fehlen, fehlendes gateway install --wrapper,
fehlende Patch-Dateien in der aus dem Tarball abgeleiteten Git-Fixture,
fehlendes persistiertes update.channel, Legacy-Speicherorte für
Plugin-Installationsdatensätze, fehlende Persistenz von Marketplace-
Installationsdatensätzen und Konfigurationsmetadatenmigration während
plugins update. Das veröffentlichte Paket 2026.4.26 darf für bereits
ausgelieferte lokale Build-Metadaten-Stempeldateien warnen. Spätere Pakete
müssen die modernen Paketverträge erfüllen; dieselben Lücken lassen die
Release-Validierung fehlschlagen.
Verwenden Sie breitere Package-Acceptance-Profile, wenn die Release-Frage ein
tatsächlich installierbares Paket betrifft:
smoke: schnelle Lanes für Paketinstallation/Kanal/Agent, Gateway-Netzwerk und erneutes Laden der Konfigurationpackage: Verträge für Installations-/Update-/Neustart-/Plugin-Paket plus Live-Nachweis der ClawHub-Skill-Installation; dies ist der Standard für Release-Prüfungenproduct:packageplus MCP-Kanäle, Cron-/Subagent-Bereinigung, OpenAI-Websuche und OpenWebUIfull: Docker-Release-Pfad-Chunks mit OpenWebUIcustom: exaktedocker_lanes-Liste für fokussierte Wiederholungen
telegram_mode=mock-openai oder telegram_mode=live-frontier in Package
Acceptance. Der Workflow übergibt den aufgelösten package-under-test-Tarball
an die Telegram-Lane; der eigenständige Telegram-Workflow akzeptiert weiterhin
eine veröffentlichte npm-Spezifikation für Prüfungen nach der Veröffentlichung.
Release-Veröffentlichungsautomatisierung
OpenClaw Release Publish ist der normale mutierende Einstiegspunkt für
Veröffentlichungen. Er orchestriert die Trusted-Publisher-Workflows in der
Reihenfolge, die das Release benötigt:
- Release-Tag auschecken und dessen Commit-SHA auflösen.
- Prüfen, dass der Tag von
mainoderrelease/*erreichbar ist. pnpm plugins:sync:checkausführen.Plugin NPM Releasemitpublish_scope=all-publishableundref=<release-sha>auslösen.Plugin ClawHub Releasemit demselben Scope und derselben SHA auslösen.OpenClaw NPM Releasemit Release-Tag, npm-Dist-Tag und gespeichertempreflight_run_idauslösen.
latest ist ausdrücklich:
Plugin NPM Release und
Plugin ClawHub Release nur für fokussierte Reparatur- oder
Neu-Veröffentlichungsarbeiten. Für eine ausgewählte Plugin-Reparatur übergeben
Sie plugin_publish_scope=selected und plugins=@openclaw/name an
OpenClaw Release Publish oder lösen den untergeordneten Workflow direkt aus,
wenn das OpenClaw-Paket nicht veröffentlicht werden darf.
NPM-Workflow-Eingaben
OpenClaw NPM Release akzeptiert diese vom Operator gesteuerten Eingaben:
tag: erforderlicher Release-Tag wiev2026.4.2,v2026.4.2-1oderv2026.4.2-beta.1; wennpreflight_only=true, darf dies auch die aktuelle vollständige 40-stellige Commit-SHA des Workflow-Branches für einen nur validierenden Preflight seinpreflight_only:truenur für Validierung/Build/Paket,falsefür den echten Veröffentlichungspfadpreflight_run_id: im echten Veröffentlichungspfad erforderlich, damit der Workflow den vorbereiteten Tarball aus dem erfolgreichen Preflight-Lauf wiederverwendetnpm_dist_tag: npm-Ziel-Tag für den Veröffentlichungspfad; Standard istbeta
OpenClaw Release Publish akzeptiert diese vom Operator gesteuerten Eingaben:
tag: erforderlicher Release-Tag; muss bereits existierenpreflight_run_id: erfolgreicheOpenClaw NPM Release-Preflight-Lauf-ID; erforderlich, wennpublish_openclaw_npm=truenpm_dist_tag: npm-Ziel-Tag für das OpenClaw-Paketplugin_publish_scope: Standard istall-publishable; verwenden Sieselectednur für fokussierte Reparaturarbeitenplugins: durch Kommas getrennte@openclaw/*-Paketnamen, wennplugin_publish_scope=selectedpublish_openclaw_npm: Standard isttrue; setzen Sie dies nur auffalse, wenn Sie den Workflow als reinen Plugin-Reparatur-Orchestrator verwendenwait_for_clawhub: Standard istfalse, damit die npm-Verfügbarkeit nicht durch den ClawHub-Sidecar blockiert wird; setzen Sie dies nur auftrue, wenn der Workflow-Abschluss den ClawHub-Abschluss einschließen muss
OpenClaw Release Checks akzeptiert diese vom Operator gesteuerten Eingaben:
ref: Branch, Tag oder vollständige Commit-SHA zur Validierung. Prüfungen mit Secrets erfordern, dass der aufgelöste Commit von einem OpenClaw-Branch oder Release-Tag erreichbar ist.run_release_soak: entscheidet sich für vollständige Live-/E2E-, Docker- Release-Pfad- und All-Since-Upgrade-Survivor-Soak-Tests bei stabilen/ Standard-Release-Prüfungen. Wird durchrelease_profile=fullerzwungen.
- Stabile Tags und Korrektur-Tags dürfen entweder nach
betaoderlatestveröffentlicht werden - Beta-Prerelease-Tags dürfen nur nach
betaveröffentlicht werden - Für
OpenClaw NPM Releaseist die Eingabe einer vollständigen Commit-SHA nur erlaubt, wennpreflight_only=true OpenClaw Release ChecksundFull Release Validationsind immer nur Validierung- Der echte Veröffentlichungspfad muss denselben
npm_dist_tagverwenden, der während des Preflights verwendet wurde; der Workflow prüft diese Metadaten, bevor die Veröffentlichung fortgesetzt wird
Stabile npm-Release-Sequenz
Wenn Sie ein stabiles npm-Release erstellen:- Führen Sie
OpenClaw NPM Releasemitpreflight_only=trueaus- Bevor ein Tag existiert, dürfen Sie die aktuelle vollständige Commit-SHA des Workflow-Branches für einen nur validierenden Probelauf des Preflight-Workflows verwenden
- Wählen Sie
npm_dist_tag=betafür den normalen Beta-First-Ablauf oderlatestnur, wenn Sie bewusst eine direkte stabile Veröffentlichung möchten - Führen Sie
Full Release Validationauf dem Release-Branch, Release-Tag oder der vollständigen Commit-SHA aus, wenn Sie normale CI plus Live-Prompt-Cache, Docker, QA Lab, Matrix und Telegram-Abdeckung aus einem manuellen Workflow möchten - Wenn Sie bewusst nur den deterministischen normalen Testgraphen benötigen,
führen Sie stattdessen den manuellen
CI-Workflow auf der Release-Ref aus - Speichern Sie den erfolgreichen
preflight_run_id - Führen Sie
OpenClaw Release Publishmit demselbentag, demselbennpm_dist_tagund dem gespeichertenpreflight_run_idaus; es veröffentlicht externalisierte Plugins in npm und ClawHub, bevor das OpenClaw-npm-Paket promoted wird - Wenn das Release auf
betagelandet ist, verwenden Sie den privatenopenclaw/releases-private/.github/workflows/openclaw-npm-dist-tags.yml- Workflow, um diese stabile Version vonbetanachlatestzu promoten - Wenn das Release bewusst direkt nach
latestveröffentlicht wurde undbetasofort demselben stabilen Build folgen soll, verwenden Sie denselben privaten Workflow, um beide Dist-Tags auf die stabile Version zeigen zu lassen, oder lassen Sie die geplante Selbstheilungs-Synchronisierungbetaspäter verschieben
NPM_TOKEN benötigt, während das öffentliche Repo
ausschließlich OIDC-Veröffentlichung beibehält.
Dadurch bleiben sowohl der direkte Veröffentlichungspfad als auch der
Beta-First-Promotion-Pfad dokumentiert und für Operatoren sichtbar.
Wenn ein Maintainer auf lokale npm-Authentifizierung zurückgreifen muss, führen
Sie alle 1Password-CLI-(op-)Befehle nur innerhalb einer dedizierten
tmux-Sitzung aus. Rufen Sie op nicht direkt aus der Haupt-Agent-Shell auf;
wenn es in tmux bleibt, sind Prompts, Warnungen und OTP-Handhabung beobachtbar,
und wiederholte Host-Warnungen werden verhindert.
Öffentliche Referenzen
.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
für das eigentliche Runbook.