Skip to content

Cloud: replace git worktree with git clone for session isolation #140

@kirich1409

Description

@kirich1409

Описание

Заменить git worktree add на git clone для изоляции сессий на сервере. Каждая cloud-сессия должна получать полный клон репозитория.

Контекст

Из архитектурного решения D4 (обновлено): cloud = 1 session = 1 git clone = 1 container. Причины:

  • Worktree не полная копия — можно потерять данные
  • Lock-файлы между worktree могут конфликтовать
  • Отдельные клоны проще в управлении — полная изоляция

Изменения

Модуль: runner/src/project_manager.rs, runner/src/cloud_session_manager.rs

  • ProjectManager.add_worktree() → заменить на git clone для сессий
  • Клон из bare repo проекта (или из project.local_path)
  • Checkout нужной ветки в клоне
  • При удалении сессии — удалять клон
  • ProjectManager.remove_worktree() → удаление директории клона

Dependencies

Acceptance Criteria

  • Новые сессии создают отдельный git clone (не worktree)
  • Каждый клон изолирован — нет shared .git
  • При удалении сессии директория клона удаляется
  • Lock-файлы одной сессии не влияют на другие
  • cargo test проходит
  • cargo clippy -- -D warnings чисто
  • Smoke test: создать 2 сессии на разных ветках, работать параллельно

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions