Bug Klon Profil Hermes: Chrome Clone Nyangkut ke Browser Profil Sumber
Bug Klon Profil Hermes: Chrome Clone Nyangkut ke Browser Profil Sumber
Bayangkan punya 5 profil agent berbeda — satu untuk kerjaan A, satu untuk kerjaan B, dan seterusnya. Lalu satu profil kamu klon pakai hermes profile create --clone-all. Tiba-tiba si clone bukan cuma punya log-in sendiri, tapi juga bisa nyantol ke browser profil aslinya lewat port Chrome DevTools (CDP).
Itulah bug yang dikonfirmasi live pada e4f591d1b0 — PR Bot Screen di Hermes Agent (#108914) — dan baru dilaporkan resmi ke repo pada 15 September 2026. Faktanya menarik? Jangan buru-buru sedih; ini juga pelajaran penting soal isolasi profil.
🐛 Apa yang Sebenarnya Terjadi
--clone-all memang menyalin seluruh data profil. Di dalamnya ada folder bot-desktop/browser-profile/, alias profil browser Chromium yang dipakai bot untuk log-in ke situs (bank, kampus, panel kerja…).
Sebelum dipakai bot, Chromium menulis dua file kecil ke folder itu:
DevToolsActivePort— file teks berisi nomor port debug yang dipakai Chrome saat itu.SingletonLock— symlink berisi nama host + PID proses host.
Dua file itu adalah identitas proses yang sedang jalan, bukan data kamu. Tapi waktu clone, keduanya ikut tersalin:
Sumber: DevToolsActivePort=34801 SingletonLock->host-650 (PID hidup)
clone: DevToolsActivePort=34801 SingletonLock->host-650 (hasil copas, apa adanya)
Fungsi running_instance_cdp_port() membaca dua file itu, cek PID-nya masih hidup, lalu cek port-nya siap konek. Kalau iya — port dianggap “punya kita”. Padahal proses yang jalan itu milik profil lain.
⚠️ Dampak untuk Operator Multi-Profil
Kalau kamu menggunakan Hermes untuk mengelola beberapa profil (Bot Mode grup, misal), kombinasi ini bisa terjadi:
- Cross-profile bleed. Claude/AI yang jalan di profil clone bisa attach ke Chromium yang dipakai profil aslinya, lalu melakukan navigasi atau snapshot di tab situ.
- Fence salah. Fungsi
_bot_desktop_attach_port()akan mengabsen lewat lease si clone (yang statusnya “agent-held”), padahal browser yang dipegang adalah browser asli yang sedang dipakai manusia. Jika ada orang yang sedang take over deskop di profil sumber, mereka tidak dilindungi lease apapun.
Yang perlu ditegaskan: clone hanya bisa menyantol kalau source-browser-nya sedang hidup saat operator menjalankan --clone-all. Jadi, ini bukan bug yang aktif berdiri sendiri — butuh timing.
🔧 Jawaban dari Komunitas
Melapor dan menambal! @whyyagswhy langsung mengambil alih P1 tersebut sebagai PR #112849 dengan patch yang fokus:
- Strip
DevToolsActivePort,SingletonLock,SingletonCookiedanSingletonSocketdari folder browser yang diklon. - Pertahankan
Default/Cookiesdan sisa data-data browser — kan itu yang bikin clone berguna. - Verifikasi: 70 tes pass di macOS, 83 tes pass di Linux melalui test file
tests/tools/test_bot_desktop_browser.py.
Sebuah test regresi ditambahkan: clone saat source-browser hidup → pastikan running_instance_cdp_port(clone) mengembalikan None.
Namun 112849 ditutup pada 17 September 2026 karena pasangannya di atas branch hermes/hermes-b802e898 yang belum masuk ke main. Kata pelapornya: akan dibuka kembali jika basisnya sudah mendarat.
Selain itu masih ada tumpukan di belakang: #109941 soal tidak ada in-use untuk X server tanpa lock file, sampai #112937 yang menambahkan fence stay_put untuk CDP milik user.
🛡️ Poin Praktis untuk Kamu
Kalau sekarang pakai Hermes dan sering klon profil:
- Jangan jalankan
--clone-allsambil source-browser masih hidup. Matikan dulu screen/browser di profil sumber, baru klon. - Cek manual setelah klon. Lihat folder
bot-desktop/browser-profile/di clone — kalau adaDevToolsActivePortatauSingletonLock, hapus. Buka pakails -akarenaSingletonLockitu symlink tersembunyi. - Pantau PR-nya kalau kamu memang sudah memakai fitur Bot Screen. Bug ini belum masuk
main— selamatools/bot_desktop/belum ada di instalasi kamu, ini belum relevan. - Prinsipnya: file marker proses bukan data user. Kalau kamu sendiri bikin tool yang menyalin direktori berisi Chromium profile, ingat pelajaran ini.
Ini juga jadi contoh bagus betapa isolasi multi-profil itu bukan soal memisahkan file saja — identitas proses di dalam file juga harus ikut diisolasi, atau jebolnya halus: bukan error, tapi sebuah profil diam-diam menyetir browser milik profil tetangga.
Sementara buat kemewahan kita: cek versi Hermes kamu, dan kalau belum pakai Bot Screen, wajarnya santai. Tapi selalu klon dalam keadaan bersih — bukan sambil dua browser berlarian di waktu yang sama. 🐷
Referensi: issue #108914 · PR #112849 · cek versi lokal di
— Chokdi 🐷 · Content Studio · 2026