Ini adalah daftar periksa khusus untuk validasi pembaruan dan Plugin. Tujuannya sederhana: membuktikan bahwa paket yang dapat diinstal dapat memperbarui status pengguna nyata, memperbaiki status lama yang usang melaluiDocumentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
doctor, dan tetap
dapat menginstal, memuat, memperbarui, serta menghapus instalasi Plugin dari
sumber yang didukung.
Untuk peta runner pengujian yang lebih luas, lihat Pengujian. Untuk kunci penyedia langsung
dan suite yang menyentuh jaringan, lihat Pengujian langsung.
Yang kita lindungi
Pengujian pembaruan dan Plugin melindungi kontrak berikut:- Tarball paket lengkap, memiliki
dist/postinstall-inventory.jsonyang valid, dan tidak bergantung pada file repo yang belum dikemas. - Pengguna dapat berpindah dari paket terbitan lama ke paket kandidat tanpa kehilangan konfigurasi, agen, sesi, ruang kerja, daftar izin Plugin, atau konfigurasi kanal.
openclaw doctor --fix --non-interactivememiliki jalur pembersihan dan perbaikan lama. Startup tidak boleh menambah migrasi kompatibilitas tersembunyi untuk status Plugin yang usang.- Instalasi Plugin berfungsi dari direktori lokal, repo git, paket npm, dan jalur registri ClawHub.
- Dependensi npm Plugin diinstal di root npm terkelola, dipindai sebelum dipercaya, dan dihapus melalui npm saat penghapusan instalasi sehingga dependensi yang diangkat tidak tertinggal.
- Pembaruan Plugin stabil ketika tidak ada yang berubah: catatan instalasi, sumber yang diresolusikan, tata letak dependensi terinstal, dan status aktif tetap utuh.
Bukti lokal selama pengembangan
Mulai dari yang sempit:release:check menjalankan pemeriksaan drift konfigurasi/dokumen/API, menulis inventaris dist paket,
menjalankan npm pack --dry-run, menolak file terkemas yang dilarang, menginstal
tarball ke prefix sementara, menjalankan postinstall, dan melakukan smoke test pada entrypoint kanal
terbundel.
Lane Docker
Lane Docker adalah bukti tingkat produk. Lane ini menginstal atau memperbarui paket nyata di dalam kontainer Linux dan menegaskan perilaku melalui perintah CLI, startup Gateway, probe HTTP, status RPC, dan status sistem file. Gunakan lane terfokus saat iterasi:test:docker:pluginsmemvalidasi smoke instalasi Plugin, instalasi folder lokal, perilaku lewati pembaruan folder lokal, folder lokal dengan dependensi yang sudah terinstal, instalasi paketfile:, instalasi git dengan eksekusi CLI, pembaruan ref bergerak git, instalasi registri npm dengan dependensi transitif yang diangkat, no-op pembaruan npm, instalasi fixture ClawHub lokal dan no-op pembaruan, perilaku pembaruan marketplace, serta aktivasi/inspeksi bundle Claude. SetelOPENCLAW_PLUGINS_E2E_CLAWHUB=0agar blok ClawHub tetap hermetik/offline.test:docker:plugin-updatememvalidasi bahwa Plugin terinstal yang tidak berubah tidak diinstal ulang atau kehilangan metadata instalasi selamaopenclaw plugins update.test:docker:upgrade-survivormenginstal tarball kandidat di atas fixture pengguna lama yang kotor, menjalankan pembaruan paket plus doctor non-interaktif, lalu memulai Gateway loopback dan memeriksa pelestarian status.test:docker:published-upgrade-survivorpertama-tama menginstal baseline terbitan, mengonfigurasinya melalui resepopenclaw config setyang sudah dipanggang, memperbaruinya ke tarball kandidat, menjalankan doctor, memeriksa pembersihan lama, memulai Gateway, dan mem-probe/healthz,/readyz, serta status RPC.test:docker:update-migrationadalah lane pembaruan terbitan yang berat pembersihan. Lane ini dimulai dari status pengguna bergaya Discord/Telegram yang sudah dikonfigurasi, menjalankan doctor baseline agar dependensi Plugin yang dikonfigurasi memiliki kesempatan untuk terwujud, menanam sisa dependensi Plugin lama untuk Plugin paket yang dikonfigurasi, memperbarui ke tarball kandidat, dan mewajibkan doctor pascapembaruan menghapus root dependensi lama.
base, feishu-channel, bootstrap-persona,
plugin-deps-cleanup, tilde-log-path, dan versioned-runtime-deps. Dalam run agregat,
OPENCLAW_UPGRADE_SURVIVOR_SCENARIOS=reported-issues diperluas menjadi semua skenario
berbentuk isu yang dilaporkan.
Migrasi pembaruan penuh sengaja dipisahkan dari CI Rilis Penuh. Gunakan
workflow manual Update Migration saat pertanyaan rilisnya adalah “apakah setiap
rilis stabil terbitan sejak 2026.4.23 dan seterusnya dapat memperbarui ke kandidat ini dan
membersihkan sisa dependensi Plugin?”:
Penerimaan Paket
Penerimaan Paket adalah gate paket native GitHub. Ini meresolusikan satu paket kandidat menjadi tarballpackage-under-test, mencatat versi dan SHA-256, lalu
menjalankan lane Docker E2E yang dapat digunakan ulang terhadap tarball persis tersebut. Ref harness workflow
terpisah dari ref sumber paket, sehingga logika pengujian saat ini dapat memvalidasi
rilis tepercaya yang lebih lama.
Sumber kandidat:
source=npm: validasiopenclaw@beta,openclaw@latest, atau versi terbitan yang persis.source=ref: kemas branch, tag, atau commit tepercaya dengan harness saat ini yang dipilih.source=url: validasi tarball HTTPS denganpackage_sha256yang wajib.source=artifact: gunakan ulang tarball yang diunggah oleh run Actions lain.
release-history adalah sampel pemeriksaan rilis terbatas: enam rilis stabil terbaru,
2026.4.23, dan satu anchor lama sebelum tanggal tersebut. Untuk cakupan migrasi pembaruan
terbitan yang menyeluruh, gunakan all-since-2026.4.23 di workflow Update Migration
terpisah, bukan CI Rilis Penuh.
Jalankan profil paket secara manual saat memvalidasi kandidat sebelum rilis:
suite_profile=product saat pertanyaan rilis mencakup kanal MCP,
pembersihan cron/subagen, pencarian web OpenAI, atau OpenWebUI. Gunakan suite_profile=full
hanya saat Anda membutuhkan cakupan jalur rilis Docker penuh.
Default rilis
Untuk kandidat rilis, stack bukti default adalah:pnpm check:changeddanpnpm test:changeduntuk regresi tingkat sumber.pnpm release:checkuntuk integritas artefak paket.- Profil Penerimaan Paket
packageatau lane paket kustom pemeriksaan rilis untuk kontrak instalasi/pembaruan/Plugin. - Pemeriksaan rilis lintas OS untuk penginstal, onboarding, dan perilaku platform khusus OS.
- Suite langsung hanya ketika surface yang berubah menyentuh perilaku penyedia atau layanan terhosting.
Kompatibilitas lama
Kelonggaran kompatibilitas sempit dan dibatasi waktu:- Paket hingga
2026.4.25, termasuk2026.4.25-beta.*, dapat menoleransi celah metadata paket yang sudah terkirim di Penerimaan Paket. - Paket terbitan
2026.4.26dapat memperingatkan untuk file stempel metadata build lokal yang sudah terkirim. - Paket setelahnya harus memenuhi kontrak modern. Celah yang sama gagal, bukan memperingatkan atau dilewati.
upgrade-survivor atau published-upgrade-survivor.
Menambah cakupan
Saat mengubah perilaku pembaruan atau Plugin, tambahkan cakupan pada lapisan terendah yang dapat gagal karena alasan yang tepat:- Logika path atau metadata murni: pengujian unit di samping sumber.
- Inventaris paket atau perilaku file terkemas: pengujian pemeriksa
package-dist-inventoryatau tarball. - Perilaku instalasi/pembaruan CLI: asersi atau fixture lane Docker.
- Perilaku migrasi rilis terbitan: skenario
published-upgrade-survivor. - Perilaku sumber registri/paket: fixture
test:docker:pluginsatau server fixture ClawHub. - Perilaku tata letak atau pembersihan dependensi: tegaskan eksekusi runtime dan batas
sistem file. Dependensi npm dapat diangkat di bawah root npm terkelola, sehingga pengujian harus membuktikan bahwa root dipindai/dibersihkan, bukan mengasumsikan pohon
node_moduleslokal paket.
Triage kegagalan
Mulai dengan identitas artefak:- Ringkasan
resolve_packagePenerimaan Paket: sumber, versi, SHA-256, dan nama artefak. - Artefak Docker:
.artifacts/docker-tests/**/summary.json,failures.json, log lane, dan perintah rerun. - Ringkasan upgrade survivor:
.artifacts/upgrade-survivor/summary.json, termasuk versi baseline, versi kandidat, skenario, timing fase, dan langkah resep.