# 07 — Инфра-требования: ORCH-073 ## Топология **Без изменений.** Один сервер (mva154), prod `orchestrator` (8500), staging `orchestrator-staging` (8501), общая SQLite, общая очередь. Новых контейнеров/портов/сервисов нет. ## Git / worktree - Новый корневой файл **`.gitattributes`** (`CHANGELOG.md merge=union`). Драйвер `union` — встроенный в git, **доп. конфигурация хоста НЕ требуется**. - Проверка применения в worktree агентов: `git check-attr merge CHANGELOG.md` → `merge: union`. Атрибут действует при 3-way merge/rebase, когда `.gitattributes` присутствует в дереве (`auto_rebase_onto_main` выполняет `git rebase origin/main` в per-branch worktree). - Самозагрузка: первая задача с `.gitattributes` своего ребейза не ускоряет (атрибут попадёт в `main` после её merge); эффект — для последующих задач. Допустимо. - Регресс-гард (`check_main_regression`) использует уже существующий per-branch worktree (`ensure_worktree` + `git fetch origin main` + `git grep origin/main`). Новых клонов/worktree нет. ## Сеть / внешние интеграции - Те же Gitea-эндпоинты: `GET /pulls`, `POST /pulls/{index}/merge`. Новых внешних вызовов нет. - Telegram/Plane — существующие хелперы alert (`send_telegram`, `set_issue_blocked`, `plane_add_comment`). Новых интеграций нет. ## Деплой self (self-hosting safety) - Прод-контейнер `orchestrator` (8500) **НЕ рестартить/не ронять** в рамках задачи. - Обязательный staging-гейт (8501) перед прод-деплоем; прод-деплой — только переводом на `Confirm Deploy` (ORCH-059). Ручной гейт не меняется. - Merge — только Gitea PR-API, без force-push в `main`. ## Конфигурация (хост `.env` / `.env.example`) - Новый ключ `regression_guard_enabled` (дефолт `true`) — задокументировать в `.env.example`. - Существующие `merge_verify_enabled`/`merge_verify_repos`/`merge_pr_timeout_s`/ `merge_verify_timeout_s` — переиспользуются, без изменений значений.