Saltar al contenido
ColliePWA

07/Documentation

Cambios: ver qué modificó un agente

Qué cambió un agente en su espacio de trabajo: los archivos modificados, sus diffs y el último commit, desde el panel o el panel de control. git de solo lectura, repositorios anidados y los dos ajustes que determinan el alcance de la búsqueda

La vista Cambios muestra lo que cambió en los repositorios git de un espacio de trabajo desde la última confirmación. Se lee en el teléfono mientras el agente trabaja: los archivos modificados, sus líneas añadidas y eliminadas, y el diff de cada archivo con resaltado de sintaxis. Si el agente ya realizó una confirmación, muestra la última confirmación.

Nota. Cambios solo lee. Nunca prepara, confirma, edita ni descarga un archivo (abajo).

Abrirla

Hay dos formas de acceder.

  • Desde un panel. Toque el botón Cambios en la barra de acciones del panel, el icono a la izquierda de la marca Switch. La lista abarca todo el espacio de trabajo del panel y marca el repositorio propio del panel.
  • Desde el panel de control. Toque Cambios en el pie de página del panel de control, junto a Paneles y Enfoque. Muestra una fila por espacio de trabajo con el recuento de archivos modificados y la suma de líneas añadidas y eliminadas. Los espacios de trabajo sin cambios permanecen en su lugar, atenuados. Toque una fila para abrir la lista de ese espacio de trabajo.

Los recuentos del panel de control se actualizan cada 5 segundos, y solo mientras la pestaña Cambios está en pantalla. La pestaña seleccionada se conserva por dispositivo.

La lista

La lista agrupa los archivos modificados por repositorio git. Cada archivo muestra su estado y sus recuentos de líneas +added −removed.

EstadoSignificado
ModificadoUn archivo rastreado cambió
AñadidoUn archivo nuevo, preparado
EliminadoUn archivo rastreado ya no existe
RenombradoUn archivo cambió de lugar; su diff indica la ruta anterior
Sin seguimientoUn archivo nuevo que git aún no rastrea
  • La base es el último commit. Los cambios preparados y no preparados se muestran juntos. Un repositorio sin commits se compara contra un árbol vacío.
  • Un archivo nuevo se muestra como líneas agregadas en su totalidad. Una carpeta nueva es una sola entrada: Collie indica que la carpeta es nueva y no lista los archivos dentro de ella. Esto mantiene fuera de la lista un node_modules recién creado.
  • Un archivo binario aparece en la lista, pero sus líneas no se muestran.
  • Este panel. Al abrir desde un panel con más de un repositorio listado, el repositorio propio del panel lleva una etiqueta Este panel. En la primera lectura, la lista se desplaza hasta él.
  • Lista o Árbol. El selector Diseño muestra los archivos como una lista plana por repositorio, o como un árbol de carpetas.
  • Filtrar archivos. El botón de filtro restringe la lista por texto de ruta y por estado. La lista indica luego cuántos de sus archivos se muestran.

Leer un diff

Toque un archivo para leer su diff. Archivo anterior y Archivo siguiente avanzan por la lista sin regresar a ella.

  • El diff muestra dos columnas de números de línea, filas coloreadas para adiciones y eliminaciones, y ajuste de línea.
  • Los lenguajes comunes tienen resaltado de sintaxis: TypeScript y JavaScript, JSON, CSS, HTML, Markdown, Python, Go, Rust, shell, YAML, TOML y más. Un archivo en otro lenguaje, o un diff de más de 2000 líneas, permanece sin formato.
  • Un diff muy extenso se detiene al alcanzar un límite y lo indica.
  • Si el agente revierte o confirma el archivo mientras se lee, el diff permanece en pantalla y su encabezado indica Sin cambios pendientes. La vista nunca salta.

El último commit

Los agentes suelen confirmar su propio trabajo, por lo que la lista puede estar vacía justo después del cambio que se desea leer. Para un repositorio sin cambios pendientes de commit, la vista ofrece Mostrar último commit.

La vista de commit muestra el asunto, el autor, la hora, el hash corto y los archivos del commit, cada uno con su propio diff. Compara el commit con su primer padre, de modo que un merge muestra lo que incorporó. Lee únicamente el commit más reciente. No hay explorador de historial.

  • Cuando el agente vuelve a confirmar, un discreto Existe un commit más reciente espera a que se toque. Los archivos en pantalla no cambian sin intervención.
  • Cuando aparecen nuevos cambios sin confirmar, Nuevos cambios sin confirmar regresa a la lista.

