4.2 KiB
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/ -q — 501 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 выполнено с запасом.