Mengapa Anda Harus Peduli dengan Checkpoints
Tutorial 30: Checkpoints & Rollback — easy-to-understand guide based on official docs
Mengapa Anda Harus Peduli dengan Checkpoints
Bayangkan Anda meminta Hermes untuk me-refactor sebagian besar kode Anda, dan di tengah jalan, Anda menyadari pendekatan baru itu berantakan. Tanpa checkpoints, Anda akan terjebak membatalkan perubahan secara manual atau menggali riwayat git. Dengan checkpoints, Anda cukup mengetik /rollback dan memilih titik pemulihan. Ini seperti mesin waktu untuk proyek Anda.
Bagian terbaiknya? Checkpoints itu sepenuhnya opsional. Fitur ini nonaktif secara default di v2, jadi jika Anda tidak pernah menggunakannya, Anda tidak akan pernah menyadari keberadaannya. Tetapi saat Anda membutuhkannya, fitur ini benar-benar penyelamat.
Mengaktifkan Checkpoints
Ada dua cara untuk mengaktifkan jaring pengaman ini:
Per-sesi (hanya chat ini):
hermes chat --checkpoints
Global (semua sesi) — edit ~/.hermes/config.yaml:
checkpoints:
enabled: true
Apa yang Memicu Checkpoint?
Hermes secara otomatis membuat snapshot proyek Anda sebelum operasi destruktif apa pun, termasuk:
- Alat file —
write_filedanpatch - Perintah terminal berbahaya —
rm,rmdir,cp,mv,sed -i,truncate,dd,shred, pengalihan output (>), dangit reset/clean/checkout
Untuk menghindari spam, Hermes membuat maksimal satu checkpoint per direktori per giliran. Jadi sesi yang panjang tidak akan memenuhi disk Anda dengan ratusan snapshot.
Keajaiban di Balik Layar
Inilah bagian yang cerdas: Hermes menggunakan satu repositori git bayangan bersama yang disimpan di ~/.hermes/checkpoints/store/. Folder .git proyek asli Anda tidak pernah disentuh. Setiap proyek berbagi satu store ini, dan sistem content-addressable git secara otomatis mendeduplikasi file antar proyek. Jadi jika dua proyek memiliki file yang mirip, file tersebut hanya disimpan sekali.
Menggunakan /rollback Dalam Sesi
Setelah checkpoints aktif, Anda dapat menggunakan perintah slash berikut selama chat:
| Perintah | Fungsinya |
|---|---|
/rollback |
Menampilkan semua checkpoint dengan statistik perubahan |
/rollback <N> |
Mengembalikan ke checkpoint N, tetap menyimpan edit manual Anda (juga membatalkan giliran chat terakhir) |
/rollback <N> --all |
Pemulihan penuh — menimpa edit manual Anda juga |
/rollback diff <N> |
Menampilkan pratinjau perbedaan antara checkpoint N dan kondisi saat ini |
/rollback <N> <file> |
Mengembalikan hanya satu file dari checkpoint N |
Saat Anda mengetik /rollback, Anda akan melihat sesuatu seperti:
📸 Checkpoints untuk /path/to/project:
1. 4270a8c 2026-03-16 04:36 sebelum patch (1 file, +1/-0)
2. eaf4c1f 2026-03-16 04:35 sebelum write_file
3. b3f9d2e 2026-03-16 04:34 sebelum terminal: sed -i s/old/new/ config.py (1 file, +1/-1)
Mengelola Store dari Shell
Di luar sesi, Anda dapat memeriksa dan membersihkan checkpoint store:
hermes checkpoints # Menampilkan total ukuran, jumlah proyek, rincian
hermes checkpoints status # Sama seperti di atas
hermes checkpoints list # Alias untuk status
hermes checkpoints prune # Pembersihan paksa: hapus orphan, GC, terapkan batas ukuran
hermes checkpoints clear # Hapus seluruh basis checkpoint (meminta konfirmasi dulu)
hermes checkpoints clear-legacy # Hapus hanya arsip migrasi v1
Menyesuaikan Konfigurasi
Anda dapat mengontrol semuanya di ~/.hermes/config.yaml:
checkpoints:
enabled: false # saklar utama (default: false)
max_snapshots: 20 # maksimal checkpoint per proyek
max_total_size_mb: 500 # batas keras total ukuran store
max_file_size_mb: 10 # lewati file yang lebih besar dari ini
auto_prune: true # bersihkan otomatis entri lama saat startup
retention_days: 7 # pertahankan entri yang diakses dalam jumlah hari ini
min_interval_hours: 24 # prune maksimal sekali per interval ini
Detail yang cerdas: auto-prune tidak pernah menghapus entri orphan (proyek yang direktori kerjanya sudah tidak ada). Itu karena direktori yang hilang bisa berarti drive eksternal yang tidak ter-mount atau VPN yang belum terhubung. Pembersihan orphan hanya terjadi melalui perintah eksplisit hermes checkpoints prune, yang meminta konfirmasi terlebih dahulu.
Kapan Anda Harus Mengaktifkannya?
Jika Anda sedang melakukan pekerjaan eksperimental, refactor besar, atau belajar Hermes, aktifkan checkpoints. Overhead penyimpanannya kecil (berkat deduplikasi), dan ketenangan pikiran yang didapat sangat besar. Jika Anda hanya melakukan tugas sederhana yang aman, biarkan nonaktif dan hemat ruang disk.
Checkpoints adalah salah satu fitur yang akan Anda lupakan — sampai saat Anda sangat membutuhkannya. Dan saat itu tiba, Anda akan bersyukur fitur ini ada.
📖 Dokumentasi resmi
この記事は Hermes Agent のDokumentasi resmiに基づいています:Dokumentasi resmi › user-guide/checkpoints-and-rollback