OpenClaw & AI Operasional

Fix Cron OpenClaw: Hasil Current Session Kini Tersimpan di Chat

Jawaban singkat: hal utama tentang Fix Cron OpenClaw: Hasil Current Session Kini Tersimpan di Chat adalah ini: PR #126860 memperbaiki cron current-session OpenClaw agar hasil final kembali ke chat asal, masuk durable history, dan aman dari duplikasi retry.

Fix terbaru di branch main OpenClaw membuat hasil cron current-session kembali ke chat asal, bertahan setelah reconnect, dan tidak terduplikasi saat retry.

Fix Cron OpenClaw: Hasil Current Session Kini Tersimpan di Chat

Cron OpenClaw bisa menyelesaikan pekerjaan dengan benar, tetapi hasilnya tidak selalu kembali ke percakapan tempat job dibuat. Masalah ini paling terasa pada job dengan sessionTarget: "current": run tetap berjalan di session terpisah, lalu hasil akhirnya dapat hilang dari WebChat dan tidak muncul lagi setelah refresh atau reconnect.

Fix untuk masalah tersebut sudah masuk ke branch main OpenClaw pada 21 Agustus 2026 melalui PR #126860. Perubahannya membuat output final cron menjadi bagian dari durable history percakapan asal, lengkap dengan provenance dan idempotency key.

Statusnya perlu dibaca dengan tepat. Saat audit ini dilakukan, NPM latest masih menunjuk 2026.7.1-2 dan tag beta masih 2026.8.1-beta.2. Keduanya terbit sebelum commit fix ini. Artinya, perbaikan sudah resmi di source main, tetapi belum tersedia dalam release stable atau beta terbaru.

Apa masalahnya?

Job current memang dibuat dari percakapan aktif, tetapi proses eksekusinya tetap detached. Sebelum fix, hasil akhir run tidak ditulis melalui jalur transcript canonical milik percakapan asal.

Dampaknya cukup membingungkan:

  • cron tercatat sudah berjalan;
  • pekerjaan di background dapat selesai;
  • WebChat tidak menerima hasil sebagai message baru;
  • refresh atau reconnect tidak memulihkan hasil melalui chat.history;
  • user baru melihat tidak ada balasan, padahal run bukan berarti gagal.

Ini bukan sekadar masalah tampilan. Untuk automation seperti daily report, pengecekan server, ringkasan meeting, audit ads, atau follow-up terjadwal, output final adalah deliverable. Kalau hasil tidak masuk ke history yang benar, operator sulit membedakan antara run gagal, delivery gagal, atau jawaban yang hanya tersimpan di session detached.

Apa yang diubah OpenClaw?

PR #126860 menambahkan jalur khusus untuk menyimpan hasil background ke session asal. OpenClaw sekarang melakukan beberapa langkah sebelum menganggap delivery berhasil.

Pertama, sistem mengambil binding session tempat cron dibuat. Run masih detached dan hanya membaca bounded context dari chat tersebut, jadi cron tidak berubah menjadi turn biasa yang menahan percakapan utama.

Kedua, setelah pekerjaan selesai, output final ditulis melalui canonical transcript writer. Message itu membawa identitas job, run ID, dan idempotency key seperti cron-current-completion:<runId>.

Ketiga, WebChat menerima event session.message dari commit tersebut. Karena message sudah masuk ke transcript canonical, hasil yang sama juga tersedia lewat chat.history setelah browser direfresh atau koneksi terputus.

Keempat, retry tidak boleh menambahkan jawaban yang sama dua kali. Idempotency key mengikat satu hasil ke satu cron run. Ini penting karena retry tanpa deduplikasi dapat mengubah bug "hasil hilang" menjadi bug "hasil dobel".

Delivery eksternal tetap berjalan satu kali

Perubahan ini tidak mengganti mekanisme delivery channel seperti Telegram atau Discord. Untuk percakapan eksternal, OpenClaw tetap melakukan normal channel send. Bedanya, commit ke session history sekarang juga wajib berhasil.

Kontrak barunya kurang lebih seperti ini:

  1. hasil final harus masuk ke transcript percakapan asal;
  2. jika targetnya channel eksternal, outbound message tetap dikirim melalui adapter channel;
  3. satu run tidak boleh menghasilkan dua outbound message yang sama;
  4. status delivery baru dianggap sukses setelah kewajiban commit dan external handoff terpenuhi.

