Skip to content
Apothem
Referencia de la CLI

rollback

Referencia de la CLI para el comando apothem rollback.

Restaura un entorno al estado anterior a su instalación registrada.

Sinopsis

apothem rollback --harness NAME|all [--install-id ULID | --last] [--yes]
                 [--project PATH]
                 [--quiet|-q] [--verbose|-v]
                 [--format plain|json] [--json] [--no-color]

rollback devuelve cada entorno seleccionado al estado en el que estaba antes de la pasada de instalación registrada: la más reciente por defecto, o la indicada por --install-id. Al recorrer el registro de esa instalación en el libro mayor, empezando por el cambio más reciente, el comando:

  • restaura cada archivo y cada directorio que la instalación sobrescribió a partir de la copia de seguridad que la instalación capturó, en su ruta registrada (un directorio que la instalación reemplazó se restaura exactamente, sin los archivos que la instalación agregó en él);
  • elimina cada archivo y cada directorio que la instalación creó, y devuelve a su lugar cualquier ruta de la estructura heredada que la instalación barrió;
  • elimina los almacenes de datos compartidos (memory, contexts, learning) que la instalación creó, a menos que otro entorno instalado todavía los use;
  • elimina los directorios que la instalación creó, una vez que están vacíos.

Un archivo o una carpeta de tu directorio personal que otras instalaciones también usan (una carpeta de skills, o ~/.config/apothem/) se trata como los almacenes de datos compartidos: rollback lo conserva mientras otra instalación todavía lo liste, y lo restaura o elimina solo para la última instalación que lo usa. Una carpeta que esta instalación encontró ya en su lugar (una segunda herramienta instalada después de la primera) desaparece con la última instalación que la usa cuando la creó una instalación que desde entonces la ha soltado, de modo que revertir todas las herramientas no deja nada atrás. Cuando no se puede leer el registro de una instalación que podría usar la carpeta, rollback se detiene con un error antes de cambiar nada y no escribe ningún registro rollback; repara el registro y vuelve a ejecutarlo.

Todo lo que rollback elimina o reemplaza se copia primero en la raíz de copias de seguridad de Apothem (~/.apothem/backups/), de modo que una reversión puede a su vez deshacerse a mano. A continuación, rollback agrega un registro rollback al libro mayor del entorno. Revertir una instalación anterior restaura o elimina solo los destinos que esa instalación anterior registró, y descarta cada instalación posterior de las instalaciones activas del libro mayor en esa misma raíz. Los archivos que una instalación posterior agregó fuera de esos destinos se mantienen en su lugar.

El libro mayor conserva los 10 registros de instalación más recientes por raíz de instalación (con las copias de seguridad a las que hacen referencia); una instalación más antigua ya no puede revertirse por id e informa rollback.no_record. apothem backups prune reduce ese límite a petición, y nunca elimina la copia de seguridad desde la cual restaura la instalación más reciente.

Los registros escritos por un lanzamiento de Apothem anterior a que se agregara este comportamiento no indican qué archivos creó la instalación; revertir uno de esos registros restaura solo los archivos sobrescritos.

Se solicita confirmación por cada entorno, a menos que se proporcione --yes. Cuando no es posible mostrar una solicitud —--format json (el texto de la solicitud corrompería el único documento JSON) o una shell no interactiva (sin TTY)—, el comando se niega de antemano con un error estructurado rollback.confirmation_required (código de salida 1), a menos que se proporcione --yes. --install-id y --last seleccionan la pasada de instalación y son mutuamente excluyentes.

Una reversión con --harness all es exhaustiva de forma deliberada: abarca cada entorno registrado, incluidos los que exclude_harnesses del perfil omite durante la instalación. Restaurar el estado previo a la instalación es una operación de limpieza, así que alcanza los registros que una instalación anterior de mayor alcance pueda haber dejado. Un entorno sin ninguna instalación registrada falla como una fila "outcome": "error" en results (consulta la salida JSON), y la ejecución continúa con los entornos restantes. Después, el comando termina con código 1 si no se revirtió nada, o con código 2 (resultado parcial) cuando se revirtió al menos un destino y, además, se registró un fallo.

Opciones

OpciónDescripción
--harness NAMEAdaptador de entorno que se revierte, o all para el conjunto de todo el registro (obligatorio).
--install-id ULIDRevierte la pasada de instalación indicada. Por defecto, la instalación registrada más reciente.
--lastRevierte la instalación registrada más reciente (el valor por defecto, en su forma explícita). Mutuamente excluyente con --install-id.
--yesOmite la solicitud de confirmación por entorno.
--project PATHRaíz del proyecto para los entornos con alcance de proyecto. Obligatoria cuando el conjunto seleccionado incluye adaptadores con alcance de proyecto.
--quiet, -qSuprime la salida informativa; solo se emiten errores.
--verbose, -vEmite salida de diagnóstico adicional.
--format plain|jsonFormato de salida (por defecto: plain).
--jsonAbreviatura de --format json.
--no-colorDesactiva los códigos de color ANSI en la salida.
-h, --helpMuestra la ayuda y sale.

Salida JSON

El ejemplo corresponde al objeto de salida de un único entorno con nombre. Con --harness all, harness vale all, output_path vale null y results contiene las filas de cada entorno seleccionado.

{
  "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"
}

Cada destino restaurado o eliminado aparece en results con "operation": "rollback" y un outcome de created o updated (y en files_written); el message indica si la ruta se restauró o se eliminó. Una restauración fallida (por ejemplo, una copia de seguridad que se borró) es "outcome": "error". Una instalación que no registró cambios se informa con "outcome": "skipped". Cuando no existe ningún registro de instalación coincidente para un único entorno indicado por su nombre, el comando informa un error rollback.no_record con "status": "error". Con --harness all, en cambio, un entorno sin ningún registro coincidente es una fila "outcome": "error" en results.

Ejemplos

apothem rollback --harness claude-code --last
apothem rollback --harness claude-code --install-id 01J9Z… --yes
apothem rollback --harness cursor --project . --last --json

Códigos de salida

CódigoSignificado
0Revertido correctamente, o nada que revertir (la instalación no registró cambios)
1Error esperado: no hay registro de instalación, selectores en conflicto, entorno desconocido, raíz del proyecto ausente, o confirmación rechazada o no disponible (modo no interactivo o JSON sin --yes)
2Resultado parcial: se revirtió al menos un destino y también se registró un fallo (una restauración fallida o, con --harness all, un entorno sin registro de instalación)
64Error de uso: una opción o un comando desconocidos, o un valor de opción ausente o no válido. Con --json, el error es un sobre JSON con el código cli.usage.

Véase también

On this page