rollback
CLI-Referenz für den Befehl apothem rollback.
Setzt einen Harness auf den Zustand vor seiner aufgezeichneten Installation zurück.
Übersicht
apothem rollback --harness NAME|all [--install-id ULID | --last] [--yes]
[--project PATH]
[--quiet|-q] [--verbose|-v]
[--format plain|json] [--json] [--no-color]rollback versetzt jeden ausgewählten Harness in den Zustand zurück, in dem er
sich vor dem aufgezeichneten Installationsdurchlauf befand — standardmäßig dem
neuesten oder dem durch --install-id benannten. Dabei arbeitet es den
Ledger-Eintrag dieser Installation ab, die neueste Änderung zuerst, und:
- stellt jede Datei und jedes Verzeichnis, die die Installation überschrieben hat, aus der von der Installation erfassten Sicherung an ihrem aufgezeichneten Pfad wieder her (ein Verzeichnis, das die Installation ersetzt hat, wird exakt wiederhergestellt, ohne die Dateien, die die Installation ihm hinzugefügt hat);
- entfernt jede Datei und jedes Verzeichnis, die die Installation angelegt hat, und stellt jeden Pfad des veralteten Layouts wieder her, den die Installation beseitigt hat;
- entfernt die gemeinsamen Datenspeicher (
memory,contexts,learning), die die Installation angelegt hat, sofern nicht ein anderer installierter Harness sie noch verwendet; - entfernt die Verzeichnisse, die die Installation angelegt hat, sobald sie leer sind.
Eine Datei oder ein Ordner in Ihrem Home-Verzeichnis, die bzw. den auch andere
Installationen verwenden (ein Skills-Ordner oder ~/.config/apothem/), wird wie
die gemeinsamen Datenspeicher behandelt: Rollback behält sie bzw. ihn, solange
eine andere Installation sie bzw. ihn noch aufführt, und stellt sie bzw. ihn nur
für die letzte Installation, die sie bzw. ihn verwendet, wieder her oder entfernt
sie bzw. ihn. Ein Ordner, den diese Installation bereits vorgefunden hat (ein
zweites Werkzeug, das nach dem ersten installiert wurde), wird mit der letzten
Installation entfernt, die ihn verwendet, wenn eine Installation ihn angelegt
hat, die ihn inzwischen freigegeben hat, sodass das Zurücksetzen jedes Werkzeugs
nichts zurücklässt. Wenn sich der Eintrag einer Installation, die den Ordner
verwenden könnte, nicht lesen lässt, bricht Rollback mit einem Fehler ab, bevor
es etwas ändert, und schreibt keinen rollback-Eintrag; reparieren Sie den
Eintrag und führen Sie den Befehl erneut aus.
Alles, was rollback entfernt oder ersetzt, wird zuerst in die
Apothem-Sicherungswurzel (~/.apothem/backups/) kopiert, sodass sich ein
Rollback selbst von Hand rückgängig machen lässt. Anschließend hängt Rollback
einen rollback-Eintrag an das Harness-Ledger an. Das Zurücksetzen einer
älteren Installation stellt nur die Ziele, die diese ältere Installation erfasst
hat, wieder her oder entfernt sie, und nimmt jede spätere Installation an
derselben Wurzel aus den aktiven Installationen des Ledgers heraus. Dateien, die
eine spätere Installation außerhalb dieser Ziele hinzugefügt hat, bleiben an
ihrem Ort.
Das Ledger behält die neuesten 10 Installationseinträge pro Installationswurzel
(mit den Sicherungen, auf die sie verweisen); eine ältere Installation lässt
sich nicht mehr per ID zurücksetzen und meldet rollback.no_record.
apothem backups prune senkt diese Grenze bei
Bedarf und entfernt niemals die Sicherung, aus der die Wiederherstellung für die
neueste Installation erfolgt.
Einträge, die ein Apothem-Release geschrieben hat, bevor dieses Verhalten hinzugefügt wurde, führen nicht auf, welche Dateien die Installation angelegt hat; das Zurücksetzen eines solchen Eintrags stellt nur die überschriebenen Dateien wieder her.
Pro Harness wird eine Bestätigung abgefragt, sofern nicht --yes angegeben
ist. Wenn keine Abfrage möglich ist — bei --format json (der Abfragetext würde
das einzelne JSON-Dokument beschädigen) oder in einer nicht interaktiven Shell
(kein TTY) —, verweigert der Befehl den Vorgang von vornherein mit einem
strukturierten rollback.confirmation_required-Fehler (Exit-Code 1), sofern
nicht --yes angegeben ist. --install-id und --last wählen den
Installationsdurchlauf aus und schließen sich gegenseitig aus.
Ein Rollback mit --harness all ist bewusst erschöpfend: Er umfasst jeden registrierten Harness, einschließlich derer, die exclude_harnesses des Profils bei der Installation überspringt. Das Wiederherstellen des Zustands vor der Installation ist ein Aufräumvorgang; daher erreicht er auch Einträge, die eine zuvor breiter angelegte Installation hinterlassen haben kann. Ein Harness ohne aufgezeichnete Installation schlägt als Zeile mit "outcome": "error" in results fehl (siehe JSON-Ausgabe), und der Durchlauf wird mit den übrigen Harnesses fortgesetzt. Der Befehl endet dann mit Exit-Code 1, wenn nichts zurückgesetzt wurde, oder mit Exit-Code 2 (Teilergebnis), wenn mindestens ein Ziel zurückgesetzt und zugleich ein Fehler verzeichnet wurde.
Optionen
| Option | Beschreibung |
|---|---|
--harness NAME | Zurückzusetzender Harness-Adapter oder all für die registry-weite Menge (erforderlich). |
--install-id ULID | Setzt den benannten Installationsdurchlauf zurück. Standardmäßig die neueste aufgezeichnete Installation. |
--last | Setzt die neueste aufgezeichnete Installation zurück (der Standard; die explizite Form). Schließt sich mit --install-id gegenseitig aus. |
--yes | Überspringt die Bestätigungsabfrage pro Harness. |
--project PATH | Projektwurzel für Harnesses mit Projektgeltungsbereich. Erforderlich, wenn die ausgewählte Menge Adapter mit Projektgeltungsbereich enthält. |
--quiet, -q | Unterdrückt informative Ausgaben; nur Fehler werden ausgegeben. |
--verbose, -v | Gibt zusätzliche Diagnoseausgaben aus. |
--format plain|json | Ausgabeformat (Standard: plain). |
--json | Kurzform für --format json. |
--no-color | Deaktiviert ANSI-Farbcodes in der Ausgabe. |
-h, --help | Zeigt die Hilfe an und beendet den Befehl. |
JSON-Ausgabe
Das Beispiel ist der äußere Rahmen für einen einzelnen, benannten Harness. Bei --harness all hat harness den Wert all, output_path den Wert null, und results enthält die Zeilen jedes ausgewählten Harness.
{
"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"
}Jedes wiederhergestellte oder entfernte Ziel erscheint in results mit
"operation": "rollback" und einem outcome von created oder updated (und
in files_written); die message gibt an, ob der Pfad wiederhergestellt oder
entfernt wurde. Eine fehlgeschlagene Wiederherstellung (zum Beispiel bei einer
gelöschten Sicherung) ist "outcome": "error". Eine Installation, die keine
Änderungen aufgezeichnet hat, wird mit "outcome": "skipped" gemeldet. Wenn für
einen einzelnen benannten Harness kein passender Installationseintrag existiert,
meldet der Befehl einen rollback.no_record-Fehler mit "status": "error". Bei
--harness all ist ein Harness ohne passenden Eintrag stattdessen eine Zeile mit
"outcome": "error" in results.
Beispiele
apothem rollback --harness claude-code --last
apothem rollback --harness claude-code --install-id 01J9Z… --yes
apothem rollback --harness cursor --project . --last --jsonExit-Codes
| Code | Bedeutung |
|---|---|
| 0 | Erfolgreich zurückgesetzt oder nichts zurückzusetzen (die Installation hat keine Änderungen aufgezeichnet) |
| 1 | Erwarteter Fehler — kein Installationseintrag, widersprüchliche Selektoren, unbekannter Harness, fehlende Projektwurzel oder abgelehnte bzw. nicht verfügbare Bestätigung (nicht interaktiver oder JSON-Modus ohne --yes) |
| 2 | Teilergebnis — mindestens ein Ziel wurde zurückgesetzt, und zusätzlich wurde ein Fehlschlag aufgezeichnet (eine fehlgeschlagene Wiederherstellung oder, bei --harness all, ein Harness ohne Installationseintrag) |
| 64 | Verwendungsfehler: eine unbekannte Option oder ein unbekannter Befehl oder ein fehlender oder ungültiger Optionswert. Unter --json ist der Fehler ein JSON-Umschlag mit dem Code cli.usage. |
Siehe auch
- apothem install — installiert eine Harness-Konfiguration
- apothem update — installiert erneut aus dem aktuellen gemeinsamen Profil
- apothem uninstall — entfernt eine Harness-Konfiguration
- apothem status — meldet Installations-, Verifizierungs- und Drift-Zustand