OpenClaw memiliki tiga jalur rilis publik: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: rilis bertag yang dipublikasikan ke npm
betasecara default, atau ke npmlatestketika diminta secara eksplisit - beta: tag prarilis yang dipublikasikan ke npm
beta - dev: head bergerak dari
main
Penamaan versi
- Versi rilis stable:
YYYY.M.D- Tag Git:
vYYYY.M.D
- Tag Git:
- Versi rilis koreksi stable:
YYYY.M.D-N- Tag Git:
vYYYY.M.D-N
- Tag Git:
- Versi prarilis beta:
YYYY.M.D-beta.N- Tag Git:
vYYYY.M.D-beta.N
- Tag Git:
- Jangan menambahkan nol di depan bulan atau hari
latestberarti rilis npm stable yang saat ini dipromosikanbetaberarti target instalasi beta saat ini- Rilis stable dan rilis koreksi stable dipublikasikan ke npm
betasecara default; operator rilis dapat menargetkanlatestsecara eksplisit, atau mempromosikan build beta yang sudah diperiksa nanti - Setiap rilis stable OpenClaw mengirimkan paket npm dan aplikasi macOS bersama-sama; rilis beta biasanya memvalidasi dan memublikasikan jalur npm/paket terlebih dahulu, dengan build/tanda tangan/notarisasi aplikasi Mac disediakan untuk stable kecuali diminta secara eksplisit
Jadwal rilis
- Rilis bergerak dengan beta terlebih dahulu
- Stable menyusul hanya setelah beta terbaru divalidasi
- Maintainer biasanya membuat rilis dari cabang
release/YYYY.M.Dyang dibuat darimainsaat ini, sehingga validasi dan perbaikan rilis tidak menghambat pengembangan baru dimain - Jika tag beta sudah didorong atau dipublikasikan dan membutuhkan perbaikan, maintainer membuat
tag
-beta.Nberikutnya alih-alih menghapus atau membuat ulang tag beta lama - Prosedur rilis terperinci, persetujuan, kredensial, dan catatan pemulihan hanya untuk maintainer
Daftar periksa operator rilis
Daftar periksa ini adalah bentuk publik dari alur rilis. Kredensial privat, penandatanganan, notarisasi, pemulihan dist-tag, dan detail rollback darurat tetap berada di buku panduan rilis khusus maintainer.- Mulai dari
mainsaat ini: tarik yang terbaru, konfirmasi commit target sudah didorong, dan konfirmasi CImainsaat ini cukup hijau untuk menjadi dasar cabang. - Tulis ulang bagian teratas
CHANGELOG.mddari riwayat commit nyata dengan/changelog, pertahankan entri tetap menghadap pengguna, commit, dorong, dan rebase/pull sekali lagi sebelum membuat cabang. - Tinjau catatan kompatibilitas rilis di
src/plugins/compat/registry.tsdansrc/commands/doctor/shared/deprecation-compat.ts. Hapus kompatibilitas yang sudah kedaluwarsa hanya ketika jalur upgrade tetap tercakup, atau catat mengapa kompatibilitas itu sengaja dipertahankan. - Buat
release/YYYY.M.Ddarimainsaat ini; jangan lakukan pekerjaan rilis normal langsung dimain. - Naikkan setiap lokasi versi yang diperlukan untuk tag yang dimaksud, lalu jalankan
pnpm release:prep. Perintah ini menyegarkan versi plugin, inventaris plugin, skema config, metadata config channel terbundel, baseline dokumen config, ekspor SDK plugin, dan baseline API SDK plugin dalam urutan yang benar. Commit drift yang dihasilkan sebelum membuat tag. Lalu jalankan preflight deterministik lokal:pnpm check:test-types,pnpm check:architecture,pnpm build && pnpm ui:build, danpnpm release:check. - Jalankan
OpenClaw NPM Releasedenganpreflight_only=true. Sebelum tag ada, SHA cabang rilis 40 karakter penuh diizinkan untuk preflight khusus validasi. Simpanpreflight_run_idyang berhasil. - Mulai semua pengujian prarilis dengan
Full Release Validationuntuk cabang rilis, tag, atau SHA commit penuh. Ini adalah satu entrypoint manual untuk empat kotak pengujian rilis besar: Vitest, Docker, QA Lab, dan Package. - Jika validasi gagal, perbaiki di cabang rilis dan jalankan ulang file, lane, job workflow, profil paket, provider, atau allowlist model terkecil yang gagal dan membuktikan perbaikannya. Jalankan ulang umbrella penuh hanya ketika permukaan yang berubah membuat bukti sebelumnya usang.
- Untuk beta, tag
vYYYY.M.D-beta.N, lalu jalankanOpenClaw Release Publishdari cabangrelease/YYYY.M.Dyang cocok. Perintah ini memverifikasipnpm plugins:sync:check, mendispatch semua paket plugin yang dapat dipublikasikan ke npm dan set yang sama ke ClawHub secara paralel, lalu mempromosikan artefak preflight npm OpenClaw yang disiapkan dengan dist-tag yang cocok segera setelah publish npm plugin berhasil. Setelah child publish npm OpenClaw berhasil, perintah ini membuat atau memperbarui halaman rilis/prarilis GitHub yang cocok dari bagianCHANGELOG.mdlengkap yang cocok. Rilis stable yang dipublikasikan ke npmlatestmenjadi rilis GitHub latest; rilis pemeliharaan stable yang dipertahankan di npmbetadibuat dengan GitHublatest=false. Publikasi ClawHub mungkin masih berjalan saat npm OpenClaw dipublikasikan, tetapi workflow publish rilis langsung mencetak ID run child. Secara default, workflow ini tidak menunggu ClawHub setelah mendispatchnya, sehingga ketersediaan npm OpenClaw tidak diblokir oleh persetujuan atau pekerjaan registry ClawHub yang lebih lambat; setwait_for_clawhub=trueketika ClawHub harus memblokir penyelesaian workflow. Jalur ClawHub mencoba ulang kegagalan instalasi dependensi CLI yang bersifat sementara, memublikasikan plugin yang lolos preview bahkan ketika satu sel preview flake, dan berakhir dengan verifikasi registry untuk setiap versi plugin yang diharapkan sehingga publish parsial tetap terlihat dan dapat dicoba ulang. Setelah publish, jalankanpnpm release:verify-beta -- YYYY.M.D-beta.N --openclaw-npm-run <run-id> --plugin-npm-run <run-id> --plugin-clawhub-run <run-id>untuk memverifikasi prarilis GitHub, dist-tag npmbeta, integritas npm, jalur instalasi yang dipublikasikan, versi tepat ClawHub, artefak ClawHub, dan kesimpulan workflow child dari satu perintah. Tambahkan--rerun-failed-clawhubketika sidecar ClawHub gagal hanya pada job yang dapat dicoba ulang dan harus dijalankan ulang di tempat. Lalu jalankan penerimaan paket pascapublish terhadap paketopenclaw@YYYY.M.D-beta.Natauopenclaw@betayang dipublikasikan. Jika prarilis yang sudah didorong atau dipublikasikan membutuhkan perbaikan, buat nomor prarilis cocok berikutnya; jangan hapus atau tulis ulang prarilis lama. - Untuk stable, lanjutkan hanya setelah beta atau kandidat rilis yang sudah diperiksa memiliki
bukti validasi yang diperlukan. Publish npm stable juga melalui
OpenClaw Release Publish, menggunakan ulang artefak preflight yang berhasil melaluipreflight_run_id; kesiapan rilis macOS stable juga membutuhkan.zip,.dmg,.dSYM.zipyang sudah dipaketkan, danappcast.xmlyang diperbarui dimain. Workflow publish macOS privat memublikasikan appcast bertanda tangan kemainpublik secara otomatis setelah aset rilis diverifikasi; jika perlindungan cabang memblokir push langsung, workflow ini membuka atau memperbarui PR appcast. - Setelah publish, jalankan verifier npm pascapublish, E2E Telegram standalone published-npm opsional ketika Anda membutuhkan bukti channel pascapublish, promosi dist-tag ketika diperlukan, verifikasi halaman rilis GitHub yang dihasilkan, dan jalankan langkah pengumuman rilis.
Preflight rilis
- Jalankan
pnpm check:test-typessebelum prapenerbangan rilis agar TypeScript pengujian tetap tercakup di luar gerbang lokalpnpm checkyang lebih cepat - Jalankan
pnpm check:architecturesebelum prapenerbangan rilis agar pemeriksaan siklus impor dan batas arsitektur yang lebih luas hijau di luar gerbang lokal yang lebih cepat - Jalankan
pnpm build && pnpm ui:buildsebelumpnpm release:checkagar artefak rilisdist/*yang diharapkan dan bundel UI Kontrol tersedia untuk langkah validasi paket - Jalankan
pnpm release:prepsetelah kenaikan versi root dan sebelum penandaan. Perintah ini menjalankan setiap generator rilis deterministik yang umum bergeser setelah perubahan versi/konfigurasi/API: versi plugin, inventaris plugin, skema konfigurasi dasar, metadata konfigurasi channel bawaan, baseline dokumen konfigurasi, ekspor SDK plugin, dan baseline API SDK plugin.pnpm release:checkmenjalankan ulang guard tersebut dalam mode pemeriksaan dan melaporkan setiap kegagalan drift yang dihasilkan yang ditemukannya dalam satu kali proses sebelum menjalankan pemeriksaan rilis paket. - Jalankan workflow manual
Full Release Validationsebelum persetujuan rilis untuk memulai semua kotak pengujian prarilis dari satu titik masuk. Workflow ini menerima branch, tag, atau SHA commit lengkap, menjalankanCImanual, dan menjalankanOpenClaw Release Checksuntuk smoke instalasi, penerimaan paket, pemeriksaan paket lintas OS, paritas QA Lab, Matrix, dan lane Telegram. Eksekusi stabil/default mempertahankan live/E2E lengkap dan soak jalur rilis Docker di balikrun_release_soak=true;release_profile=fullmemaksa soak aktif. Denganrelease_profile=fulldanrerun_group=all, workflow ini juga menjalankan E2E Telegram paket terhadap artefakrelease-package-under-testdari pemeriksaan rilis. Berikanrelease_package_specsetelah menerbitkan beta untuk menggunakan ulang paket npm yang sudah dikirim di pemeriksaan rilis, Package Acceptance, dan E2E Telegram paket tanpa membangun ulang tarball rilis. Berikannpm_telegram_package_spechanya ketika Telegram harus menggunakan paket terbitan yang berbeda dari validasi rilis lainnya. Berikanpackage_acceptance_package_specketika Package Acceptance harus menggunakan paket terbitan yang berbeda dari spesifikasi paket rilis. Berikanevidence_package_specketika laporan bukti privat harus membuktikan bahwa validasi cocok dengan paket npm yang diterbitkan tanpa memaksa E2E Telegram. Contoh:gh workflow run full-release-validation.yml --ref main -f ref=release/YYYY.M.D - Jalankan workflow manual
Package Acceptanceketika Anda menginginkan bukti side-channel untuk kandidat paket sementara pekerjaan rilis berlanjut. Gunakansource=npmuntukopenclaw@beta,openclaw@latest, atau versi rilis persis;source=refuntuk memaketkan branch/tag/SHApackage_reftepercaya dengan harnessworkflow_refsaat ini;source=urluntuk tarball HTTPS dengan SHA-256 wajib; atausource=artifactuntuk tarball yang diunggah oleh eksekusi GitHub Actions lain. Workflow menyelesaikan kandidat menjadipackage-under-test, menggunakan ulang penjadwal rilis Docker E2E terhadap tarball tersebut, dan dapat menjalankan QA Telegram terhadap tarball yang sama dengantelegram_mode=mock-openaiatautelegram_mode=live-frontier. Ketika lane Docker yang dipilih menyertakanpublished-upgrade-survivor, artefak paket adalah kandidat danpublished_upgrade_survivor_baselinememilih baseline terbitan.update-restart-authmenggunakan paket kandidat sebagai CLI yang terinstal sekaligus package-under-test sehingga ia menguji jalur restart terkelola dari perintah pembaruan kandidat. Contoh: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-openaiProfil umum:smoke: lane instalasi/channel/agent, jaringan gateway, dan muat ulang konfigurasipackage: lane paket/pembaruan/restart/plugin yang native artefak tanpa OpenWebUI atau ClawHub liveproduct: profil paket ditambah channel MCP, pembersihan cron/subagent, pencarian web OpenAI, dan OpenWebUIfull: chunk jalur rilis Docker dengan OpenWebUIcustom: pilihandocker_lanespersis untuk rerun terfokus
- Jalankan workflow manual
CIsecara langsung ketika Anda hanya memerlukan cakupan CI normal penuh untuk kandidat rilis. Eksekusi CI manual melewati cakupan berbasis perubahan dan memaksa shard Linux Node, shard plugin bawaan, kontrak channel, kompatibilitas Node 22,check,check-additional, smoke build, pemeriksaan dokumen, Skills Python, Windows, macOS, Android, dan lane i18n UI Kontrol. Contoh:gh workflow run ci.yml --ref release/YYYY.M.D - Jalankan
pnpm qa:otel:smokeketika memvalidasi telemetri rilis. Perintah ini menguji QA-lab melalui penerima OTLP/HTTP lokal dan memverifikasi nama span trace yang diekspor, atribut terbatas, serta redaksi konten/identifier tanpa memerlukan Opik, Langfuse, atau kolektor eksternal lain. - Jalankan
pnpm release:checksebelum setiap rilis bertag - Jalankan
OpenClaw Release Publishuntuk urutan publish yang memutasi setelah tag ada. Jalankan darirelease/YYYY.M.D(ataumainsaat menerbitkan tag yang dapat dicapai dari main), berikan tag rilis danpreflight_run_idnpm OpenClaw yang berhasil, dan pertahankan cakupan publish plugin defaultall-publishablekecuali Anda sengaja menjalankan perbaikan terfokus. Workflow ini menserialkan publish npm plugin, publish ClawHub plugin, dan publish npm OpenClaw sehingga paket inti tidak diterbitkan sebelum plugin yang dieksternalkan. - Pemeriksaan rilis sekarang berjalan dalam workflow manual terpisah:
OpenClaw Release Checks OpenClaw Release Checksjuga menjalankan lane paritas mock QA Lab ditambah profil Matrix live cepat dan lane QA Telegram sebelum persetujuan rilis. Lane live menggunakan lingkunganqa-live-shared; Telegram juga menggunakan lease kredensial CI Convex. Jalankan workflow manualQA-Lab - All Lanesdenganmatrix_profile=alldanmatrix_shards=trueketika Anda menginginkan inventaris transport, media, dan E2EE Matrix penuh secara paralel.- Validasi runtime instalasi dan pemutakhiran lintas OS adalah bagian dari
OpenClaw Release ChecksdanFull Release Validationpublik, yang memanggil workflow reusable.github/workflows/openclaw-cross-os-release-checks-reusable.ymlsecara langsung - Pemisahan ini disengaja: menjaga jalur rilis npm nyata tetap singkat, deterministik, dan berfokus pada artefak, sementara pemeriksaan live yang lebih lambat tetap berada di lane sendiri sehingga tidak menahan atau memblokir publish
- Pemeriksaan rilis yang membawa secret harus dijalankan melalui
Full Release Validationatau dari ref workflowmain/rilis agar logika workflow dan secret tetap terkendali OpenClaw Release Checksmenerima branch, tag, atau SHA commit lengkap selama commit yang diselesaikan dapat dicapai dari branch OpenClaw atau tag rilis- Prapenerbangan khusus validasi
OpenClaw NPM Releasejuga menerima SHA commit branch workflow lengkap 40 karakter saat ini tanpa mewajibkan tag yang sudah dipush - Jalur SHA tersebut hanya untuk validasi dan tidak dapat dipromosikan menjadi publish nyata
- Dalam mode SHA, workflow mensintesis
v<package.json version>hanya untuk pemeriksaan metadata paket; publish nyata tetap memerlukan tag rilis nyata - Kedua workflow mempertahankan jalur publish dan promosi nyata di runner GitHub-hosted, sementara jalur validasi non-mutasi dapat menggunakan runner Blacksmith Linux yang lebih besar
- Workflow tersebut menjalankan
OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_CACHE_TEST=1 pnpm test:live:cachemenggunakan secret workflowOPENAI_API_KEYdanANTHROPIC_API_KEY - Prapenerbangan rilis npm tidak lagi menunggu lane pemeriksaan rilis terpisah
- Sebelum menandai kandidat rilis secara lokal, jalankan
RELEASE_TAG=vYYYY.M.D-beta.N pnpm release:fast-pretag-check. Helper ini menjalankan guardrail rilis cepat, pemeriksaan rilis npm/ClawHub plugin, build, build UI, danrelease:openclaw:npm:checkdalam urutan yang menangkap kesalahan umum yang memblokir persetujuan sebelum workflow publish GitHub dimulai. - Jalankan
RELEASE_TAG=vYYYY.M.D node --import tsx scripts/openclaw-npm-release-check.ts(atau tag beta/koreksi yang sesuai) sebelum persetujuan - Setelah npm publish, jalankan
node --import tsx scripts/openclaw-npm-postpublish-verify.ts YYYY.M.D(atau versi beta/koreksi yang sesuai) untuk memverifikasi jalur instalasi registry yang diterbitkan dalam prefiks sementara baru - Setelah publish beta, jalankan
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-liveuntuk memverifikasi onboarding paket terinstal, penyiapan Telegram, dan E2E Telegram nyata terhadap paket npm yang diterbitkan menggunakan pool kredensial Telegram bersama yang disewa. Percobaan lokal sekali jalan oleh maintainer dapat menghilangkan variabel Convex dan meneruskan tiga kredensial envOPENCLAW_QA_TELEGRAM_*secara langsung. - Untuk menjalankan smoke beta pascapublish penuh dari mesin maintainer, gunakan
pnpm release:beta-smoke -- --beta betaN. Helper ini menjalankan validasi pembaruan npm Parallels/target baru, menjalankanNPM Telegram Beta E2E, melakukan polling eksekusi workflow persis, mengunduh artefak, dan mencetak laporan Telegram. - Maintainer dapat menjalankan pemeriksaan pascapublish yang sama dari GitHub Actions melalui
workflow manual
NPM Telegram Beta E2E. Workflow ini sengaja hanya manual dan tidak berjalan pada setiap merge. - Otomasi rilis maintainer sekarang menggunakan prapenerbangan-lalu-promosi:
- publish npm nyata harus melewati
preflight_run_idnpm yang berhasil - publish npm nyata harus dijalankan dari branch
mainataurelease/YYYY.M.Dyang sama dengan eksekusi prapenerbangan yang berhasil - rilis npm stabil default ke
beta - publish npm stabil dapat menargetkan
latestsecara eksplisit melalui input workflow - mutasi dist-tag npm berbasis token sekarang berada di
openclaw/releases-private/.github/workflows/openclaw-npm-dist-tags.ymldemi keamanan, karenanpm dist-tag addmasih memerlukanNPM_TOKENsementara repo publik tetap menggunakan publish hanya OIDC macOS Releasepublik hanya untuk validasi; ketika tag hanya berada di branch rilis tetapi workflow dijalankan darimain, setelpublic_release_branch=release/YYYY.M.D- publish mac privat nyata harus melewati
preflight_run_iddanvalidate_run_idmac privat yang berhasil - jalur publish nyata mempromosikan artefak yang sudah disiapkan alih-alih membangunnya lagi
- publish npm nyata harus melewati
- Untuk rilis koreksi stabil seperti
YYYY.M.D-N, verifier pascapublish juga memeriksa jalur pemutakhiran dengan prefiks sementara yang sama dariYYYY.M.DkeYYYY.M.D-Nsehingga koreksi rilis tidak dapat diam-diam membiarkan instalasi global lama berada pada payload stabil dasar - Prapenerbangan rilis npm gagal tertutup kecuali tarball menyertakan
dist/control-ui/index.htmldan payloaddist/control-ui/assets/yang tidak kosong sehingga kita tidak mengirim dasbor browser kosong lagi - Verifikasi pascapublish juga memeriksa bahwa entrypoint plugin yang diterbitkan dan
metadata paket ada dalam layout registry terinstal. Rilis yang mengirim payload runtime
plugin yang hilang akan menggagalkan verifier pascapublish dan
tidak dapat dipromosikan ke
latest. pnpm test:install:smokejuga menerapkan anggaranunpackedSizenpm pack pada tarball pembaruan kandidat, sehingga e2e installer menangkap pembengkakan paket yang tidak disengaja sebelum jalur publish rilis- Jika pekerjaan rilis menyentuh perencanaan CI, manifes timing ekstensi, atau
matriks pengujian ekstensi, regenerasi dan tinjau output matriks
plugin-prerelease-extension-shardmilik planner dari.github/workflows/plugin-prerelease.ymlsebelum persetujuan agar catatan rilis tidak menggambarkan layout CI yang usang - Kesiapan rilis macOS stabil juga mencakup permukaan updater:
- rilis GitHub harus berakhir dengan
.zip,.dmg, dan.dSYM.zipyang sudah dikemas appcast.xmldimainharus menunjuk ke zip stabil baru setelah publish; workflow publish macOS privat meng-commit-nya secara otomatis, atau membuka PR appcast ketika push langsung diblokir- aplikasi yang dikemas harus mempertahankan bundle id non-debug, URL feed Sparkle
yang tidak kosong, dan
CFBundleVersionpada atau di atas batas bawah build Sparkle kanonis untuk versi rilis tersebut
- rilis GitHub harus berakhir dengan
Kotak uji rilis
Full Release Validation adalah cara operator memulai semua pengujian prarilis dari
satu titik masuk. Untuk bukti commit yang dipin pada branch yang bergerak cepat, gunakan
helper agar setiap workflow anak berjalan dari branch sementara yang ditetapkan pada
SHA target:
release-ci/<sha>-..., menjalankan Full Release Validation
dari branch tersebut dengan ref=<sha>, memverifikasi setiap workflow anak headSha
cocok dengan target, lalu menghapus branch sementara. Ini menghindari pembuktian
run anak main yang lebih baru secara tidak sengaja.
Untuk validasi branch atau tag rilis, jalankan dari ref workflow main tepercaya
dan teruskan branch atau tag rilis sebagai ref:
CI manual dengan
target_ref=<release-ref>, menjalankan OpenClaw Release Checks, menyiapkan
artefak induk release-package-under-test untuk pemeriksaan yang menghadap paket, dan
menjalankan E2E Telegram paket mandiri ketika release_profile=full dengan
rerun_group=all atau ketika release_package_spec atau
npm_telegram_package_spec disetel. OpenClaw Release Checks kemudian menyebar ke install smoke, pemeriksaan rilis lintas OS, cakupan
jalur rilis Docker live/E2E ketika soak diaktifkan, Package Acceptance dengan QA
paket Telegram, paritas QA Lab, Matrix live, dan Telegram live. Run penuh hanya dapat diterima ketika
ringkasan Full Release Validation
menampilkan normal_ci dan release_checks sebagai berhasil. Dalam mode full/all,
anak npm_telegram juga harus berhasil; di luar full/all, ini dilewati
kecuali release_package_spec atau npm_telegram_package_spec yang dipublikasikan
disediakan. Ringkasan verifier akhir mencakup tabel job terlambat untuk setiap run anak, sehingga manajer rilis dapat melihat jalur kritis saat ini tanpa mengunduh log.
Lihat Validasi rilis penuh untuk
matriks tahap lengkap, nama job workflow yang tepat, perbedaan profil stable versus full,
artefak, dan handle rerun terfokus.
Workflow anak dijalankan dari ref tepercaya yang menjalankan Full Release Validation, biasanya --ref main, bahkan ketika ref target mengarah ke
branch atau tag rilis yang lebih lama. Tidak ada input workflow-ref Full Release Validation
terpisah; pilih harness tepercaya dengan memilih ref run workflow.
Jangan gunakan --ref main -f ref=<sha> untuk bukti commit tepat pada main yang bergerak;
SHA commit mentah tidak dapat menjadi ref workflow dispatch, jadi gunakan
pnpm ci:full-release --sha <sha> untuk membuat branch sementara yang dipin.
Gunakan release_profile untuk memilih keluasan live/provider:
minimum: jalur OpenAI/core live dan Docker kritis rilis tercepatstable: minimum ditambah cakupan provider/backend stable untuk persetujuan rilisfull: stable ditambah cakupan provider/media advisori yang luas
run_release_soak=true dengan stable ketika lane pemblokir rilis
sudah hijau dan Anda menginginkan live/E2E yang menyeluruh, jalur rilis Docker, dan
sweep upgrade-survivor terpublikasi yang dibatasi sebelum promosi. Sweep tersebut mencakup
empat paket stable terbaru ditambah baseline 2026.4.23 dan 2026.5.2
yang dipin serta cakupan 2026.4.15 yang lebih lama, dengan baseline duplikat dihapus dan
setiap baseline dishard ke job runner Docker sendiri. full menyiratkan
run_release_soak=true.
OpenClaw Release Checks menggunakan ref workflow tepercaya untuk menyelesaikan ref target
sekali sebagai release-package-under-test dan menggunakan ulang artefak tersebut dalam pemeriksaan lintas OS,
Package Acceptance, dan Docker jalur rilis ketika soak berjalan. Ini menjaga
semua kotak yang menghadap paket pada byte yang sama dan menghindari build paket berulang.
Setelah beta sudah ada di npm, setel release_package_spec=openclaw@YYYY.M.D-beta.N
agar pemeriksaan rilis mengunduh paket terkirim sekali, mengekstrak SHA sumber build-nya
dari dist/build-info.json, dan menggunakan ulang artefak tersebut untuk lane lintas OS,
Package Acceptance, Docker jalur rilis, dan Telegram paket.
Install smoke OpenAI lintas OS menggunakan OPENCLAW_CROSS_OS_OPENAI_MODEL ketika
variabel repo/org disetel, jika tidak openai/gpt-5.4, karena lane ini
membuktikan instalasi paket, onboarding, startup Gateway, dan satu giliran agen live
bukan melakukan benchmark model default paling lambat. Matriks provider live
yang lebih luas tetap menjadi tempat untuk cakupan khusus model.
Gunakan varian ini bergantung pada tahap rilis:
Verify full validation yang gagal.
Untuk pemulihan terbatas, teruskan rerun_group ke umbrella. all adalah run
release-candidate yang sebenarnya, ci hanya menjalankan anak CI normal, plugin-prerelease
hanya menjalankan anak Plugin khusus rilis, release-checks menjalankan setiap kotak rilis,
dan grup rilis yang lebih sempit adalah install-smoke, cross-os,
live-e2e, package, qa, qa-parity, qa-live, dan npm-telegram.
Rerun npm-telegram terfokus memerlukan release_package_spec atau
npm_telegram_package_spec; run full/all dengan release_profile=full menggunakan
artefak paket release-checks. Rerun lintas OS terfokus dapat menambahkan
cross_os_suite_filter=windows/packaged-upgrade atau filter OS/suite lain.
Kegagalan QA release-check bersifat advisori; kegagalan QA saja
tidak memblokir validasi rilis.
Vitest
Kotak Vitest adalah workflow anakCI manual. CI manual sengaja
melewati cakupan changed dan memaksa grafik pengujian normal untuk release
candidate: shard Linux Node, shard Plugin terbundel, kontrak channel, kompatibilitas Node 22,
check, check-additional, build smoke, pemeriksaan docs, Skills Python,
Windows, macOS, Android, dan i18n Control UI.
Gunakan kotak ini untuk menjawab “apakah source tree lolos suite pengujian normal penuh?”
Ini tidak sama dengan validasi produk jalur rilis. Bukti yang perlu disimpan:
- ringkasan
Full Release Validationyang menampilkan URL runCIyang dijalankan - run
CIhijau pada SHA target yang tepat - nama shard yang gagal atau lambat dari job CI saat menyelidiki regresi
- artefak waktu Vitest seperti
.artifacts/vitest-shard-timings.jsonketika sebuah run memerlukan analisis performa
Docker
Kotak Docker berada diOpenClaw Release Checks melalui
openclaw-live-and-e2e-checks-reusable.yml, ditambah workflow install-smoke
mode rilis. Ini memvalidasi release candidate melalui lingkungan Docker
terpaket alih-alih hanya pengujian tingkat sumber.
Cakupan Docker rilis meliputi:
- install smoke penuh dengan smoke install global Bun yang lambat diaktifkan
- persiapan/penggunaan ulang image smoke Dockerfile root berdasarkan SHA target, dengan QR, root/Gateway, dan job smoke installer/Bun berjalan sebagai shard install-smoke terpisah
- lane E2E repositori
- chunk Docker jalur rilis:
core,package-update-openai,package-update-anthropic,package-update-core,plugins-runtime-plugins,plugins-runtime-services,plugins-runtime-install-a,plugins-runtime-install-b,plugins-runtime-install-c,plugins-runtime-install-d,plugins-runtime-install-e,plugins-runtime-install-f,plugins-runtime-install-g, danplugins-runtime-install-h - cakupan OpenWebUI di dalam chunk
plugins-runtime-servicesketika diminta - lane install/uninstall Plugin terbundel yang dipecah
bundled-plugin-install-uninstall-0hinggabundled-plugin-install-uninstall-23 - suite provider live/E2E dan cakupan model live Docker ketika pemeriksaan rilis mencakup suite live
.artifacts/docker-tests/ dengan log lane, summary.json, failures.json,
timing fase, JSON rencana scheduler, dan perintah rerun. Untuk pemulihan terfokus,
gunakan docker_lanes=<lane[,lane]> pada workflow live/E2E reusable alih-alih
menjalankan ulang semua chunk rilis. Perintah rerun yang dihasilkan mencakup
package_artifact_run_id sebelumnya dan input image Docker yang disiapkan ketika tersedia, sehingga
lane yang gagal dapat menggunakan ulang tarball dan image GHCR yang sama.
QA Lab
Kotak QA Lab juga merupakan bagian dariOpenClaw Release Checks. Ini adalah gerbang rilis
perilaku agentik dan tingkat channel, terpisah dari Vitest dan mekanika paket
Docker.
Cakupan QA Lab rilis meliputi:
- lane paritas mock yang membandingkan lane kandidat OpenAI dengan baseline Opus 4.6 menggunakan paket paritas agentik
- profil QA Matrix live cepat menggunakan lingkungan
qa-live-shared - lane QA Telegram live menggunakan lease kredensial Convex CI
pnpm qa:otel:smokeketika telemetri rilis memerlukan bukti lokal eksplisit
Paket
Kotak Paket adalah gerbang produk yang dapat diinstal. Ini didukung olehPackage Acceptance dan resolver
scripts/resolve-openclaw-package-candidate.mjs. Resolver menormalkan
kandidat menjadi tarball package-under-test yang dikonsumsi oleh Docker E2E, memvalidasi
inventori paket, mencatat versi paket dan SHA-256, serta menjaga
ref harness workflow terpisah dari ref sumber paket.
Sumber kandidat yang didukung:
source=npm:openclaw@beta,openclaw@latest, atau versi rilis OpenClaw yang tepatsource=ref: kemas branch, tag, atau SHA commit penuhpackage_reftepercaya dengan harnessworkflow_refyang dipilihsource=url: unduh.tgzHTTPS denganpackage_sha256yang diwajibkansource=artifact: gunakan ulang.tgzyang diunggah oleh run GitHub Actions lain
OpenClaw Release Checks menjalankan Package Acceptance dengan source=artifact, artefak paket rilis yang disiapkan, 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 menjaga migrasi, pembaruan, mulai ulang pembaruan auth terkonfigurasi, instalasi Skills ClawHub langsung, pembersihan dependensi Plugin usang, fixture Plugin offline, pembaruan Plugin, dan QA paket Telegram terhadap tarball hasil resolusi yang sama. Pemeriksaan rilis pemblokir menggunakan baseline paket terbitan terbaru default; run_release_soak=true atau release_profile=full memperluasnya ke setiap baseline stabil yang diterbitkan npm dari 2026.4.23 hingga latest plus fixture isu yang dilaporkan. Gunakan Package Acceptance dengan source=npm untuk kandidat yang sudah dikirim, atau source=ref/source=artifact untuk tarball npm lokal berbasis SHA sebelum penerbitan. Ini adalah pengganti asli GitHub untuk sebagian besar cakupan paket/pembaruan yang sebelumnya memerlukan Parallels. Pemeriksaan rilis lintas OS tetap penting untuk onboarding, installer, dan perilaku platform yang spesifik OS, tetapi validasi produk paket/pembaruan sebaiknya mengutamakan Package Acceptance.
Checklist kanonis untuk validasi pembaruan dan Plugin adalah Menguji pembaruan dan Plugin. Gunakan itu saat memutuskan lane lokal, Docker, Package Acceptance, atau pemeriksaan rilis mana yang membuktikan instalasi/pembaruan Plugin, pembersihan doctor, atau perubahan migrasi paket terbitan. Migrasi pembaruan terbitan yang menyeluruh dari setiap paket stabil 2026.4.23+ adalah workflow manual Update Migration terpisah, bukan bagian dari Full Release CI.
Kelonggaran package-acceptance lama sengaja dibatasi waktu. Paket hingga 2026.4.25 boleh menggunakan jalur kompatibilitas untuk celah metadata yang sudah diterbitkan ke npm: entri inventaris QA privat yang tidak ada dalam tarball, gateway install --wrapper yang hilang, file patch yang hilang dalam fixture git turunan tarball, update.channel tersimpan yang hilang, lokasi catatan instalasi Plugin lama, persistensi catatan instalasi marketplace yang hilang, dan migrasi metadata konfigurasi selama plugins update. Paket 2026.4.26 yang diterbitkan boleh memperingatkan untuk file stempel metadata build lokal yang sudah dikirim. Paket setelahnya harus memenuhi kontrak paket modern; celah yang sama akan menggagalkan validasi rilis.
Gunakan profil Package Acceptance yang lebih luas ketika pertanyaan rilis berkaitan dengan paket yang benar-benar dapat diinstal:
smoke: lane cepat untuk instalasi paket/channel/agent, jaringan Gateway, dan muat ulang konfigurasipackage: kontrak instalasi/pembaruan/mulai ulang/paket Plugin plus bukti instalasi Skills ClawHub langsung; ini adalah default pemeriksaan rilisproduct:packageplus channel MCP, pembersihan cron/subagent, pencarian web OpenAI, dan OpenWebUIfull: chunk jalur rilis Docker dengan OpenWebUIcustom: daftardocker_lanespersis untuk rerun terfokus
telegram_mode=mock-openai atau telegram_mode=live-frontier pada Package Acceptance. Workflow meneruskan tarball package-under-test hasil resolusi ke lane Telegram; workflow Telegram mandiri tetap menerima spesifikasi npm terbitan untuk pemeriksaan pasca-penerbitan.
Otomatisasi penerbitan rilis
OpenClaw Release Publish adalah entrypoint penerbitan mutasi normal. Ini mengorkestrasi workflow trusted-publisher dalam urutan yang dibutuhkan rilis:
- Check out tag rilis dan resolusi SHA commit-nya.
- Verifikasi bahwa tag dapat dijangkau dari
mainataurelease/*. - Jalankan
pnpm plugins:sync:check. - Dispatch
Plugin NPM Releasedenganpublish_scope=all-publishabledanref=<release-sha>. - Dispatch
Plugin ClawHub Releasedengan scope dan SHA yang sama. - Dispatch
OpenClaw NPM Releasedengan tag rilis, dist-tag npm, danpreflight_run_idyang disimpan.
latest bersifat eksplisit:
Plugin NPM Release dan Plugin ClawHub Release hanya untuk pekerjaan perbaikan atau penerbitan ulang terfokus. Untuk perbaikan Plugin terpilih, teruskan plugin_publish_scope=selected dan plugins=@openclaw/name ke OpenClaw Release Publish, atau dispatch workflow anak secara langsung ketika paket OpenClaw tidak boleh diterbitkan.
Input workflow NPM
OpenClaw NPM Release menerima input yang dikendalikan operator berikut:
tag: tag rilis wajib sepertiv2026.4.2,v2026.4.2-1, atauv2026.4.2-beta.1; ketikapreflight_only=true, ini juga boleh berupa SHA commit penuh 40 karakter dari cabang workflow saat ini untuk preflight khusus validasipreflight_only:truehanya untuk validasi/build/paket,falseuntuk jalur penerbitan sebenarnyapreflight_run_id: wajib pada jalur penerbitan sebenarnya agar workflow menggunakan ulang tarball yang disiapkan dari run preflight yang berhasilnpm_dist_tag: tag target npm untuk jalur penerbitan; default-nyabeta
OpenClaw Release Publish menerima input yang dikendalikan operator berikut:
tag: tag rilis wajib; harus sudah adapreflight_run_id: id run preflightOpenClaw NPM Releaseyang berhasil; wajib ketikapublish_openclaw_npm=truenpm_dist_tag: tag target npm untuk paket OpenClawplugin_publish_scope: default-nyaall-publishable; gunakanselectedhanya untuk pekerjaan perbaikan terfokusplugins: nama paket@openclaw/*yang dipisahkan koma ketikaplugin_publish_scope=selectedpublish_openclaw_npm: default-nyatrue; setelfalsehanya ketika menggunakan workflow sebagai orkestrator perbaikan khusus Pluginwait_for_clawhub: default-nyafalsesehingga ketersediaan npm tidak diblokir oleh sidecar ClawHub; seteltruehanya ketika penyelesaian workflow harus mencakup penyelesaian ClawHub
OpenClaw Release Checks menerima input yang dikendalikan operator berikut:
ref: cabang, tag, atau SHA commit penuh untuk divalidasi. Pemeriksaan yang membawa secret mengharuskan commit hasil resolusi dapat dijangkau dari cabang OpenClaw atau tag rilis.run_release_soak: ikut serta dalam soak live/E2E menyeluruh, jalur rilis Docker, dan all-since upgrade-survivor pada pemeriksaan rilis stabil/default. Ini dipaksakan aktif olehrelease_profile=full.
- Tag stabil dan koreksi boleh diterbitkan ke
betaataulatest - Tag prerelease beta hanya boleh diterbitkan ke
beta - Untuk
OpenClaw NPM Release, input SHA commit penuh hanya diizinkan ketikapreflight_only=true OpenClaw Release ChecksdanFull Release Validationselalu hanya validasi- Jalur penerbitan sebenarnya harus menggunakan
npm_dist_tagyang sama dengan yang digunakan selama preflight; workflow memverifikasi metadata itu sebelum penerbitan berlanjut
Urutan rilis npm stabil
Saat memotong rilis npm stabil:- Jalankan
OpenClaw NPM Releasedenganpreflight_only=true- Sebelum tag ada, Anda boleh menggunakan SHA commit penuh dari cabang workflow saat ini untuk dry run khusus validasi pada workflow preflight
- Pilih
npm_dist_tag=betauntuk alur normal beta-dahulu, ataulatesthanya ketika Anda sengaja menginginkan penerbitan stabil langsung - Jalankan
Full Release Validationpada cabang rilis, tag rilis, atau SHA commit penuh ketika Anda menginginkan CI normal plus cakupan cache prompt langsung, Docker, QA Lab, Matrix, dan Telegram dari satu workflow manual - Jika Anda sengaja hanya memerlukan graf pengujian normal yang deterministik, jalankan workflow manual
CIpada ref rilis sebagai gantinya - Simpan
preflight_run_idyang berhasil - Jalankan
OpenClaw Release Publishdengantagyang sama,npm_dist_tagyang sama, danpreflight_run_idyang disimpan; ini menerbitkan Plugin yang dieksternalkan ke npm dan ClawHub sebelum mempromosikan paket npm OpenClaw - Jika rilis mendarat di
beta, gunakan workflow privatopenclaw/releases-private/.github/workflows/openclaw-npm-dist-tags.ymluntuk mempromosikan versi stabil itu daribetakelatest - Jika rilis sengaja diterbitkan langsung ke
latestdanbetaharus segera mengikuti build stabil yang sama, gunakan workflow privat yang sama untuk mengarahkan kedua dist-tag ke versi stabil, atau biarkan sinkronisasi pemulihan mandiri terjadwalnya memindahkanbetananti
NPM_TOKEN, sementara repo publik mempertahankan penerbitan khusus OIDC.
Itu menjaga jalur penerbitan langsung dan jalur promosi beta-dahulu tetap terdokumentasi dan terlihat oleh operator.
Jika maintainer harus kembali ke autentikasi npm lokal, jalankan perintah CLI 1Password (op) apa pun hanya di dalam sesi tmux khusus. Jangan panggil op langsung dari shell agent utama; menyimpannya di dalam tmux membuat prompt, alert, dan penanganan OTP dapat diamati serta mencegah alert host berulang.
Referensi publik
.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 untuk runbook sebenarnya.