OpenClaw heeft drie openbare release-lanes: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: getagde releases die standaard naar npm
betapubliceren, of naar npmlatestwanneer dit expliciet wordt gevraagd - beta: prerelease-tags die naar npm
betapubliceren - dev: de bewegende kop van
main
Versienaamgeving
- Stable-releaseversie:
YYYY.M.D- Git-tag:
vYYYY.M.D
- Git-tag:
- Stable-correctiereleaseversie:
YYYY.M.D-N- Git-tag:
vYYYY.M.D-N
- Git-tag:
- Beta-prereleaseversie:
YYYY.M.D-beta.N- Git-tag:
vYYYY.M.D-beta.N
- Git-tag:
- Gebruik geen voorloopnullen voor maand of dag
latestbetekent de huidige gepromote stable npm-releasebetabetekent het huidige beta-installatiedoel- Stable- en stable-correctiereleases publiceren standaard naar npm
beta; release-operators kunnen explicietlatestkiezen, of later een gecontroleerde beta-build promoveren - Elke stable OpenClaw-release levert het npm-pakket en de macOS-app samen; beta-releases valideren en publiceren normaal gesproken eerst het npm-/pakketpad, waarbij bouwen/ondertekenen/notariëren van de Mac-app voor stable wordt gereserveerd, tenzij expliciet gevraagd
Releasetempo
- Releases gaan beta-first
- Stable volgt pas nadat de nieuwste beta is gevalideerd
- Maintainers maken releases normaal gesproken vanaf een
release/YYYY.M.D-branch die is gemaakt vanaf de huidigemain, zodat releasevalidatie en fixes nieuwe ontwikkeling opmainniet blokkeren - Als een beta-tag is gepusht of gepubliceerd en een fix nodig heeft, maken maintainers
de volgende
-beta.N-tag in plaats van de oude beta-tag te verwijderen of opnieuw te maken - Gedetailleerde releaseprocedure, goedkeuringen, inloggegevens en herstelnotities zijn alleen voor maintainers
Checklist voor release-operator
Deze checklist is de openbare vorm van de releaseflow. Privé-inloggegevens, ondertekening, notariëring, dist-tag-herstel en details voor noodrollback blijven in het alleen-voor-maintainers release-runbook.- Begin vanaf de huidige
main: haal de nieuwste wijzigingen op, bevestig dat de doelcommit is gepusht, en bevestig dat de huidigemain-CI groen genoeg is om er een branch van te maken. - Herschrijf de bovenste
CHANGELOG.md-sectie op basis van echte commitgeschiedenis met/changelog, houd vermeldingen gebruikersgericht, commit dit, push dit, en rebase/pull nog een keer voordat je brancht. - Controleer releasecompatibiliteitsrecords in
src/plugins/compat/registry.tsensrc/commands/doctor/shared/deprecation-compat.ts. Verwijder verlopen compatibiliteit alleen wanneer het upgradepad gedekt blijft, of leg vast waarom deze bewust wordt behouden. - Maak
release/YYYY.M.Dvanaf de huidigemain; doe normaal releasewerk niet direct opmain. - Verhoog elke vereiste versielocatie voor de bedoelde tag en voer daarna
pnpm release:prepuit. Dit ververst Plugin-versies, Plugin-inventaris, configuratie- schema, gebundelde kanaalconfiguratiemetadata, configuratiedocs-baseline, Plugin SDK- exports en Plugin SDK API-baseline in de juiste volgorde. Commit eventuele gegenereerde drift voordat je tagt. Voer daarna de lokale deterministische preflight uit:pnpm check:test-types,pnpm check:architecture,pnpm build && pnpm ui:build, enpnpm release:check. - Voer
OpenClaw NPM Releaseuit metpreflight_only=true. Voordat er een tag bestaat, is een volledige release-branch-SHA van 40 tekens toegestaan voor alleen-validatie preflight. Bewaar de succesvollepreflight_run_id. - Start alle prerelease-tests met
Full Release Validationvoor de release-branch, tag of volledige commit-SHA. Dit is het ene handmatige toegangspunt voor de vier grote release-testboxen: Vitest, Docker, QA Lab en Package. - Als validatie faalt, fix dit op de release-branch en voer het kleinste gefaalde bestand, de lane, workflow-job, pakketprofiel, provider of model-allowlist opnieuw uit die de fix bewijst. Voer de volledige paraplu alleen opnieuw uit wanneer het gewijzigde oppervlak eerder bewijs verouderd maakt.
- Voor beta: tag
vYYYY.M.D-beta.N, voer daarnaOpenClaw Release Publishuit vanaf de overeenkomenderelease/YYYY.M.D-branch. Dit verifieertpnpm plugins:sync:check, dispatcht alle publiceerbare Plugin-pakketten parallel naar npm en dezelfde set naar ClawHub, en promoveert daarna het voorbereide OpenClaw npm-preflight- artifact met de overeenkomende dist-tag zodra publiceren van Plugin npm slaagt. Nadat het OpenClaw npm publish-child is geslaagd, maakt of werkt het de overeenkomende GitHub-release-/prereleasepagina bij vanuit de volledige overeenkomendeCHANGELOG.md-sectie. Stable-releases die naar npmlatestzijn gepubliceerd, worden de nieuwste GitHub-release; stable-maintenance-releases die op npmbetablijven, worden gemaakt met GitHublatest=false. ClawHub-publicatie kan nog actief zijn terwijl OpenClaw npm publiceert, maar de release-publish-workflow print de child-run-ID’s direct. Standaard wacht deze niet op ClawHub na dispatch, zodat beschikbaarheid van OpenClaw npm niet wordt geblokkeerd door tragere ClawHub-goedkeuringen of registerwerk; stelwait_for_clawhub=truein wanneer ClawHub workflowvoltooiing moet blokkeren. Het ClawHub-pad probeert tijdelijke installatiefouten van CLI-afhankelijkheden opnieuw, publiceert plugins die de preview doorstaan, zelfs wanneer één preview-cel hapert, en eindigt met registerverificatie voor elke verwachte Plugin-versie zodat gedeeltelijke publicaties zichtbaar en opnieuw probeerbaar blijven. Voer na publicatiepnpm release:verify-beta -- YYYY.M.D-beta.N --openclaw-npm-run <run-id> --plugin-npm-run <run-id> --plugin-clawhub-run <run-id>uit om de GitHub-prerelease, npmbeta-dist-tags, npm-integriteit, gepubliceerd installatiepad, exacte ClawHub-versies, ClawHub-artifacts en child- workflowconclusies vanuit één opdracht te verifiëren. Voeg--rerun-failed-clawhubtoe wanneer de ClawHub-sidecar alleen in opnieuw probeerbare jobs faalde en ter plekke opnieuw moet worden uitgevoerd. Voer daarna de post-publish-pakketacceptatie uit tegen het gepubliceerdeopenclaw@YYYY.M.D-beta.N- ofopenclaw@beta-pakket. Als een gepushte of gepubliceerde prerelease een fix nodig heeft, maak dan het volgende overeenkomende prerelease-nummer; verwijder of herschrijf de oude prerelease niet. - Voor stable: ga alleen verder nadat de gecontroleerde beta of release candidate het
vereiste validatiebewijs heeft. Stable npm-publicatie loopt ook via
OpenClaw Release Publish, waarbij het succesvolle preflight-artifact viapreflight_run_idwordt hergebruikt; gereedheid voor stable macOS-release vereist ook de verpakte.zip,.dmg,.dSYM.zipen bijgewerkteappcast.xmlopmain. De private macOS-publish-workflow publiceert de ondertekende appcast automatisch naar publiekemainnadat release-assets zijn geverifieerd; als branchbescherming de directe push blokkeert, opent of werkt deze een appcast-PR bij. - Voer na publicatie de npm post-publish-verifier uit, optioneel zelfstandige gepubliceerde-npm Telegram E2E wanneer je post-publish kanaalbewijs nodig hebt, dist-tag-promotie wanneer nodig, verifieer de gegenereerde GitHub-releasepagina, en voer de release-aankondigingsstappen uit.
Release-preflight
- Voer
pnpm check:test-typesuit vóór release-preflight, zodat test-TypeScript gedekt blijft buiten de snellere lokalepnpm check-gate - Voer
pnpm check:architectureuit vóór release-preflight, zodat de bredere importcyclus- en architectuurgrenscontroles groen zijn buiten de snellere lokale gate - Voer
pnpm build && pnpm ui:builduit vóórpnpm release:check, zodat de verwachtedist/*-releaseartefacten en de Control UI-bundel bestaan voor de pakketvalidatiestap - Voer
pnpm release:prepuit na de root-versieverhoging en vóór het taggen. Het voert elke deterministische releasegenerator uit die vaak afwijkt na een versie-/config-/API-wijziging: Plugin-versies, Plugin-inventaris, basisconfiguratie- schema, gebundelde kanaalconfiguratie-metadata, basislijn voor configuratiedocs, Plugin SDK-exports en Plugin SDK-API-basislijn.pnpm release:checkvoert die bewakers opnieuw uit in checkmodus en rapporteert elke gegenereerde afwijkingsfout die het vindt in één doorgang voordat pakketreleasecontroles worden uitgevoerd. - Voer de handmatige
Full Release Validation-workflow uit vóór releasegoedkeuring om alle pre-release testboxen vanuit één toegangspunt te starten. Deze accepteert een branch, tag of volledige commit-SHA, dispatcht handmatigCIen dispatchtOpenClaw Release Checksvoor installatiesmoke, pakketacceptatie, cross-OS pakketcontroles, QA Lab-pariteit, Matrix- en Telegram-lanes. Stabiele/standaardruns houden uitputtende live/E2E- en Docker-releasepad-soak achterrun_release_soak=true;release_profile=fulldwingt soak af. Metrelease_profile=fullenrerun_group=allvoert het ook pakket-Telegram E2E uit tegen hetrelease-package-under-test-artefact uit releasecontroles. Geefrelease_package_specop na het publiceren van een bèta om het verscheepte npm-pakket opnieuw te gebruiken voor releasecontroles, Package Acceptance en pakket-Telegram E2E zonder de release-tarball opnieuw te bouwen. Geefnpm_telegram_package_specalleen op wanneer Telegram een ander gepubliceerd pakket moet gebruiken dan de rest van releasevalidatie. Geefpackage_acceptance_package_specop wanneer Package Acceptance een ander gepubliceerd pakket moet gebruiken dan de releasepakket-specificatie. Geefevidence_package_specop wanneer het private bewijsrapport moet aantonen dat de validatie overeenkomt met een gepubliceerd npm-pakket zonder Telegram E2E af te dwingen. Voorbeeld:gh workflow run full-release-validation.yml --ref main -f ref=release/YYYY.M.D - Voer de handmatige
Package Acceptance-workflow uit wanneer je side-channel-bewijs wilt voor een pakketkandidaat terwijl releasewerk doorgaat. Gebruiksource=npmvooropenclaw@beta,openclaw@latestof een exacte releaseversie;source=refom een vertrouwdepackage_ref-branch/tag/SHA te packen met de huidigeworkflow_ref-harness;source=urlvoor een HTTPS-tarball met een vereiste SHA-256; ofsource=artifactvoor een tarball die door een andere GitHub Actions-run is geüpload. De workflow herleidt de kandidaat totpackage-under-test, hergebruikt de Docker E2E-releasescheduler tegen die tarball en kan Telegram QA tegen dezelfde tarball uitvoeren mettelegram_mode=mock-openaioftelegram_mode=live-frontier. Wanneer de geselecteerde Docker-lanespublished-upgrade-survivorbevatten, is het pakket- artefact de kandidaat en selecteertpublished_upgrade_survivor_baselinede gepubliceerde basislijn.update-restart-authgebruikt het kandidaatpakket als zowel de geïnstalleerde CLI als het package-under-test, zodat het het managed restart-pad van het updatecommando van de kandidaat oefent. Voorbeeld: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-openaiGangbare profielen:smoke: install/channel/agent-, Gateway-netwerk- en configuratieherlaadlanespackage: artefact-native package/update/restart/Plugin-lanes zonder OpenWebUI of live ClawHubproduct: package-profiel plus MCP-kanalen, Cron-/subagent-opruiming, OpenAI-webzoekopdracht en OpenWebUIfull: Docker-releasepad-chunks met OpenWebUIcustom: exactedocker_lanes-selectie voor een gerichte rerun
- Voer de handmatige
CI-workflow direct uit wanneer je alleen volledige normale CI- dekking nodig hebt voor de releasekandidaat. Handmatige CI-dispatches omzeilen gewijzigde scoping en forceren de Linux Node-shards, gebundelde-Plugin-shards, kanaal- contracten, Node 22-compatibiliteit,check,check-additional, build-smoke, docs-controles, Python Skills, Windows, macOS, Android en Control UI i18n- lanes. Voorbeeld:gh workflow run ci.yml --ref release/YYYY.M.D - Voer
pnpm qa:otel:smokeuit bij het valideren van releasetelemetrie. Het oefent QA-lab via een lokale OTLP/HTTP-ontvanger en verifieert de geëxporteerde trace- span-namen, begrensde attributen en redactie van inhoud/identifiers zonder Opik, Langfuse of een andere externe collector te vereisen. - Voer
pnpm release:checkuit vóór elke getagde release - Voer
OpenClaw Release Publishuit voor de muterende publicatiereeks nadat de tag bestaat. Dispatch deze vanuitrelease/YYYY.M.D(ofmainwanneer je een vanaf main bereikbare tag publiceert), geef de releasetag en succesvolle OpenClaw npmpreflight_run_iddoor en behoud de standaard Plugin-publicatiescopeall-publishable, tenzij je bewust een gerichte reparatie uitvoert. De workflow serialiseert Plugin-npm-publicatie, Plugin-ClawHub-publicatie en OpenClaw npm-publicatie, zodat het corepakket niet vóór de geëxternaliseerde plugins wordt gepubliceerd. - Releasecontroles draaien nu in een aparte handmatige workflow:
OpenClaw Release Checks OpenClaw Release Checksvoert ook de QA Lab mock-pariteitslane plus het snelle live Matrix-profiel en de Telegram QA-lane uit vóór releasegoedkeuring. De live lanes gebruiken deqa-live-shared-omgeving; Telegram gebruikt ook Convex CI- credentialleases. Voer de handmatigeQA-Lab - All Lanes-workflow uit metmatrix_profile=allenmatrix_shards=truewanneer je volledige Matrix- transport-, media- en E2EE-inventaris parallel wilt.- Cross-OS installatie- en upgrade-runtimevalidatie maakt deel uit van publieke
OpenClaw Release ChecksenFull Release Validation, die de herbruikbare workflow.github/workflows/openclaw-cross-os-release-checks-reusable.ymldirect aanroepen - Deze splitsing is opzettelijk: houd het echte npm-releasepad kort, deterministisch en artefactgericht, terwijl langzamere livecontroles in hun eigen lane blijven zodat ze publiceren niet ophouden of blokkeren
- Releasecontroles met geheimen moeten worden gedispatcht via
Full Release Validationof vanuit demain/release-workflowref, zodat workflowlogica en geheimen gecontroleerd blijven OpenClaw Release Checksaccepteert een branch, tag of volledige commit-SHA zolang de herleide commit bereikbaar is vanaf een OpenClaw-branch of releasetagOpenClaw NPM Releasevalidation-only preflight accepteert ook de huidige volledige 40-tekens workflow-branch-commit-SHA zonder een gepushte tag te vereisen- Dat SHA-pad is alleen voor validatie en kan niet worden gepromoveerd naar een echte publicatie
- In SHA-modus synthetiseert de workflow
v<package.json version>alleen voor de pakketmetadata-controle; echte publicatie vereist nog steeds een echte releasetag - Beide workflows houden het echte publicatie- en promotiepad op GitHub-gehoste runners, terwijl het niet-muterende validatiepad de grotere Blacksmith Linux-runners kan gebruiken
- Die workflow voert
OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_CACHE_TEST=1 pnpm test:live:cacheuit met zowelOPENAI_API_KEYalsANTHROPIC_API_KEYworkflowsecrets - npm-releasepreflight wacht niet langer op de aparte releasecontroles-lane
- Voer vóór het lokaal taggen van een releasekandidaat
RELEASE_TAG=vYYYY.M.D-beta.N pnpm release:fast-pretag-checkuit. De helper voert de snelle releasebewakingsregels, Plugin npm-/ClawHub-releasecontroles, build, UI-build enrelease:openclaw:npm:checkuit in de volgorde die veelvoorkomende goedkeuringsblokkerende fouten opvangt voordat de GitHub-publicatieworkflow start. - Voer
RELEASE_TAG=vYYYY.M.D node --import tsx scripts/openclaw-npm-release-check.ts(of de overeenkomende bèta-/correctietag) uit vóór goedkeuring - Voer na npm-publicatie
node --import tsx scripts/openclaw-npm-postpublish-verify.ts YYYY.M.D(of de overeenkomende bèta-/correctieversie) uit om het gepubliceerde registry- installatiepad te verifiëren in een verse tijdelijke prefix - Voer na een bèta-publicatie
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-liveuit om installed-package-onboarding, Telegram-configuratie en echte Telegram E2E te verifiëren tegen het gepubliceerde npm-pakket met de gedeelde geleasede Telegram- credentialpool. Lokale eenmalige maintainer-runs mogen de Convex-vars weglaten en de drieOPENCLAW_QA_TELEGRAM_*-env-credentials direct doorgeven. - Gebruik
pnpm release:beta-smoke -- --beta betaNom de volledige post-publish bèta-smoke vanaf een maintainer-machine uit te voeren. De helper voert Parallels npm update-/fresh-targetvalidatie uit, dispatchtNPM Telegram Beta E2E, pollt de exacte workflowrun, downloadt het artefact en print het Telegram-rapport. - Maintainers kunnen dezelfde post-publish-controle uitvoeren vanuit GitHub Actions via de
handmatige
NPM Telegram Beta E2E-workflow. Deze is bewust alleen handmatig en draait niet bij elke merge. - Maintainer-releaseautomatisering gebruikt nu preflight-dan-promote:
- echte npm-publicatie moet slagen met een succesvolle npm
preflight_run_id - de echte npm-publicatie moet worden gedispatcht vanaf dezelfde
main- ofrelease/YYYY.M.D-branch als de succesvolle preflight-run - stabiele npm-releases gebruiken standaard
beta - stabiele npm-publicatie kan expliciet op
latestmikken via workflowinput - tokengebaseerde npm dist-tag-mutatie leeft nu in
openclaw/releases-private/.github/workflows/openclaw-npm-dist-tags.ymlvoor beveiliging, omdatnpm dist-tag addnog steedsNPM_TOKENnodig heeft terwijl de publieke repo OIDC-only publicatie behoudt - publieke
macOS Releaseis alleen validatie; wanneer een tag alleen op een releasebranch bestaat maar de workflow vanuitmainwordt gedispatcht, stel danpublic_release_branch=release/YYYY.M.Din - echte private mac-publicatie moet slagen met succesvolle private mac
preflight_run_idenvalidate_run_id - de echte publicatiepaden promoten voorbereide artefacten in plaats van ze opnieuw te bouwen
- echte npm-publicatie moet slagen met een succesvolle npm
- Voor stabiele correctiereleases zoals
YYYY.M.D-Ncontroleert de post-publish-verifier ook hetzelfde temp-prefix-upgradepad vanYYYY.M.DnaarYYYY.M.D-N, zodat releasecorrecties oudere globale installaties niet stilzwijgend op de basis-stabiele payload kunnen laten staan - npm-releasepreflight faalt gesloten tenzij de tarball zowel
dist/control-ui/index.htmlals een niet-legedist/control-ui/assets/-payload bevat, zodat we niet opnieuw een leeg browserdashboard verschepen - Post-publish-verificatie controleert ook of gepubliceerde Plugin-entrypoints en
pakketmetadata aanwezig zijn in de geïnstalleerde registry-layout. Een release die
ontbrekende Plugin-runtimepayloads verscheept, faalt de postpublish-verifier en
kan niet worden gepromoveerd naar
latest. pnpm test:install:smokedwingt ook het npm-packunpackedSize-budget af op de kandidaat-update-tarball, zodat installer-e2e onbedoelde pakketgroei opvangt vóór het releasepublicatiepad- Als het releasewerk CI-planning, extensietimingmanifests of
extensietestmatrices raakte, regenereer en review dan de planner-owned
plugin-prerelease-extension-shard-matrixoutputs uit.github/workflows/plugin-prerelease.ymlvóór goedkeuring, zodat releasenotities geen verouderde CI-layout beschrijven - Stabiele macOS-releasegereedheid omvat ook de updater-oppervlakken:
- de GitHub-release moet eindigen met de verpakte
.zip,.dmgen.dSYM.zip appcast.xmlopmainmoet na publicatie naar de nieuwe stabiele zip verwijzen; de private macOS-publicatieworkflow commit deze automatisch, of opent een appcast- PR wanneer direct pushen is geblokkeerd- de verpakte app moet een niet-debug bundle-id, een niet-lege Sparkle-feed-
URL en een
CFBundleVersionop of boven de canonieke Sparkle-buildvloer voor die releaseversie behouden
- de GitHub-release moet eindigen met de verpakte
Release-testboxes
Full Release Validation is hoe operators alle pre-releasetests starten vanuit
een enkel toegangspunt. Gebruik voor bewijs van een vastgezette commit op een
snel bewegende branch de helper, zodat elke child-workflow draait vanaf een
tijdelijke branch die is vastgezet op de doel-SHA:
release-ci/<sha>-..., dispatcht Full Release Validation
vanaf die branch met ref=<sha>, controleert of elke child-workflow headSha
overeenkomt met het doel, en verwijdert daarna de tijdelijke branch. Dit voorkomt
dat per ongeluk een nieuwere main-child-run wordt bewezen.
Voor validatie van een releasebranch of tag voer je deze uit vanaf de vertrouwde
main-workflow-ref en geef je de releasebranch of tag door als ref:
CI met
target_ref=<release-ref>, dispatcht OpenClaw Release Checks, bereidt een
bovenliggend release-package-under-test-artefact voor package-gerichte checks
voor, en dispatcht standalone package Telegram E2E wanneer
release_profile=full met rerun_group=all, of wanneer
release_package_spec of npm_telegram_package_spec is ingesteld.
OpenClaw Release Checks spreidt vervolgens uit naar install smoke,
cross-OS-releasechecks, live/E2E Docker-releasepaddekking wanneer soak is
ingeschakeld, Package Acceptance met Telegram-package-QA, QA Lab-pariteit, live
Matrix en live Telegram. Een volledige run is alleen acceptabel wanneer de
samenvatting van Full Release Validation normal_ci en release_checks als
succesvol toont. In full/all-modus moet de npm_telegram-child ook succesvol
zijn; buiten full/all wordt deze overgeslagen, tenzij een gepubliceerde
release_package_spec of npm_telegram_package_spec is opgegeven. De
uiteindelijke verificatiesamenvatting bevat tabellen met traagste jobs voor elke
child-run, zodat de releasemanager het huidige kritieke pad kan zien zonder logs
te downloaden.
Zie Volledige releasevalidatie voor de
complete stagematrix, exacte workflow-jobnamen, verschillen tussen stable- en
full-profielen, artefacten en gerichte rerun-handles.
Child-workflows worden gedispatcht vanaf de vertrouwde ref die Full Release Validation uitvoert, normaal --ref main, zelfs wanneer de doel-ref naar een
oudere releasebranch of tag wijst. Er is geen afzonderlijke
Full Release Validation workflow-ref-invoer; kies de vertrouwde harness door de
workflow-run-ref te kiezen.
Gebruik --ref main -f ref=<sha> niet voor exact commitbewijs op bewegende
main; ruwe commit-SHA’s kunnen geen workflow-dispatch-refs zijn, dus gebruik
pnpm ci:full-release --sha <sha> om de vastgezette tijdelijke branch te maken.
Gebruik release_profile om live/provider-breedte te selecteren:
minimum: snelste release-kritieke OpenAI/core live- en Docker-padstable: minimum plus stable provider/backend-dekking voor releasegoedkeuringfull: stable plus brede advisory provider/media-dekking
run_release_soak=true met stable wanneer de releaseblokkerende lanes
groen zijn en je de uitputtende live/E2E-, Docker-releasepad- en begrensde
gepubliceerde upgrade-survivor-sweep wilt vóór promotie. Die sweep dekt de
laatste vier stable packages plus vastgezette 2026.4.23- en 2026.5.2
baselines plus oudere 2026.4.15-dekking, waarbij dubbele baselines worden
verwijderd en elke baseline in zijn eigen Docker-runner-job wordt geshard.
full impliceert run_release_soak=true.
OpenClaw Release Checks gebruikt de vertrouwde workflow-ref om de doel-ref één
keer te resolven als release-package-under-test en hergebruikt dat artefact in
cross-OS-, Package Acceptance- en releasepad-Docker-checks wanneer soak draait.
Zo blijven alle package-gerichte boxes op dezelfde bytes en worden herhaalde
package-builds vermeden.
Nadat een beta al op npm staat, stel je
release_package_spec=openclaw@YYYY.M.D-beta.N in, zodat releasechecks het
verzonden package één keer downloaden, de build-source-SHA uit
dist/build-info.json extraheren en dat artefact hergebruiken voor cross-OS,
Package Acceptance, releasepad-Docker en package Telegram-lanes.
De cross-OS OpenAI install smoke gebruikt OPENCLAW_CROSS_OS_OPENAI_MODEL
wanneer de repo/org-variabele is ingesteld, anders openai/gpt-5.4, omdat deze
lane package-installatie, onboarding, Gateway-startup en één live agentbeurt
bewijst in plaats van het traagste standaardmodel te benchmarken. De bredere
live provider-matrix blijft de plek voor modelspecifieke dekking.
Gebruik deze varianten afhankelijk van de releasestage:
Verify full validation.
Geef voor begrensd herstel rerun_group door aan de umbrella. all is de echte
release-candidate-run, ci draait alleen de normale CI-child,
plugin-prerelease draait alleen de release-only Plugin-child,
release-checks draait elke releasebox, en de smallere releasegroepen zijn
install-smoke, cross-os, live-e2e, package, qa, qa-parity,
qa-live en npm-telegram. Gerichte npm-telegram-reruns vereisen
release_package_spec of npm_telegram_package_spec; full/all-runs met
release_profile=full gebruiken het release-checks-packageartefact. Gerichte
cross-OS-reruns kunnen cross_os_suite_filter=windows/packaged-upgrade of een
andere OS/suite-filter toevoegen. QA-releasecheckfouten zijn adviserend; een
alleen-QA-fout blokkeert releasevalidatie niet.
Vitest
De Vitest-box is de handmatigeCI-child-workflow. Handmatige CI omzeilt bewust
changed-scoping en forceert de normale testgraaf voor de releasecandidate:
Linux Node-shards, gebundelde-Plugin-shards, channel-contracts,
Node 22-compatibiliteit, check, check-additional, build smoke, docs-checks,
Python Skills, Windows, macOS, Android en Control UI i18n.
Gebruik deze box om te beantwoorden: “is de source tree geslaagd voor de
volledige normale testsuite?” Dit is niet hetzelfde als productvalidatie van het
releasepad. Bewijs om te bewaren:
Full Release Validation-samenvatting met de gedispatchteCI-run-URLCI-run groen op de exacte doel-SHA- gefaalde of trage shardnamen uit de CI-jobs bij onderzoek naar regressies
- Vitest-timingartefacten zoals
.artifacts/vitest-shard-timings.jsonwanneer een run prestatieanalyse nodig heeft
Docker
De Docker-box zit inOpenClaw Release Checks via
openclaw-live-and-e2e-checks-reusable.yml, plus de release-modus
install-smoke-workflow. Deze valideert de releasecandidate via verpakte
Docker-omgevingen in plaats van alleen tests op sourceniveau.
Release-Docker-dekking omvat:
- volledige install smoke met de trage Bun global install smoke ingeschakeld
- voorbereiding/hergebruik van de root-Dockerfile-smoke-image per doel-SHA, met QR-, root/Gateway- en installer/Bun-smoke-jobs als afzonderlijke install-smoke-shards
- repository-E2E-lanes
- releasepad-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-genplugins-runtime-install-h - OpenWebUI-dekking binnen de chunk
plugins-runtime-serviceswanneer gevraagd - gesplitste install/uninstall-lanes voor gebundelde Plugins
bundled-plugin-install-uninstall-0tot en metbundled-plugin-install-uninstall-23 - live/E2E-provider-suites en Docker-live-modeldekking wanneer releasechecks live suites bevatten
.artifacts/docker-tests/ met lane-logs, summary.json,
failures.json, fase-timings, scheduler-plan-JSON en rerun-commando’s. Gebruik
voor gericht herstel docker_lanes=<lane[,lane]> op de herbruikbare
live/E2E-workflow in plaats van alle releasechunks opnieuw te draaien.
Gegenereerde rerun-commando’s bevatten eerdere package_artifact_run_id en
voorbereide Docker-image-inputs wanneer beschikbaar, zodat een gefaalde lane
dezelfde tarball en GHCR-images kan hergebruiken.
QA Lab
De QA Lab-box maakt ook deel uit vanOpenClaw Release Checks. Dit is de
agentic gedrags- en channel-level releasegate, los van Vitest en
Docker-packagemechanica.
Release-QA Lab-dekking omvat:
- mock-parity-lane die de OpenAI-candidate-lane vergelijkt met de Opus 4.6 baseline via het agentic parity pack
- snel live Matrix-QA-profiel met de
qa-live-shared-omgeving - live Telegram-QA-lane met Convex CI-credentialleases
pnpm qa:otel:smokewanneer releasetelemetrie expliciet lokaal bewijs nodig heeft
Package
De Package-box is de gate voor het installeerbare product. Deze wordt ondersteund doorPackage Acceptance en de resolver
scripts/resolve-openclaw-package-candidate.mjs. De resolver normaliseert een
candidate naar de package-under-test-tarball die door Docker E2E wordt
geconsumeerd, valideert de package-inventaris, registreert de packageversie en
SHA-256, en houdt de workflow-harness-ref gescheiden van de package-source-ref.
Ondersteunde candidate-bronnen:
source=npm:openclaw@beta,openclaw@latestof een exacte OpenClaw-releaseversiesource=ref: pack een vertrouwdepackage_ref-branch, tag of volledige commit-SHA met de geselecteerdeworkflow_ref-harnesssource=url: download een HTTPS.tgzmet vereistepackage_sha256source=artifact: hergebruik een.tgzdie door een andere GitHub Actions-run is geüpload
OpenClaw Release Checks voert Pakketacceptatie uit met source=artifact, het
voorbereide releasepakketartefact, 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. Pakketacceptatie houdt migratie, update,
herstart na geconfigureerde-authenticatie-update, live ClawHub-Skills-installatie, opschonen van verouderde Plugin-afhankelijkheden, offline Plugin-fixtures, Plugin-update en Telegram-pakket-QA tegen dezelfde opgeloste
tarball. Blokkerende releasecontroles gebruiken de standaardbaseline van het laatst gepubliceerde pakket;
run_release_soak=true of
release_profile=full breidt dit uit naar elke stabiele npm-gepubliceerde baseline van
2026.4.23 tot en met latest, plus fixtures voor gerapporteerde issues. Gebruik
Pakketacceptatie met source=npm voor een kandidaat die al is uitgebracht, of
source=ref/source=artifact voor een door een SHA ondersteunde lokale npm-tarball vóór
publicatie. Dit is de GitHub-native
vervanging voor het grootste deel van de pakket-/updatedekking waarvoor eerder
Parallels nodig was. Cross-OS-releasecontroles blijven belangrijk voor OS-specifieke onboarding,
installer- en platformgedrag, maar pakket-/updateproductvalidatie moet
de voorkeur geven aan Pakketacceptatie.
De canonieke checklist voor update- en Plugin-validatie is
Updates en Plugins testen. Gebruik deze bij het
bepalen welke lokale, Docker-, Pakketacceptatie- of releasecontrole-lane een
Plugin-installatie/update, doctor-opschoning of gepubliceerde-pakketmigratiewijziging bewijst.
Uitputtende gepubliceerde-updatemigratie vanaf elk stabiel 2026.4.23+-pakket is
een aparte handmatige Update Migration-workflow, geen onderdeel van Full Release CI.
Legacy-tolerantie voor pakketacceptatie is opzettelijk in de tijd beperkt. Pakketten tot en met
2026.4.25 mogen het compatibiliteitspad gebruiken voor metadatagaten die al naar
npm zijn gepubliceerd: private QA-inventarisvermeldingen die ontbreken in de tarball, ontbrekende
gateway install --wrapper, ontbrekende patchbestanden in de uit de tarball afgeleide git-
fixture, ontbrekende persistente update.channel, legacy-locaties voor Plugin-installatierecords,
ontbrekende persistentie van marketplace-installatierecords en migratie van configmetadata
tijdens plugins update. Het gepubliceerde 2026.4.26-pakket mag waarschuwen
voor lokale buildmetadata-stempelbestanden die al zijn uitgebracht. Latere pakketten
moeten voldoen aan de moderne pakketcontracten; dezelfde gaten laten releasevalidatie
mislukken.
Gebruik bredere Pakketacceptatieprofielen wanneer de releasevraag gaat over een
daadwerkelijk installeerbaar pakket:
smoke: snelle pakketinstallatie-/kanaal-/agent-, Gateway-netwerk- en config- herlaadlanespackage: installatie-/update-/herstart-/Plugin-pakketcontracten plus live ClawHub- Skills-installatiebewijs; dit is de standaard voor releasecontrolesproduct:packageplus MCP-kanalen, cron/subagent-opschoning, OpenAI-web zoeken en OpenWebUIfull: Docker-releasepad-chunks met OpenWebUIcustom: exactedocker_lanes-lijst voor gerichte herhalingen
telegram_mode=mock-openai of
telegram_mode=live-frontier in op Pakketacceptatie. De workflow geeft de
opgeloste package-under-test-tarball door aan de Telegram-lane; de zelfstandige
Telegram-workflow accepteert nog steeds een gepubliceerde npm-specificatie voor controles na publicatie.
Releasepublicatieautomatisering
OpenClaw Release Publish is het normale muterende publicatie-ingangspunt. Het
orkestreert de trusted-publisher-workflows in de volgorde die de release nodig heeft:
- Check de releasetag uit en los de commit-SHA ervan op.
- Verifieer dat de tag bereikbaar is vanaf
mainofrelease/*. - Voer
pnpm plugins:sync:checkuit. - Dispatch
Plugin NPM Releasemetpublish_scope=all-publishableenref=<release-sha>. - Dispatch
Plugin ClawHub Releasemet dezelfde scope en SHA. - Dispatch
OpenClaw NPM Releasemet de releasetag, npm-dist-tag en opgeslagenpreflight_run_id.
latest is expliciet:
Plugin NPM Release en Plugin ClawHub Release
alleen voor gericht herstel- of herpublicatiewerk. Geef voor een geselecteerd Plugin-herstel
plugin_publish_scope=selected en plugins=@openclaw/name door aan
OpenClaw Release Publish, of dispatch de child-workflow rechtstreeks wanneer het
OpenClaw-pakket niet mag worden gepubliceerd.
NPM-workflowinvoer
OpenClaw NPM Release accepteert deze door operators beheerde invoer:
tag: vereiste releasetag zoalsv2026.4.2,v2026.4.2-1ofv2026.4.2-beta.1; wanneerpreflight_only=true, mag dit ook de huidige volledige 40-tekens workflowbranch-commit-SHA zijn voor alleen-validatie-preflightpreflight_only:truevoor alleen validatie/build/pakket,falsevoor het echte publicatiepadpreflight_run_id: vereist op het echte publicatiepad, zodat de workflow de voorbereide tarball uit de succesvolle preflight-run hergebruiktnpm_dist_tag: npm-doeltag voor het publicatiepad; standaardbeta
OpenClaw Release Publish accepteert deze door operators beheerde invoer:
tag: vereiste releasetag; moet al bestaanpreflight_run_id: succesvolleOpenClaw NPM Release-preflight-run-id; vereist wanneerpublish_openclaw_npm=truenpm_dist_tag: npm-doeltag voor het OpenClaw-pakketplugin_publish_scope: standaardall-publishable; gebruikselectedalleen voor gericht herstelwerkplugins: kommagescheiden@openclaw/*-pakketnamen wanneerplugin_publish_scope=selectedpublish_openclaw_npm: standaardtrue; stel alleenfalsein wanneer de workflow wordt gebruikt als alleen-Plugin-herstelorkestratorwait_for_clawhub: standaardfalse, zodat npm-beschikbaarheid niet wordt geblokkeerd door de ClawHub-sidecar; stel alleentruein wanneer workflowvoltooiing ook ClawHub-voltooiing moet omvatten
OpenClaw Release Checks accepteert deze door operators beheerde invoer:
ref: branch, tag of volledige commit-SHA om te valideren. Controles met secrets vereisen dat de opgeloste commit bereikbaar is vanaf een OpenClaw-branch of releasetag.run_release_soak: kies voor uitputtende live/E2E-, Docker-releasepad- en all-since upgrade-survivor-soak op stabiele/standaardreleasecontroles. Dit wordt afgedwongen doorrelease_profile=full.
- Stabiele en correctietags mogen naar
betaoflatestpubliceren - Beta-prereleasetags mogen alleen naar
betapubliceren - Voor
OpenClaw NPM Releaseis volledige commit-SHA-invoer alleen toegestaan wanneerpreflight_only=true OpenClaw Release ChecksenFull Release Validationzijn altijd alleen-validatie- Het echte publicatiepad moet dezelfde
npm_dist_taggebruiken als tijdens preflight; de workflow verifieert die metadata voordat de publicatie doorgaat
Stabiele npm-releasereeks
Bij het maken van een stabiele npm-release:- Voer
OpenClaw NPM Releaseuit metpreflight_only=true- Voordat een tag bestaat, mag u de huidige volledige workflowbranch-commit- SHA gebruiken voor een alleen-validatie-droogrun van de preflight-workflow
- Kies
npm_dist_tag=betavoor de normale beta-first-flow, of alleenlatestwanneer u bewust rechtstreeks stabiel wilt publiceren - Voer
Full Release Validationuit op de releasebranch, releasetag of volledige commit-SHA wanneer u normale CI plus live promptcache, Docker, QA Lab, Matrix en Telegram-dekking vanuit één handmatige workflow wilt - Als u bewust alleen de deterministische normale testgraaf nodig hebt, voert u in plaats daarvan de
handmatige
CI-workflow uit op de release-ref - Sla de succesvolle
preflight_run_idop - Voer
OpenClaw Release Publishuit met dezelfdetag, dezelfdenpm_dist_tag, en de opgeslagenpreflight_run_id; deze publiceert geëxternaliseerde Plugins naar npm en ClawHub voordat het OpenClaw-npm-pakket wordt gepromoveerd - Als de release op
betais geland, gebruikt u de privateopenclaw/releases-private/.github/workflows/openclaw-npm-dist-tags.yml- workflow om die stabiele versie vanbetanaarlatestte promoveren - Als de release bewust rechtstreeks naar
latestis gepubliceerd enbetaonmiddellijk dezelfde stabiele build moet volgen, gebruikt u dezelfde private workflow om beide dist-tags naar de stabiele versie te laten wijzen, of laat u de geplande zelfherstellende synchronisatiebetalater verplaatsen
NPM_TOKEN vereist, terwijl de publieke repo alleen OIDC-publicatie behoudt.
Zo blijven het directe publicatiepad en het beta-first-promotiepad beide
gedocumenteerd en zichtbaar voor operators.
Als een maintainer moet terugvallen op lokale npm-authenticatie, voer dan alle 1Password
CLI-(op)-opdrachten alleen uit binnen een dedicated tmux-sessie. Roep op niet
rechtstreeks aan vanuit de hoofd-agent-shell; door dit binnen tmux te houden zijn prompts,
meldingen en OTP-afhandeling observeerbaar en worden herhaalde hostmeldingen voorkomen.
Publieke verwijzingen
.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
voor het daadwerkelijke runbook.