Files
claude-bot be64761654
All checks were successful
CI / test (push) Successful in 13s
CI / test (pull_request) Successful in 13s
reviewer(ET): auto-commit from reviewer run_id=178
2026-06-06 15:05:26 +00:00

4.2 KiB
Raw Permalink Blame History

type, work_item_id, verdict, version
type work_item_id verdict version
review ORCH-040 APPROVED 1

Review ORCH-040

Summary

Фикс переводит оба compose-сервиса (orchestrator, orchestrator-staging) на user: "1000:1000" (Вариант 1 из ADR-001 / adr-0005), чтобы артефакты конвейера создавались как slin:slin и git на хосте работал без ручного chown. Реализация точно соответствует ТЗ и ADR, документация (INFRA.md, CHANGELOG.md, work-item ADR-001, глобальный adr-0005) обновлена в том же PR, host-prerequisites (P-1…P-4) задокументированы. Полный прогон pytest tests/ -q501 passed. Блокеров и must-fix нет.

Findings

P0 — Blocker

  • нет

P1 — Must fix

  • нет

P2 — Should fix

  • нет

P3 — Nice to have

  • (опц.) AC-1/2/3/4/5 — это runtime/host-критерии; их фактическое PASS подтверждается на стадиях testing и deploy-staging (15-staging-log.md, staging_status:), а не ревью кода. Зафиксировано как ожидание к следующим стадиям, не как замечание к PR.

Проверка по осям

1. Соответствие ТЗ (02-trz.md §4):

  • §4.1 docker-compose.yml: оба сервиса получили user: "1000:1000" ; group_add: ["999"] сохранён (МИНА 1 — не удалён) ; SSH-маунт target /root/.ssh/home/slin/.ssh ; claude-маунты (/home/slin/.claude, .claude.json:ro) не тронуты .
  • §4.3 src/agents/launcher.py не менялся; HOME=/home/slin остаётся на стр. 326 и 513 (подтверждено grep) — согласован с новым SSH target .
  • §4.4 Dockerfile не менялся (numeric uid не требует записи в /etc/passwd, safe.directory '*' уже есть) — в полном соответствии с решением ADR .
  • §5/§6/§7: изменений API/БД/QG нет — подтверждено .

2. Соответствие ADR (ADR-001 + global adr-0005):

  • Выбран и реализован Вариант 1 ровно как описано в ADR (compose-only, без нового кода в launcher и Dockerfile) .
  • Host-prerequisites P-1…P-4 из ADR перенесены в INFRA.md как обязательная процедура Owner .
  • Нарушений глобальных ADR нет; связи с adr-0003 (staging-гейт как страховка) учтены .

3. Качество кода:

  • Изменения декларативные, с поясняющими комментариями и ссылкой на ADR .
  • Тесты tests/test_orch040_compose.py содержательные: проверяют user, сохранение group_add 999, SSH target под HOME и согласованность HOME launcher'а с маунтами (TC-01…TC-04, привязаны к AC) — не тривиальные .
  • Регресс отсутствует: pytest tests/ -q → 501 passed .

Документация

Обновлена корректно и в том же PR (golden source соблюдён, AC-8 PASS):

  • docs/operations/INFRA.md — добавлен блок «Рантайм-uid (ORCH-040)», host-prerequisites, блок volumes/SSH target приведён к /home/slin/.ssh ;
  • CHANGELOG.md — запись в разделе Fixed ;
  • docs/work-items/ORCH-040/06-adr/ADR-001-run-agents-as-host-uid.md — выбор варианта + обоснование + P-1…P-4 ;
  • глобальный docs/architecture/adr/adr-0005-container-runs-as-host-uid.md (+ запись в adr/README.md) — сквозное решение зафиксировано .

Изменения src/ Python-кода нет (правка только в docker-compose.yml + тесты), но документация всё равно обновлена — требование §2 CLAUDE.md выполнено с запасом.