# 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` — переиспользуются, без изменений значений.
