Rollback
Versiona automáticamente los archivos del espacio de trabajo durante las tareas de IA. Explora sugerencias de IA de forma segura y experimenta con cambios, y recupera fácilmente los cambios no deseados.
Qué es el rollback
El rollback te permite:
- Experimentar de forma segura con cambios sugeridos por IA
- Recuperarte fácilmente de cambios no deseados
- Comparar diferentes enfoques de implementación
- Volver a estados anteriores del proyecto sin perder trabajo
Cómo funciona el rollback
Bob captura instantáneas de archivos durante la ejecución de tareas, separadas de tu sistema de control de versiones principal. Estas instantáneas se crean automáticamente antes de los cambios de archivos y aseguran que siempre puedas deshacer cambios no deseados.
Las instantáneas se registran cuando las tareas comienzan y antes de que ocurran cambios en archivos.
Trabajar con rollback
El rollback está integrado directamente en tu flujo de trabajo a través de la interfaz de chat y aparece directamente en tu historial de chat. Las instantáneas se crean antes de los cambios de archivos y permiten deshacer fácilmente cualquier cambio.
Cada instantánea ofrece dos funciones principales que siempre están disponibles tanto en el historial de chat como en el menú de rollback:
Ver diferencias
Para ver qué archivos cambiaron dentro de una tarea:
- Después de que Bob haya editado archivos, la vista Archivos modificados aparecerá colapsada.
- Puedes hacer clic para expandir.
- Revisa las diferencias en la vista:
- Usa Mostrar todo para ver todos los archivos modificados en una tarea
- Puedes hacer clic en un archivo específico para ver los cambios
Restaurar una instantánea
Las opciones de restauración siempre son visibles en los botones y diálogos de rollback, independientemente de si se detectan cambios. Esto asegura que siempre puedas volver a cualquier estado.
Para restaurar un proyecto a un estado anterior:
- Pasa el cursor sobre cualquier mensaje de usuario y usa el botón de rollback, que restaurará los archivos modificados al estado anterior a ese mensaje.
- Haz clic en el botón de rollback en los archivos individuales en la vista Archivos modificados. Esto le informará a Bob que revertiste un archivo.
Limitaciones
- Alcance: El rollback solo captura cambios realizados durante tareas activas de Bob.
- Cambios externos: Los cambios fuera de las tareas (ediciones manuales, otras herramientas) no están incluidos.
- Archivos grandes: Los archivos binarios muy grandes pueden afectar el rendimiento.
- Trabajo no guardado: La restauración sobrescribe cualquier cambio no guardado en tu espacio de trabajo.
- Temporización: Las instantáneas se crean antes de aplicar cambios, proporcionando una red de seguridad para cualquier cambio.
- Uso de memoria: Las instantáneas se acumulan con el tiempo y pueden consumir memoria significativa, especialmente para proyectos grandes o tareas de larga duración. Si tienes muchas tareas antiguas con instantáneas, considera eliminarlas periódicamente para liberar memoria. Puedes hacer esto eliminando conversaciones de tareas antiguas, lo que eliminará sus instantáneas asociadas.
Implementación técnica
Arquitectura de rollback
El sistema de rollback consiste en:
- Servicio de rollback: Maneja operaciones de archivos y gestión de estado mediante:
- Creación y almacenamiento de instantáneas
- Cálculo de diferencias
- Restauración de estado
- Componentes de UI: Elementos de interfaz mostrados en el chat que permiten la interacción con el rollback.
Proceso de restauración
Cuando se ejecuta la restauración, Bob:
- Realiza un reset al momento especificado en una tarea determinada.
- Actualiza el estado interno de seguimiento de rollback.
Tipo de almacenamiento
El rollback está vinculado a tareas, lo que significa que cada instantánea es específica de una sola tarea.
Cálculo de diferencias
La comparación de rollback usa las capacidades de diff subyacentes de Git para producir diferencias de archivos estructuradas:
- Los archivos modificados muestran cambios línea por línea.
- Los archivos binarios se detectan y manejan adecuadamente.
- La detección de renombramientos puede ser limitada; los diffs se centran en cambios de contenido de archivos entre instantáneas.
- La creación y eliminación de archivos se identifican claramente.
Exclusión de archivos y patrones de ignorar
El sistema de rollback usa exclusión inteligente de archivos para rastrear solo archivos relevantes.
Exclusiones integradas
El sistema tiene patrones de exclusión integrados que ignoran automáticamente:
- Artefactos de compilación y directorios de dependencias (
node_modules/,dist/,build/). - Archivos multimedia y recursos binarios (imágenes, videos, audio).
- Archivos de caché y temporales (
.cache/,.tmp/,.bak). - Archivos de configuración con información sensible (
.env). - Archivos de datos grandes (archivos comprimidos, ejecutables, binarios).
- Archivos de base de datos y registros.
Soporte de .gitignore
El sistema de rollback respeta los patrones de .gitignore en tu espacio de trabajo:
- Los archivos excluidos por
.gitignoreno activan la creación de instantáneas. - Los archivos excluidos no aparecen en los diffs de rollback.
- Las reglas estándar de ignorar de Git se aplican al preparar cambios de archivos.
Comportamiento de .bobignore
El archivo .bobignore (que controla el acceso de IA a archivos) está separado del seguimiento de rollback:
- Los archivos excluidos por
.bobignorepero no por.gitignoreaún son capturados por el rollback. - Los cambios en archivos no accesibles para IA aún pueden restaurarse a través del rollback.
Esta separación es intencional. .bobignore restringe a qué archivos puede acceder la IA, no qué archivos deben rastrearse para el historial de versiones.