Se mantiene actualizado

Una pantalla de Changes abierta vuelve a leer git cada 5 segundos mientras la página permanece visible. En un diff, el archivo abierto también se lee de nuevo. Una relectura que no encuentra nada nuevo no mueve nada en pantalla: el desplazamiento, el filtro y las carpetas plegadas se mantienen tal cual.

  • Una página oculta deja de leer, y realiza una lectura cuando vuelve a ser visible.
  • El botón de actualización lee ahora.
  • Si fallan dos lecturas consecutivas, la cabecera muestra Sin actualizar y se conserva la última lista válida. La siguiente lectura correcta lo borra.

Qué carpeta y qué repositorios

La lista abarca el workspace del panel, no solo su propia carpeta, por lo que cada panel de un workspace muestra la misma lista. La cabecera indica el workspace y su carpeta. Collie selecciona esa carpeta en este orden:

OrdenCarpeta
1La propia carpeta del workspace, cuando el multiplexor conserva una: el worktree de Herdr, la carpeta de sesión de tmux
2La carpeta más profunda que contenga todos los paneles del espacio de trabajo
3La carpeta propia del panel, si las dos primeras opciones corresponden a /, a la carpeta personal o a un nivel superior

Collie localiza después el repositorio que contiene esa carpeta. También busca repositorios en las carpetas inferiores, incluso repositorios que el repositorio principal ignora. Así es como un repositorio de workspace con sus repositorios miembros ignorados en su interior sigue mostrando los cambios de cada miembro.

Dos ajustes por dispositivo controlan esa búsqueda. Ambos residen en Configuración → Dispositivo → Cambios.

AjustePredeterminadoQué hace
Buscar repositorios dentro de esta carpetaactivadoTambién lista repositorios en carpetas debajo de la carpeta del espacio de trabajo, incluso los ignorados por el repositorio principal
Profundidad de búsqueda2Cantidad de niveles de carpetas bajo la carpeta del espacio de trabajo hasta donde llega la búsqueda, de 1 a 4

La búsqueda nunca sigue un enlace simbólico. Omite las carpetas con punto y node_modules, dist, build, vendor y target. Se detiene al alcanzar 20 repositorios o 5000 entradas de carpeta.

Cuando la búsqueda se detiene al alcanzar su profundidad y hay repositorios más abajo, la lista termina con "Stopped at 2 levels, with repos further down." y un enlace a Buscar a mayor profundidad en Settings. Cuando alcanza el límite de repositorios o de entradas, la lista termina con "The list hit a limit", ya que podrían faltar archivos.

Un submódulo o un repositorio anidado que la búsqueda encuentra se muestra una sola vez, como un repositorio independiente. Un submódulo situado más allá de la profundidad se muestra como una entrada en su repositorio superior.

De solo lectura y seguro

Changes ejecuta git solo para leer y para nada más.

  • Nunca añade a stage, hace commit, edita ni hace checkout. Ni siquiera actualiza la caché del índice de git.
  • Los propios hooks, filtros, programas de diff externos y conversiones de texto de un repositorio nunca se ejecutan mientras Collie lo lee. Un agente puede haber clonado cualquier cosa y usted solo pulsó Changes.
  • Nunca accede a la red, ni siquiera para obtener un archivo faltante en un clon parcial. Dicho archivo se muestra entonces con recuentos a cero y un diff vacío.
  • Solo se entrega un diff para un archivo que el propio git listó como modificado, dentro de un repositorio encontrado por la búsqueda.

Las reglas completas se encuentran en ADR 0065.

Entre miembros de un crew

En un crew, un panel o workspace ubicado en otra máquina se lee en esa máquina. El lead reenvía la petición y el git de esa máquina responde. Dicha máquina debe ejecutar Collie 1.13.0 o posterior.

Límites

  • Los paneles de zellij no tienen botón de Changes. zellij no comunica la carpeta de un panel. La fila del panel de control para un workspace de zellij muestra "No folder".
  • Git debe estar instalado en la máquina a la que pertenece el panel.
  • Los archivos de Git LFS pueden aparecer como modificados. Con los filtros desactivados, Collie compara un archivo LFS con su puntero. Solo puede mostrar de más, nunca ocultar un cambio.
  • Un espacio de trabajo, una carpeta. Un espacio de trabajo cuyos paneles se encuentran en carpetas no relacionadas dentro de la carpeta personal lee la propia carpeta del panel solicitante en lugar de una vista combinada.

Editar esta página en GitHub

The rest of the documentation