rollback
Referensi CLI untuk perintah apothem rollback.
Memulihkan harness ke keadaan sebelum pemasangannya yang tercatat.
Ringkasan
apothem rollback --harness NAME|all [--install-id ULID | --last] [--yes]
[--project PATH]
[--quiet|-q] [--verbose|-v]
[--format plain|json] [--json] [--no-color]rollback mengembalikan setiap harness yang dipilih ke keadaan sebelum putaran
pemasangan yang tercatat — yang terbaru secara default, atau yang disebutkan
oleh --install-id. Dengan menelusuri catatan ledger pemasangan tersebut,
dimulai dari perubahan terbaru, perintah ini:
- memulihkan setiap berkas dan direktori yang ditimpa oleh pemasangan dari cadangan yang ditangkap pemasangan tersebut, di jalurnya yang tercatat (direktori yang diganti oleh pemasangan dipulihkan persis, tanpa berkas yang ditambahkan pemasangan ke dalamnya);
- menghapus setiap berkas dan direktori yang dibuat oleh pemasangan, dan mengembalikan jalur tata letak warisan apa pun yang disingkirkan oleh pemasangan;
- menghapus penyimpanan data bersama (
memory,contexts,learning) yang dibuat oleh pemasangan, kecuali jika harness lain yang terpasang masih menggunakannya; - menghapus direktori yang dibuat oleh pemasangan, setelah direktori tersebut kosong.
Berkas atau folder di direktori home Anda yang juga digunakan oleh pemasangan
lain (folder skill, atau ~/.config/apothem/) diperlakukan seperti
penyimpanan data bersama: rollback mempertahankannya selama pemasangan lain
masih mencantumkannya, dan memulihkan atau menghapusnya hanya untuk pemasangan
terakhir yang menggunakannya. Folder yang ditemukan pemasangan ini sudah ada
(alat kedua yang dipasang setelah alat pertama) ikut hilang bersama pemasangan
terakhir yang menggunakannya ketika folder itu dibuat oleh pemasangan yang
sejak itu telah melepaskannya, sehingga me-rollback setiap alat tidak
meninggalkan apa pun. Ketika catatan pemasangan yang dapat menggunakan folder
tersebut tidak dapat dibaca, rollback berhenti dengan galat sebelum mengubah
apa pun dan tidak menulis catatan rollback; perbaiki catatan tersebut lalu
jalankan lagi.
Segala sesuatu yang dihapus atau diganti oleh rollback terlebih dahulu disalin
ke root cadangan Apothem (~/.apothem/backups/), sehingga rollback itu sendiri
dapat dibatalkan secara manual. Rollback kemudian menambahkan catatan
rollback ke ledger harness. Me-rollback pemasangan yang lebih lama hanya
memulihkan atau menghapus target yang dicatat oleh pemasangan lama tersebut, dan
mengeluarkan setiap pemasangan sesudahnya dari daftar pemasangan aktif ledger
pada root yang sama. Berkas yang ditambahkan oleh pemasangan yang lebih baru di
luar target tersebut tetap berada di tempatnya.
Ledger menyimpan 10 catatan pemasangan terbaru per root pemasangan (beserta
cadangan yang dirujuknya); pemasangan yang lebih lama tidak lagi dapat
di-rollback berdasarkan id dan melaporkan rollback.no_record.
apothem backups prune menurunkan batas itu
sesuai permintaan, dan tidak pernah menghapus cadangan yang menjadi sumber
pemulihan pemasangan terbaru.
Catatan yang ditulis oleh rilis Apothem sebelum perilaku ini ditambahkan tidak mencantumkan berkas mana yang dibuat oleh pemasangan; me-rollback catatan semacam itu hanya memulihkan berkas yang ditimpa.
Konfirmasi diminta per harness kecuali --yes diberikan. Ketika prompt tidak
mungkin ditampilkan — --format json (teks prompt akan merusak dokumen JSON
tunggal) atau shell non-interaktif (tanpa TTY) — perintah ini langsung menolak
sejak awal dengan galat terstruktur rollback.confirmation_required (keluar 1)
kecuali --yes diberikan. --install-id dan --last memilih putaran
pemasangan dan saling eksklusif.
Rollback --harness all sengaja dibuat menyeluruh: rollback ini mencakup setiap harness yang terdaftar, termasuk yang dilewati oleh exclude_harnesses profil selama pemasangan. Memulihkan keadaan pra-pemasangan adalah operasi pembersihan, sehingga rollback ini menjangkau catatan yang mungkin ditinggalkan oleh pemasangan sebelumnya yang cakupannya lebih luas. Harness yang tidak memiliki pemasangan tercatat gagal sebagai baris "outcome": "error" di results (lihat keluaran JSON), dan proses berlanjut dengan harness yang tersisa. Perintah ini kemudian keluar dengan kode 1 jika tidak ada yang di-rollback, atau 2 (hasil parsial) jika setidaknya satu target di-rollback dan sebuah kegagalan juga tercatat.
Opsi
| Opsi | Deskripsi |
|---|---|
--harness NAME | Adapter harness yang akan di-rollback, atau all untuk himpunan selingkup-registri (wajib). |
--install-id ULID | Me-rollback putaran pemasangan yang disebutkan. Default-nya pemasangan terbaru yang tercatat. |
--last | Me-rollback pemasangan terbaru yang tercatat (default; bentuk eksplisitnya). Saling eksklusif dengan --install-id. |
--yes | Melewati prompt konfirmasi per harness. |
--project PATH | Root proyek untuk harness berlingkup-proyek. Wajib ketika himpunan yang dipilih mencakup adapter berlingkup-proyek. |
--quiet, -q | Menekan keluaran informatif; hanya galat yang dipancarkan. |
--verbose, -v | Memancarkan keluaran diagnostik tambahan. |
--format plain|json | Format keluaran (default: plain). |
--json | Singkatan untuk --format json. |
--no-color | Menonaktifkan kode warna ANSI dalam keluaran. |
-h, --help | Menampilkan bantuan dan keluar. |
Keluaran JSON
Contoh ini adalah struktur keluaran untuk satu harness yang disebutkan namanya. Di bawah --harness all, harness bernilai all, output_path bernilai null, dan results memuat baris dari setiap harness yang dipilih.
{
"schema_version": 1,
"status": "success",
"command": "rollback",
"action": "rolled_back",
"harness": "claude-code",
"profile_path": null,
"project": null,
"files_written": [],
"results": [],
"warnings": [],
"error": null,
"output_path": "C:\\Users\\Example\\.claude\\settings.json"
}Setiap target yang dipulihkan atau dihapus muncul di results dengan
"operation": "rollback" dan outcome berupa created atau updated (dan di
files_written); message menyatakan apakah jalur tersebut dipulihkan atau
dihapus. Pemulihan yang gagal (misalnya, cadangan yang telah dihapus) bernilai
"outcome": "error". Pemasangan yang tidak mencatat perubahan apa pun
dilaporkan dengan "outcome": "skipped". Ketika tidak ada catatan pemasangan
yang cocok untuk satu harness yang disebutkan namanya, perintah ini melaporkan
galat rollback.no_record dengan "status": "error". Di bawah
--harness all, harness tanpa catatan yang cocok justru menjadi baris
"outcome": "error" di results.
Contoh
apothem rollback --harness claude-code --last
apothem rollback --harness claude-code --install-id 01J9Z… --yes
apothem rollback --harness cursor --project . --last --jsonKode keluar
| Kode | Arti |
|---|---|
| 0 | Berhasil di-rollback, atau tidak ada yang perlu di-rollback (pemasangan tidak mencatat perubahan) |
| 1 | Galat yang diharapkan — tidak ada catatan pemasangan, selektor yang bertentangan, harness tidak dikenal, root proyek hilang, atau konfirmasi ditolak atau tidak tersedia (mode non-interaktif atau JSON tanpa --yes) |
| 2 | Hasil parsial — setidaknya satu target di-rollback dan sebuah kegagalan juga tercatat (pemulihan yang gagal atau, di bawah --harness all, harness tanpa catatan pemasangan) |
| 64 | Galat penggunaan: opsi atau perintah yang tidak dikenal, atau nilai opsi yang hilang atau tidak valid. Di bawah --json, galat berupa amplop JSON dengan kode cli.usage. |
Lihat juga
- apothem install — memasang konfigurasi harness
- apothem update — memasang ulang dari profil bersama saat ini
- apothem uninstall — menghapus konfigurasi harness
- apothem status — melaporkan status pemasangan, verifikasi, dan penyimpangan