OpenClaw & AI Operasional

Hermes Agent 0.19.0 Bug Watch: Telegram, State DB, Gemini, dan Dependency Audit

Audit pasca-rilis Hermes Agent 0.19.0 menemukan regression authorization Telegram, risiko pesan State DB gagal tersimpan, error Gemini native, reply context bermasalah, dan temuan dependency.

Hermes Agent 0.19.0 Bug Watch: Telegram, State DB, Gemini, dan Dependency Audit

Hermes Agent 0.19.0 baru dua hari menjadi stable baseline, tetapi audit issue pada 22 Juli 2026 sudah menemukan beberapa masalah yang layak diperhatikan operator. Belum ada release pengganti dan belum ada GitHub Security Advisory publik baru. Jadi ini bukan ajakan panik atau downgrade massal.

Masalahnya lebih sederhana: sebagian bug dapat mengganggu authorization Telegram, persistence percakapan, koneksi Gemini native, dan keamanan dependency JavaScript. Fix untuk area-area tersebut sedang dikerjakan di branch main, tetapi belum tersedia dalam tag stable baru.

Status per 22 Juli 2026: stable terbaru tetap Hermes Agent v0.19.0. Temuan di bawah berasal dari issue dan pull request resmi repository. Status PR dapat berubah setelah artikel ini terbit.

1. Allowlist Telegram bisa menolak pengguna grup yang sebenarnya sah

Issue #68716 mencatat regression pada kombinasi allow_from dengan aturan khusus grup. Saat global allowlist tersedia, pemeriksaan awal adapter dapat langsung menolak pengirim yang tidak ada di daftar global. Masalahnya, keputusan itu terjadi sebelum group_allow_from atau group_allowed_chats sempat diperiksa.

Dampaknya bukan unauthorized user mendapat akses. Arahnya justru sebaliknya: pengguna yang seharusnya sah di grup atau forum bisa ditolak. Ini mengganggu konfigurasi yang ingin membatasi direct message sambil membuka akses untuk anggota grup tertentu.

Fix sudah diajukan melalui PR #68784, tetapi belum masuk release stable ketika audit dilakukan.

Yang perlu dilakukan:

  • jangan mengatasi bug ini dengan wildcard global jika direct message memang harus dibatasi;
  • uji direct message, grup biasa, forum topic, dan sender yang hanya diberi izin lewat aturan grup;
  • jika policy sekarang bekerja, simpan konfigurasi dan hasil test sebagai baseline sebelum mengambil build dari main;
  • tunggu release resmi bila sistem tidak benar-benar terblokir.

2. Orphan FTS trigger dapat membuat pesan gagal tersimpan tanpa terlihat

Temuan paling serius untuk continuity ada di PR #69085. Dalam kondisi tertentu, database dapat memiliki trigger FTS lama atau tambahan yang masih menulis ke tabel virtual pencarian. Ketika trigger tersebut bentrok dengan trigger canonical, transaksi append_message gagal dan di-rollback.

Sesi tetap terlihat berjalan normal, tetapi pesan tidak tersimpan. message_count dapat tetap nol. Ini berbahaya karena kegagalannya tidak selalu tampak pada percakapan saat itu; dampaknya baru terasa ketika session history, recall, atau pemulihan setelah restart dibutuhkan.

PR tersebut menyebut orphan trigger dapat muncul setelah restore snapshot, upgrade dari versi lama, atau perubahan DDL manual. Fix yang diusulkan membersihkan trigger pada tabel messages yang tidak termasuk daftar canonical, lalu membangun ulang index FTS.

Ada satu catatan penting: cleanup ini agresif. Trigger custom yang sengaja ditambahkan ke tabel messages juga berisiko ikut dihapus bila tidak dikenali.

Pemeriksaan minimum:

  1. pastikan message_count bertambah setelah percakapan baru;
  2. restart Hermes lalu cek apakah session history masih lengkap;
  3. audit trigger SQLite sebelum menerapkan fix, terutama jika pernah menambah trigger custom;
  4. backup state.db sebelum upgrade atau menjalankan repair;
  5. jangan menganggap session sehat hanya karena respons model masih muncul.

3. Gemini native dapat gagal 401 atau 400 sejak awal sesi

Issue #69031 melaporkan dua blocker pada endpoint Gemini native v1beta.

