Skip to content
Apothem
Referensi CLI

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

OpsiDeskripsi
--harness NAMEAdapter harness yang akan di-rollback, atau all untuk himpunan selingkup-registri (wajib).
--install-id ULIDMe-rollback putaran pemasangan yang disebutkan. Default-nya pemasangan terbaru yang tercatat.
--lastMe-rollback pemasangan terbaru yang tercatat (default; bentuk eksplisitnya). Saling eksklusif dengan --install-id.
--yesMelewati prompt konfirmasi per harness.
--project PATHRoot proyek untuk harness berlingkup-proyek. Wajib ketika himpunan yang dipilih mencakup adapter berlingkup-proyek.
--quiet, -qMenekan keluaran informatif; hanya galat yang dipancarkan.
--verbose, -vMemancarkan keluaran diagnostik tambahan.
--format plain|jsonFormat keluaran (default: plain).
--jsonSingkatan untuk --format json.
--no-colorMenonaktifkan kode warna ANSI dalam keluaran.
-h, --helpMenampilkan 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 --json

Kode keluar

KodeArti
0Berhasil di-rollback, atau tidak ada yang perlu di-rollback (pemasangan tidak mencatat perubahan)
1Galat 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)
2Hasil parsial — setidaknya satu target di-rollback dan sebuah kegagalan juga tercatat (pemulihan yang gagal atau, di bawah --harness all, harness tanpa catatan pemasangan)
64Galat 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

On this page