Jika agent sudah mengirim lewat tool message dan targetnya terverifikasi, OpenClaw tidak mengirim fallback kedua. Namun message tersebut tetap dicatat ke session asal. Jadi deduplikasi outbound tidak mengorbankan durable history.

Kenapa fix ini material untuk operasi harian?

Ada perbedaan besar antara cron yang sekadar mengeksekusi task dan cron yang bisa mempertanggungjawabkan hasilnya. Scheduled automation production perlu menjawab tiga pertanyaan: job mana yang berjalan, hasilnya dikirim ke mana, dan apakah hasil itu masih bisa ditemukan setelah reconnect.

Fix ini menutup bagian ketiga untuk current-session jobs. Ia juga memperjelas ownership percakapan. Source session menjadi pemilik durable output, bukan session detached yang hanya hidup untuk mengeksekusi satu run.

Dari sisi operator, manfaat paling nyata ada pada workflow yang dibuat langsung dari chat. Contohnya:

  • "cek ulang status deploy 20 menit lagi";
  • "audit error ini besok pagi dan laporkan di sini";
  • "rangkum data terbaru setiap Jumat di percakapan ini";
  • "lanjutkan pengecekan setelah subtask selesai".

Sebelum fix, kata "di sini" tidak selalu berarti hasil benar-benar menjadi bagian dari history chat tersebut. Setelah fix, binding itu punya konsekuensi yang jelas dan bisa diuji.

Batas fix yang perlu dipahami

Perubahan ini tidak membuat semua jenis cron berbagi konteks penuh dengan chat utama.

main, current, isolated, dan session:<id> tetap punya fungsi berbeda. Job current masih berjalan detached, membaca bounded tail dari conversation saat dibuat, lalu menulis hasil final kembali ke conversation yang sama. Job isolated tetap memakai session baru. Custom session tetap cocok untuk workflow yang sengaja membangun history sendiri dari run ke run.

Fix ini juga tidak menjamin task bisnis di balik cron otomatis idempotent. OpenClaw mencegah duplicate commit untuk satu hasil cron, tetapi endpoint eksternal tetap perlu idempotency key sendiri jika job membuat invoice, mengubah campaign, mengirim pembayaran, atau melakukan mutation lain yang tidak boleh dobel.

Apa yang harus dilakukan operator sekarang?

1. Jangan menganggap merge ke main sama dengan release

Commit 133d5fff sudah merged dan dokumentasi resmi cron sudah diperbarui. Namun stable 2026.7.1-2 dan beta 2026.8.1-beta.2 belum memuatnya pada saat audit. Tunggu release resmi berikutnya atau uji source build hanya di staging.

2. Audit job yang memakai sessionTarget: "current"

Cari automation yang hasil akhirnya wajib kembali ke chat. Catat apakah selama ini output muncul sebagai message baru, bertahan setelah refresh, dan bisa ditemukan lewat history. Jangan memakai status run saja sebagai bukti bahwa user menerima hasil.

3. Uji tiga jalur setelah versi berisi fix tersedia

Minimal lakukan smoke test berikut:

  • buat current-session cron dari WebChat, lalu pastikan hasil muncul tanpa user mengirim message baru;
  • refresh atau reconnect, lalu pastikan hasil tetap ada di history;
  • uji channel eksternal dan pastikan hanya ada satu outbound message, bukan satu dari agent dan satu dari fallback delivery.

4. Pertahankan idempotency di sisi bisnis

Durable transcript bukan pengganti idempotency pada API target. Untuk job yang punya efek eksternal, gunakan business key yang stabil, simpan execution evidence, dan bedakan retry delivery dari retry mutation.

Kesimpulan operasional

PR #126860 memperbaiki kontrak dasar current-session cron: pekerjaan boleh berjalan detached, tetapi hasil final harus kembali ke percakapan yang membuatnya. WebChat mendapat event secara langsung, history tetap utuh setelah reconnect, dan retry tidak menggandakan message yang sama.

Ini fix yang layak dijadikan acceptance criteria untuk upgrade OpenClaw berikutnya, khususnya pada instalasi yang mengandalkan scheduled audit, report, atau follow-up dari chat. Sampai release resmi memuat commit tersebut, anggap current-session output pada stable dan beta terbaru masih perlu diverifikasi secara manual.

Sumber resmi

Lanjut membaca

Artikel yang masih relevan