глоссарий

что такое изоляция worktree?

TL;DR

Изоляция через worktree означает, что каждый ИИ-агент получает свою копию вашего кода, в своей ветке и в своей папке. Тогда агенты могут править одни и те же файлы одновременно, не перезаписывая друг друга. Ваш основной checkout остаётся нетронутым, пока вы не сделаете merge. Pane настраивает это автоматически для каждой панели.

Изоляция через worktree означает, что каждый ИИ-агент работает в своей копии вашего кода, в своей ветке и в своей папке. Тогда несколько агентов могут менять одни и те же файлы одновременно, не перезаписывая друг друга, а ваш основной checkout остаётся нетронутым, пока вы не сделаете merge.

проблема

Агенты в одной общей папке рано или поздно перезапишут друг друга.

Вы просите агента A переписать страницу входа, а агента B добавить регистрацию. Обоим нужно изменить auth.ts. В одной общей папке агент B сохраняет свою версию и молча затирает правки агента A. Ни один агент этого не замечает, а вы узнаёте позже.

Поэтому несколько агентов в одном каталоге это лотерея. Всё работает, пока двое из них не тронут один файл, и тогда чья-то работа теряется.

решение

Один worktree на агента: раздельные файлы и ветки, общая история.

Дайте каждому агенту свой git worktree: отдельную папку с отдельной веткой и общей историей. Агент A работает в одном, агент B в другом, и оба могут править auth.ts, потому что правят разные копии.

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

что изолировано

Файлы, ветка и оболочка раздельные. История, remote и объекты git общие.

изолированообщее
Файлы и незакоммиченные измененияGit-история и коммиты
ВеткаУдалённый репозиторий (origin)
Состояние shell и переменные окруженияКонфигурация git
Рабочий каталогХранилище объектов (экономит место)

как Pane это делает

Pane автоматически создаёт и убирает worktree для каждой панели.

Когда вы создаёте панель, Pane выдаёт ей заранее подготовленный worktree, создаёт новую ветку, копирует ваши файлы .env, настройки агентов и node_modules и запускает там агента. Когда вы архивируете панель, Pane проверяет, нет ли несохранённой работы, и удаляет worktree. Вам никогда не придётся вводить git worktree add самим.

что изоляция не покрывает

Worktree разделяют файлы агентов. Они не ограничивают то, что агент может делать.

Worktree это папка, а не песочница. Агенты по-прежнему работают с правами вашего пользователя, поэтому один из них может прочитать файлы другого worktree по пути, выйти в сеть или изменить что-то за пределами репозитория. На практике агенты остаются в своей рабочей папке, но если вам нужны жёсткие ограничения, запускайте их в контейнере или виртуальной машине.

Некоторые вещи общие за пределами git: база данных вашего приложения, порт сервера разработки, глобальный кеш пакетов. Pane выдаёт каждой панели свой блок портов в PANE_PORT; для баз данных используйте скрипт настройки или инструмент, который создаёт отдельную базу для каждого worktree.

Источники

Исправления
Если что-то здесь неверно или устарело, сообщите нам, и мы исправим это и обновим дату вверху. Открыть задачу на GitHub
Источники

частые вопросы

или
Скачать*
Предупреждение Windows SmartScreenПри прямом скачивании может появиться предупреждение SmartScreen, пока у Pane нет подписи. Исходный код Pane полностью открыт. Вы можете проверить его или собрать приложение сами.1. Нажмите «Подробнее»2. Нажмите «Выполнить в любом случае»3. Продолжите установкуУстановка через PowerShell скачивает официальный релиз напрямую и позволяет избежать большинства проблем с загрузкой через браузер.глобальная установка через npm
Вставьте команду в PowerShell.Linux

Автор: Parsa Khazaeepoul, сооснователь Pane. .