Registri kompatibilitas
Kontrak kompatibilitas plugin dilacak dalam registri inti disrc/plugins/compat/registry.ts. Setiap catatan memiliki:
- kode kompatibilitas yang stabil
- status:
active,deprecated,removal-pending, atauremoved - pemilik:
sdk,config,setup,channel,provider,plugin-execution,agent-runtime, ataucore - tanggal pengenalan dan penghentian jika berlaku
- panduan pengganti
- dokumentasi, diagnostik, dan pengujian yang mencakup perilaku lama dan baru
src/commands/doctor/shared/deprecation-compat.ts. Catatan tersebut mencakup bentuk
konfigurasi lama, tata letak buku besar instalasi, dan shim perbaikan yang mungkin perlu
tetap tersedia setelah jalur kompatibilitas runtime dihapus.
Pemeriksaan rilis harus memeriksa kedua registri. Jangan menghapus migrasi
Doctor hanya karena catatan kompatibilitas runtime atau konfigurasi yang sesuai
telah kedaluwarsa; verifikasi terlebih dahulu bahwa tidak ada jalur peningkatan yang didukung yang masih memerlukan
perbaikan tersebut. Validasi ulang juga setiap anotasi pengganti selama perencanaan rilis,
karena kepemilikan plugin dan cakupan konfigurasi dapat berubah ketika penyedia
dan kanal dipindahkan keluar dari inti.
Kebijakan penghentian
OpenClaw tidak boleh menghapus kontrak plugin terdokumentasi dalam rilis yang sama yang memperkenalkan penggantinya. Urutan migrasi:- Tambahkan kontrak baru.
- Pertahankan perilaku lama yang terhubung melalui adaptor kompatibilitas bernama.
- Keluarkan diagnostik atau peringatan ketika penulis plugin dapat menindaklanjutinya.
- Dokumentasikan pengganti dan linimasa.
- Uji jalur lama dan baru.
- Tunggu hingga jangka waktu migrasi yang diumumkan berlalu.
- Hapus hanya dengan persetujuan eksplisit untuk rilis yang mengandung perubahan tidak kompatibel.
active.
Area kompatibilitas saat ini
Pemeriksaan Juli 2026 menghapus alias SDK root, manifes, penyedia, runtime, flag registri, dan konfigurasi web milik plugin yang telah kedaluwarsa. Migrasi Doctor tetap dilacak secara terpisah agar jalur peningkatan yang didukung masih dapat memperbaiki konfigurasi lama. Area kompatibilitas bertanggal yang tersisa adalah:- jangka waktu subjalur SDK bulan Agustus dan September yang tercantum dalam panduan migrasi
- alias hook
api.on("deactivate", ...)danapi.on("subagent_spawning", ...) - pendaftaran embedding khusus memori dan jembatan penyimpanan sesi beta.5
- alias callback masuk WhatsApp yang dijelaskan di bawah
- penguraian target kanal eksplisit dan
openclaw/plugin-sdk/messaging-targets - alias agen Pi tersemat
- alias SDK harness agen yang telah dirilis, yang penghapusannya menunggu keputusan migrasi baru yang didokumentasikan secara eksternal
Alias datar callback masuk WhatsApp
Callback runtime WhatsApp mengirimkanWebInboundMessage: konteks
bersarang kanonis event, payload, quote, group, dan platform beserta
alias datar yang dihentikan untuk bidang callback yang telah dirilis. Kode callback baru
harus membaca konteks bersarang. Kode yang membentuk pesan callback bersarang
yang bersih dapat menggunakan WebInboundCallbackMessage; listener kompatibilitas yang
masih menyuntikkan pesan pengujian atau plugin datar lama harus menggunakan
LegacyFlatWebInboundMessage atau WebInboundMessageInput.
Alias datar tetap tersedia hingga 2026-08-30; jangka waktu tersebut hanya berlaku
untuk akses alias datar, bukan bentuk bersarang, yang merupakan kontrak
runtime kanonis. Anotasi TypeScript @deprecated setiap alias datar
menyebutkan pengganti bersarangnya secara tepat. Contoh umum:
id,timestamp, danisBatcheddipindahkan ke bawahevent.body,mediaPath,mediaType,mediaFileName,mediaUrl,location, danuntrustedStructuredContextdipindahkan ke bawahpayload.to,chatId, bidang pengirim/diri sendiri,sendComposing,reply(...), dansendMedia(...)dipindahkan ke bawahplatform.- bidang
replyTo*dipindahkan ke bawahquote; bidang subjek/peserta/sebutan grup dipindahkan ke bawahgroup.
payload.untrustedStructuredContext diekstrak dari payload penyedia
masuk. Plugin harus memeriksa label, source, dan type sebelum
memperlakukan payload miliknya sebagai otoritatif.
Bidang penerimaan masuk WhatsApp
Pesan callback WhatsApp yang diterima membawaadmission, sebuah envelope
aman untuk publik bagi keputusan kontrol akses yang menerima pesan tersebut. Kode
callback baru harus membaca fakta penerimaan dari msg.admission, bukan dari
bidang penerimaan tingkat atas yang lebih lama.
Bidang tingkat atas tetap tersedia hingga 2026-08-30. Anotasi
TypeScript @deprecated setiap bidang menyebutkan penggantinya:
fromdanconversationIddipindahkan keadmission.conversation.id.accountIddipindahkan keadmission.accountId.accessControlPassedadalah tampilan kompatibilitas turunan dariadmission.ingress.decision === "allow"; pada pesan yang sudah membawaadmission, penulisan boolean lama tidak menulis ulang graf ingress.chatTypedipindahkan keadmission.conversation.kind.
Paket inspektur plugin
Inspektur plugin harus berada di luar repo inti OpenClaw sebagai paket/repositori terpisah yang didukung oleh kontrak kompatibilitas dan manifes berversi. CLI hari pertama harus berupa:--json untuk output
stabil yang dapat dibaca mesin dalam anotasi CI. Inti OpenClaw harus mengekspos
kontrak dan fixture yang dapat digunakan oleh inspektur, tetapi tidak boleh menerbitkan
biner inspektur dari paket utama openclaw.
Jalur penerimaan pengelola
Gunakan Blacksmith Testbox yang didukung Crabbox untuk jalur penerimaan paket yang dapat diinstal saat memvalidasi inspektur eksternal terhadap paket plugin OpenClaw. Jalankan dari checkout OpenClaw yang bersih setelah paket dibangun:Catatan rilis
Catatan rilis harus menyertakan penghentian plugin mendatang beserta tanggal target dan tautan ke dokumentasi migrasi, sebelum jalur kompatibilitas berpindah keremoval-pending atau removed.