rollback
apothem rollback コマンドの CLI リファレンス。
ハーネスを、記録されているインストールの前の状態に復元します。
構文
apothem rollback --harness NAME|all [--install-id ULID | --last] [--yes]
[--project PATH]
[--quiet|-q] [--verbose|-v]
[--format plain|json] [--json] [--no-color]rollback は、選択した各ハーネスを、記録されたインストール実行の前の状態に戻します。対象は、デフォルトでは最新のインストール実行、または --install-id で指定したインストール実行です。
そのインストールの台帳レコードを新しい変更から順にたどりながら、次の処理を行います。
- インストールが上書きしたすべてのファイルとディレクトリを、そのインストールが取得したバックアップから、記録されているパスに復元します(インストールが置き換えたディレクトリは、インストールがそこに追加したファイルを含まない状態で、正確に復元されます)。
- インストールが作成したすべてのファイルとディレクトリを削除し、インストールが一掃したレガシーレイアウトのパスがあれば元に戻します。
- インストールが作成した共有データストア(
memory、contexts、learning)を、他のインストール済みハーネスがまだ使用している場合を除いて削除します。 - インストールが作成したディレクトリを、空になった時点で削除します。
他のインストールも使用する、ホームディレクトリ内のファイルまたはフォルダー(スキルフォルダー、または ~/.config/apothem/)は、共有データストアと同様に扱われます。
ロールバックは、別のインストールがまだそれを列挙している間はそれを残し、それを使用する最後のインストールに対してのみ復元または削除します。
このインストールがすでに存在する状態で見つけたフォルダー(最初のツールの後にインストールされた 2 つ目のツール)は、その後それを手放したインストールが作成したものである場合、それを使用する最後のインストールとともに削除されます。そのため、すべてのツールをロールバックすると何も残りません。
フォルダーを使用し得るインストールの記録が読み取れない場合、ロールバックは何かを変更する前にエラーとともに停止し、rollback レコードを書き込みません。記録を修復して、再度実行してください。
ロールバックが削除または置き換えるものはすべて、まず Apothem のバックアップルート(~/.apothem/backups/)にコピーされるため、ロールバック自体を手作業で取り消すことができます。
その後、ロールバックはハーネスの台帳に rollback レコードを追記します。
古いインストールをロールバックすると、その古いインストールが記録した対象のみが復元または削除され、同じルートでそれより後のすべてのインストールは、台帳の有効なインストールから外されます。
後のインストールがそれらの対象の外に追加したファイルは、そのまま残ります。
台帳は、インストールルートごとに最新 10 件のインストールレコードを(それらが参照するバックアップとともに)保持します。
それより古いインストールは、もはや id ではロールバックできず、rollback.no_record を報告します。
apothem backups prune は、必要に応じてこの上限を引き下げますが、最新のインストールの復元元となるバックアップは決して削除しません。
この動作が追加される前の Apothem リリースが書き込んだレコードには、インストールが作成したファイルが記載されていません。 そのようなレコードをロールバックすると、上書きされたファイルのみが復元されます。
--yes が指定されない限り、確認はハーネスごとに求められます。
プロンプトを表示できない場合 — --format json(プロンプトのテキストが単一の JSON ドキュメントを壊してしまうため)または非対話型のシェル(TTY なし)— は、--yes が指定されない限り、コマンドは処理を始める前に、構造化された rollback.confirmation_required エラー(終了コード 1)で拒否します。
--install-id と --last はインストール実行を選択するもので、相互に排他的です。
--harness all のロールバックは、意図的に網羅的です。登録済みのすべてのハーネスを対象とし、プロファイルの exclude_harnesses がインストール時にスキップするハーネスも含みます —— インストール前の状態を復元することはクリーンアップ操作であるため、以前のより広範なインストールが残した可能性のあるレコードにも及びます。記録されたインストールがないハーネスは、results 内の "outcome": "error" の行として失敗し(JSON 出力を参照)、実行は残りのハーネスで続行されます。その後、コマンドは、何もロールバックされなかった場合は終了コード 1 で終了し、少なくとも 1 つのターゲットがロールバックされ、かつ失敗も記録された場合は終了コード 2(部分的な結果)で終了します。
オプション
| オプション | 説明 |
|---|---|
--harness NAME | ロールバックするハーネスアダプター、またはレジストリ全体の集合を表す all(必須)。 |
--install-id ULID | 指定したインストール実行をロールバックします。デフォルトは、最後に記録されたインストールです。 |
--last | 最後に記録されたインストールをロールバックします(デフォルトの動作を明示する形式)。--install-id とは相互に排他的です。 |
--yes | ハーネスごとの確認プロンプトをスキップします。 |
--project PATH | プロジェクトスコープのハーネス向けのプロジェクトルート。選択した集合にプロジェクトスコープのアダプターが含まれる場合は必須です。 |
--quiet, -q | 情報出力を抑制し、エラーのみを出力します。 |
--verbose, -v | 追加の診断出力を出力します。 |
--format plain|json | 出力形式(デフォルト: plain)。 |
--json | --format json の短縮形です。 |
--no-color | 出力中の ANSI カラーコードを無効にします。 |
-h, --help | ヘルプを表示して終了します。 |
JSON 出力
この例は、名前を指定した単一のハーネスのエンベロープです。--harness all の場合、harness は all、output_path は null となり、results には選択されたすべてのハーネスの行が含まれます。
{
"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"
}復元または削除された各ターゲットは、"operation": "rollback" と、created または updated の outcome を伴って results に現れます(files_written にも現れます)。message は、そのパスが復元されたのか削除されたのかを示します。
復元に失敗したもの(たとえば、バックアップが削除されていた場合)は "outcome": "error" になります。
変更を記録しなかったインストールは、"outcome": "skipped" として報告されます。
名前を指定した単一のハーネスに一致するインストールレコードが存在しない場合、コマンドは "status": "error" とともに rollback.no_record エラーを報告します。
--harness all の場合は、一致するレコードがないハーネスは、代わりに results 内の "outcome": "error" の行になります。
例
apothem rollback --harness claude-code --last
apothem rollback --harness claude-code --install-id 01J9Z… --yes
apothem rollback --harness cursor --project . --last --json終了コード
| コード | 意味 |
|---|---|
| 0 | 正常にロールバックした、またはロールバックするものがなかった(インストールが変更を記録していなかった) |
| 1 | 予期されるエラー — インストールレコードがない、セレクターの競合、不明なハーネス、プロジェクトルートの欠落、または確認が拒否されたか利用できない(--yes なしの非対話モードまたは JSON モード) |
| 2 | 部分的な結果 — 少なくとも 1 つのターゲットがロールバックされ、同時に失敗も記録された(復元の失敗、または --harness all の場合はインストールレコードのないハーネス) |
| 64 | 使用法エラー: 不明なオプションまたはコマンド、あるいは欠落した、または無効なオプション値。--json の下では、エラーはコード cli.usage を持つ JSON エンベロープになります。 |
関連項目
- apothem install — ハーネスの設定をインストールする
- apothem update — 現在の共有プロファイルから再インストールする
- apothem uninstall — ハーネスの設定を削除する
- apothem status — インストール、検証、ドリフトの状態を報告する