glossaire

qu’est-ce que l’isolation par worktree ?

TL;DR

L’isolation par worktree signifie que chaque agent IA reçoit sa propre copie de votre code, sur sa propre branche, dans son propre dossier. Les agents peuvent alors modifier les mêmes fichiers en même temps sans s’écraser mutuellement. Votre copie de travail principale reste intacte jusqu’au merge. Pane met cela en place automatiquement pour chaque pane.

L’isolation par worktree signifie que chaque agent IA travaille dans sa propre copie de votre code, sur sa propre branche, dans son propre dossier. Plusieurs agents peuvent alors modifier les mêmes fichiers en même temps sans écraser le travail des autres, et votre copie de travail principale reste intacte jusqu’au merge.

le problème

Des agents qui partagent un dossier finiront par écraser le travail les uns des autres.

Vous demandez à l’agent A de réécrire la page de connexion et à l’agent B d’ajouter un parcours d’inscription. Tous deux doivent modifier auth.ts. Dans un dossier partagé, l’agent B enregistre sa version et remplace sans bruit les modifications de l’agent A. Aucun des deux ne s’en rend compte, et vous le découvrez plus tard.

C’est pourquoi faire travailler plusieurs agents dans un même dossier est un pari. Ça marche jusqu’à ce que deux d’entre eux touchent au même fichier. Là, le travail de quelqu’un est perdu.

la solution

Un worktree par agent : fichiers et branches séparés, même historique.

Donnez à chaque agent son propre worktree git : un dossier séparé avec une branche séparée, qui partage le même historique. L’agent A travaille dans l’un, l’agent B dans l’autre, et les deux peuvent modifier auth.ts parce qu’ils modifient des copies différentes.

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

ce qui est isolé

Les fichiers, la branche et le shell sont séparés. L’historique, le remote et les objets git sont partagés.

isolépartagé
Fichiers et modifications non validéesHistorique git et commits
BrancheDépôt distant (origin)
État du shell et variables d’environnementConfiguration git
Dossier de travailStockage des objets, pour économiser de l’espace disque

comment pane s’en charge

Pane crée et nettoie automatiquement un worktree pour chaque pane.

Quand vous créez un pane, Pane lui attribue un worktree préparé à l’avance, lui donne une nouvelle branche, y copie vos fichiers .env, les réglages des agents et node_modules, puis y lance l’agent. Quand vous archivez le pane, Pane vérifie qu’aucun travail n’est perdu et supprime le worktree. Vous ne tapez jamais git worktree add vous-même.

ce que l’isolation ne couvre pas

Les worktrees séparent les fichiers des agents. Ils ne limitent pas ce qu’un agent peut faire.

Un worktree est un dossier, pas un bac à sable. Les agents tournent toujours avec les permissions de votre utilisateur. Un agent pourrait donc lire les fichiers d’un autre worktree à partir de leur chemin, accéder au réseau ou modifier des choses hors du dépôt. En pratique, les agents restent dans leur dossier de travail. Mais si vous avez besoin de limites strictes, lancez-les dans un conteneur ou une VM.

Certaines choses sont partagées en dehors de git : une base de données utilisée par votre app, un port de serveur de développement, un cache global de paquets. Pane donne à chaque pane son propre bloc de ports dans PANE_PORT. Pour les bases de données, utilisez un script de configuration ou un outil qui en crée une par worktree.

Sources

Corrections
Si quelque chose ici est faux ou obsolète, dites-le-nous. Nous corrigerons et mettrons à jour la date en haut de la page. Ouvrir une issue sur GitHub
Sources

questions fréquentes

ou
Télécharger*
Alerte Windows SmartScreenLes téléchargements directs peuvent afficher une alerte SmartScreen tant que Pane n'est pas signé. Pane est entièrement open source. Vous pouvez vérifier le code et le compiler vous-même.1. Cliquez sur Informations complémentaires2. Cliquez sur Exécuter quand même3. Continuez l'installationL'installation PowerShell télécharge directement la version officielle et évite la plupart des blocages du navigateur.installation globale npm
Collez cette commande dans PowerShell.Linux

Par Parsa Khazaeepoul, cofondateur de Pane. .