Bug pertama muncul ketika profile membawa header Authorization: Bearer ... dari konfigurasi OpenAI-compatible atau aggregator. Hermes tetap menambahkan x-goog-api-key, tetapi Google melihat header Authorization dan memperlakukan request sebagai OAuth2. Hasilnya adalah 401 Unauthorized meskipun API key valid.

Bug kedua berasal dari JSON schema tool. Gemini mewajibkan field items untuk parameter bertipe array. Satu tool schema yang tidak lengkap dapat membuat seluruh request ditolak dengan 400 INVALID_ARGUMENT.

Fix untuk header sudah dipisahkan ke PR #69068. Saat audit, issue utamanya masih terbuka dan fix schema array belum tersedia sebagai release stable.

Workaround operasional:

  • gunakan profile Gemini native yang bersih, jangan copy seluruh header dari provider compatible lain;
  • periksa tool atau MCP schema yang memiliki type: "array" tanpa items;
  • jangan menandai API key rusak sebelum mengecek header efektif dan schema tool;
  • bila Gemini bukan jalur utama produksi, gunakan provider yang sudah teruji sambil menunggu patch stable.

4. Telegram reply membawa potongan Markdown mentah ke prompt

Issue #69060 menunjukkan bahwa reply terhadap pesan panjang di Telegram dapat menyisipkan isi pesan lama sebagai blok Markdown mentah ke input baru. Ketika dipotong di tengah tabel, quote, atau formatting, model menerima konteks yang tidak utuh dan instruksi baru pengguna bisa tertimbun.

Ini bukan bug tampilan preview Telegram. Konten lama memang masuk ke prompt sintetis. Selain membuang context window, potongan yang ambigu dapat menurunkan akurasi respons.

Fix diajukan melalui PR #69087: reply context diubah menjadi excerpt plaintext yang dibatasi dan dipisahkan dari pesan baru. PR tersebut belum masuk release stable saat artikel ditulis.

Untuk sementara, hindari reply langsung ke output yang sangat panjang atau penuh tabel. Kirim pesan baru dengan referensi singkat terhadap bagian yang ingin dibahas.

5. Audit dependency menemukan satu critical dan empat high

PR #69065 mencatat enam temuan npm audit pada workspace JavaScript: satu critical, empat high, dan satu low. Paket yang disebut meliputi tar, brace-expansion, js-yaml, fast-uri, shell-quote, dan dompurify.

Daftar severity tidak otomatis berarti semua deployment Hermes dapat dieksploitasi dari luar. Exploitability bergantung pada jalur input, versi yang benar-benar terpasang, dan apakah paket rentan dipakai pada runtime atau hanya build tooling. Namun temuan critical pada dependency tetap material, terutama untuk desktop, web, TUI, dan pipeline yang memproses archive atau input tidak tepercaya.

PR sudah menghasilkan audit nol vulnerability pada tiga workspace yang diperiksa, tetapi belum menjadi stable release. Operator sebaiknya tidak menjalankan npm audit fix --force secara buta di instalasi produksi karena perubahan lockfile lokal dapat menyulitkan upgrade berikutnya.

Apakah pengguna 0.19.0 perlu downgrade?

Belum ada dasar untuk downgrade massal. Quicksilver tetap membawa perbaikan reliability penting, termasuk delivery ledger, context compression, dan hardening credential. Temuan hari ini lebih cocok diperlakukan sebagai bug watch terarah.

Prioritas tindakan bergantung pada jalur yang dipakai:

  • Telegram dengan policy grup kompleks: uji matriks authorization sekarang.
  • Restore atau migrasi state.db: verifikasi persistence dan trigger SQLite.
  • Gemini native: audit header serta schema tool sebelum menyalahkan credential.
  • Desktop, web, atau TUI dari source: pantau dependency patch dan release berikutnya.
  • Telegram dengan percakapan panjang: hindari reply ke tabel atau output besar sampai fix masuk stable.

Rekomendasi Rama Digital: tetap di 0.19.0 jika sistem sehat, jangan mengejar setiap commit main, dan siapkan test singkat untuk empat area di atas. Upgrade berikutnya baru dijalankan setelah tag resmi terbit dan regression test lokal lolos.

Referensi resmi

Lanjut membaca

Artikel yang masih relevan