glossário

o que é isolamento com worktrees?

TL;DR

Isolamento com worktrees significa que cada agente de IA ganha sua própria cópia do código, na sua própria branch, na sua própria pasta. Assim, os agentes podem editar os mesmos arquivos ao mesmo tempo sem sobrescrever um ao outro. Seu checkout principal fica intocado até você fazer merge. O Pane configura isso automaticamente para cada pane.

Isolamento com worktrees significa que cada agente de IA trabalha na sua própria cópia do código, na sua própria branch, na sua própria pasta. Assim, vários agentes podem mudar os mesmos arquivos ao mesmo tempo sem sobrescrever um ao outro, e seu checkout principal fica intocado até você fazer merge.

o problema

Agentes que compartilham uma pasta vão acabar sobrescrevendo um ao outro.

Você pede ao agente A para reescrever a página de login e ao agente B para adicionar um fluxo de cadastro. Os dois precisam mudar auth.ts. Numa pasta compartilhada, o agente B salva a versão dele e substitui sem aviso as edições do agente A. Nenhum dos agentes percebe, e você descobre depois.

É por isso que vários agentes num diretório é uma aposta. Funciona até dois deles mexerem no mesmo arquivo, e aí o trabalho de alguém se perde.

a solução

Uma worktree por agente: arquivos e branches separados, mesmo histórico.

Dê a cada agente sua própria git worktree: uma pasta separada com uma branch separada, compartilhando o mesmo histórico. O agente A trabalha numa, o agente B em outra, e os dois podem editar auth.ts porque estão editando cópias diferentes.

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

o que fica isolado

Arquivos, branch e shell são separados. Histórico, remoto e objetos do git são compartilhados.

isoladocompartilhado
Arquivos e mudanças não commitadasHistórico e commits do git
BranchRepositório remoto (origin)
Estado do shell e variáveis de ambienteConfiguração do git
Pasta de trabalhoArmazenamento de objetos do git, que economiza espaço em disco

como o pane faz isso

O Pane cria e limpa uma worktree para cada pane automaticamente.

Quando você cria um pane, o Pane entrega a ele uma worktree preparada com antecedência, dá a ele uma branch nova, copia seus arquivos .env, configurações de agentes e node_modules, e inicia o agente lá. Quando você arquiva o pane, o Pane verifica se há trabalho não salvo e remove a worktree. Você nunca digita git worktree add por conta própria.

o que o isolamento não cobre

Worktrees mantêm os arquivos dos agentes separados. Elas não colocam em sandbox o que um agente pode fazer.

Uma worktree é uma pasta, não um sandbox. Os agentes continuam rodando com as permissões do seu usuário, então um deles poderia ler os arquivos de outra worktree pelo caminho, acessar a rede ou mudar coisas fora do repositório. Na prática, os agentes ficam na sua pasta de trabalho, mas se você precisa de limites rígidos, rode-os num contêiner ou numa VM.

Algumas coisas são compartilhadas fora do git: um banco de dados que seu app usa, a porta de um servidor de desenvolvimento, um cache global de pacotes. O Pane dá a cada pane seu próprio bloco de portas em PANE_PORT; para bancos de dados, use um script de configuração ou uma ferramenta que crie um por worktree.

Fontes

Correções
Se algo aqui estiver errado ou desatualizado, nos avise e vamos corrigir e atualizar a data no topo. Abra uma issue no GitHub
Fontes

perguntas frequentes

ou
Baixar*
Aviso do Windows SmartScreenO download direto pode exibir um aviso do SmartScreen enquanto o Pane não é assinado. O Pane é totalmente open source. Você pode auditar o código e compilar por conta própria.1. Clique em Mais informações2. Clique em Executar assim mesmo3. Continue a instalaçãoA instalação pelo PowerShell baixa a versão oficial diretamente e evita a maioria dos problemas com downloads pelo navegador.instalação global via npm
Cole isso no PowerShell.Linux

Por Parsa Khazaeepoul, cofundador do Pane. .