auto-sync: 2026-06-09 09:50:01

This commit is contained in:
Stream
2026-06-09 09:50:01 +03:00
parent 71bcfada6e
commit 7edbd081db

View File

@@ -70,3 +70,20 @@
- (3) **Auto-rollback во время мониторинга → ЗАМОРОЗИТЬ gate + алерт** (FR-5). Не стартовать следующую до ручного разбора.
- ⚠️ **Зависимость ORCH-88←ORCH-83 УБРАНА** (Слава: «сейчас не критично»). 88 запускается независимо.
- **Итоговый скоуп Этапа 1 (минимальный):** FR-1 serial gate (analysis ждёт done предыдущей в репо) / FR-2 очередь e2e / FR-3 per-repo (orch∥enduro) / FR-4 restart-safe по БД / FR-5 rollback-freeze. БЕЗ merge-очереди/rebase/фазового режима. Backlog, запуск по решению Славы. PATCH 200 (15650 симв).
## 🔴 ORCH-087 застряла на development — CI КРАСНЫЙ из-за непереносимого теста (09.06 ~06:40 MSK)
- Слава: «что тут» (карточка $0.00) → потом «разбирайся, может связано с нештатным срубанием прошлой итерации».
- **НЕ связано с моими kill** (зомби нет, claude.exe нет, act_runner на хосте жив, я его не трогала). НЕ инфраструктура.
- **Корень (распаковала zst-лог CI 1240 из gitea-контейнера):** ОДИН тест упал —
`FAILED tests/test_launcher.py::TestEffortStamp::test_spawn_stamps_resolved_effort - PermissionError: [Errno 13] Permission denied: '/app'`. **1 failed, 1089 passed.**
- **Механизм:** `launcher._spawn` (стр.464) хардкодит `output_path="/app/data/runs/{run_id}.log"` + `os.makedirs('/app/data/runs')`. Новый тест BR-EFF (стамп эффорта) дёргает `_spawn`, который пытается makedirs('/app/...'). В КОНТЕЙНЕРЕ орка `/app` есть → проходит (я локально видела 1090 passed). В CI на ХОСТЕ (act_runner hostexecutor, юзер slin) `/app` недоступен → PermissionError → fail.
- **Это законный баг теста:** developer не замокал хардкод `/app` в `_spawn`. Тест окружение-зависимый (контейнер vs CI-хост). check_ci_green ПРАВИЛЬНО держит задачу на development (гейт работает).
- ⚠️ Почему dev получил 1090 локально: он тоже бежал pytest В контейнере орка (/app есть). CI бежит на хосте — там нет. Расхождение local-vs-CI = непереносимый тест.
- **Урок:** тесты НЕ должны зависеть от хардкод-путей контейнера (`/app`). _spawn хардкодит /app → надо мокать output_path/makedirs ИЛИ брать путь из settings. Это надо чинить (reviewer должен был поймать, или developer — замокать). Задача вернётся на доработку через REQUEST_CHANGES естественным путём ИЛИ нужно перезапустить dev с указанием.
- ⏸️ Жду решения Славы: (a) дать конвейеру самому завернуть на reviewer REQUEST_CHANGES; (b) перезапустить developer с явным указанием замокать /app; (c) я через сессию Dev-агента поправлю тест. НЕ обхожу CI-гейт.
## 🔒 УРОК ЗАКРЕПЛЁН (Слава: «закрепи») + перезапуск developer (вариант 2)
- **Урок (класс «зелёный локально → красный CI»):** тесты орка НЕ должны зависеть от хардкод-путей контейнера (`/app`). developer/тестер гоняют pytest В контейнере (/app есть), CI бежит на ХОСТЕ (act_runner hostexecutor под slin, /app НЕТ).
- Закреплено в 3 местах: (1) ТЗ ORCH-087 — новый AC + fix-требование (мокать output_path/tmp_path или вынести runs-путь в settings); (2) коммент reviewer в Plane ORCH-087; (3) reviewer-чеклист «заворачивать тесты с хардкод-путями контейнера» — для ВСЕХ задач впредь.
- **Диагностика CI-фейла (метод):** логи Gitea Actions = zstd в gitea-контейнере `/data/gitea/actions_log/admin/orchestrator/dN/NNNN.log.zst`. API `/actions/.../logs` КЭШИРУЕТ старые логи (отдал 07.06!) — распаковывать zst напрямую (`docker cp` + `zstd -dc` на хосте). Статусы: `GET /commits/<sha>/statuses` (все), combined `/status`.
- ⚠️ TODO: дописать этот урок в MEMORY.md (раздел про тесты) — сейчас не вышло (bootstrap-усечение секции). Дописать append'ом в конец позже.