glosario

¿qué es el aislamiento con worktrees?

TL;DR

El aislamiento con worktrees significa que cada agente de IA tiene su propia copia de tu código, en su propia rama y en su propia carpeta. Así, los agentes pueden editar los mismos archivos a la vez sin sobrescribirse. Tu checkout principal no se toca hasta que haces merge. Pane lo configura automáticamente para cada pane.

El aislamiento con worktrees significa que cada agente de IA trabaja en su propia copia de tu código, en su propia rama y en su propia carpeta. Así, varios agentes pueden cambiar los mismos archivos a la vez sin sobrescribirse, y tu checkout principal no se toca hasta que haces merge.

el problema

Los agentes que comparten una carpeta acabarán sobrescribiéndose.

Le pides al agente A que reescriba la página de login y al agente B que añada un flujo de registro. Los dos necesitan cambiar auth.ts. En una carpeta compartida, el agente B guarda su versión y sustituye sin avisar las ediciones del agente A. Ningún agente se da cuenta, y tú te enteras más tarde.

Por eso tener varios agentes en un mismo directorio es jugársela. Funciona hasta que dos de ellos tocan el mismo archivo, y entonces se pierde el trabajo de alguien.

la solución

Un worktree por agente: archivos y ramas separados, el mismo historial.

Dale a cada agente su propio worktree de git: una carpeta separada con una rama separada, que comparte el mismo historial. El agente A trabaja en uno, el agente B en otro, y los dos pueden editar auth.ts porque están editando copias distintas.

my-project/                 ← main branch, untouched
my-project/worktrees/
  ├─ login-rewrite/         ← agent A, branch login-rewrite
  └─ signup-flow/           ← agent B, branch signup-flow

qué queda aislado

Los archivos, la rama y la shell están separados. El historial, el remoto y los objetos de git se comparten.

aisladocompartido
Archivos y cambios sin confirmarHistorial y commits de git
RamaRemoto (origin)
Estado de la shell y variables de entornoConfiguración de git
Directorio de trabajoAlmacén de objetos, ahorra espacio

cómo lo hace pane

Pane prepara y limpia automáticamente un worktree para cada pane.

Cuando creas un pane, Pane le entrega un worktree que ha preparado de antemano, le da una rama nueva, copia tus archivos .env, los ajustes de los agentes y node_modules, e inicia allí el agente. Cuando archivas el pane, Pane comprueba si hay trabajo sin guardar y elimina el worktree. Nunca tienes que escribir git worktree add tú mismo.

lo que el aislamiento no cubre

Los worktrees mantienen separados los archivos de los agentes. No limitan lo que un agente puede hacer.

Un worktree es una carpeta, no un entorno aislado. Los agentes siguen ejecutándose con los permisos de tu usuario, así que uno podría leer los archivos de otro worktree por su ruta, acceder a la red o cambiar cosas fuera del repo. En la práctica, los agentes se quedan en su carpeta de trabajo, pero si necesitas límites estrictos, ejecútalos en un contenedor o una VM.

Algunas cosas se comparten fuera de git: una base de datos que usa tu app, el puerto de un servidor de desarrollo, una caché global de paquetes. Pane le da a cada pane su propio bloque de puertos en PANE_PORT; para las bases de datos, usa un script de configuración o una herramienta que cree una por worktree.

Fuentes

Correcciones
Si algo de lo que hay aquí es incorrecto o está desactualizado, avísanos y lo corregiremos y actualizaremos la fecha de arriba. Abre una incidencia en GitHub
Fuentes

preguntas frecuentes

o
Descargar*
Aviso de Windows SmartScreenLas descargas directas pueden mostrar un aviso de SmartScreen mientras Pane no esté firmado. Pane es totalmente de código abierto. Puedes revisar el código y compilarlo tú mismo.1. Haz clic en Más información2. Haz clic en Ejecutar de todas formas3. Continúa con la instalaciónLa instalación con PowerShell descarga la versión oficial directamente y evita la mayoría de los problemas del navegador.instalación global con npm
Pega el comando en PowerShell.Linux

Por Parsa Khazaeepoul, cofundador de Pane. .