auto-sync: 2026-06-04 03:00:01
This commit is contained in:
@@ -359,9 +359,12 @@ SSH ключ orchestrator'а: `/home/slin/.orchestrator-ssh/id_ed25519` (смо
|
||||
| **Баг 5** | **#16** | QG `check_tests_local` падал — `make` НЕТ в контейнере оркестратора | `check_tests_local` звал `["make","test"]`, но в контейнере только pytest, без make | прямой вызов `["python","-m","pytest","../../tests/","-v"]`, `cwd=<repo>/src/api` (1:1 с Makefile целью `test`). make в Dockerfile НЕ добавляли намеренно |
|
||||
| **Баг 6** | **#17** | `check_tests_local` дублировал CI и гонял тесты enduro-trails в окружении оркестратора без зависимостей проекта (`ModuleNotFoundError: lxml/shapely/defusedxml`) | `check_tests_local` — легаси-затычка эпохи S-1 «Gitea CI не настроен → always false». CI теперь настроен (`.gitea/workflows/ci.yml`, гоняет в ПРАВИЛЬНОМ окружении с `pip install ".[dev]"`) → затычка устарела | QG стадии `development`: `check_tests_local` → `check_ci_green` (доверились CI). `check_tests_local` НЕ удалён — помечен DEPRECATED, остался в `QG_CHECKS`, не wired ни к одной стадии. CI-failure больше не подавляется → `notify_qg_failure` |
|
||||
| **Баг 7** | **#18** | **ДЫРА:** красный CI на `development` НЕ возвращал задачу developer'у — конвейер вис, требовал ручного вмешательства | побочка фикса бага 6: CI стал авторитетным гейтом, но `handle_ci_status` при failure делал ТОЛЬКО `notify_qg_failure`. retry developer'а был только на review request_changes | добавлен retry developer'а на красный CI **симметрично** review: `retry_count < MAX_DEV_RETRIES(=3)` → `enqueue_job("developer", attempt N/3)`; иначе → escalate. Лимит **общий** (review+CI ≤ 3). Подробно — раздел «Retry (CI fail)» |
|
||||
| **Баг 8** | **#19** | **КРИТИЧНЫЙ:** провалившийся деплой уходил в `done` — фича нерабочая, а задача «выполнена». Вскрыто на ET-011: deployer честно написал `Status: FAILED` (hook permission denied, контейнер не пересобрался), но done | (1) `stages.py` стадия deploy имела `qg: None` — ГЕЙТА ВЫХОДА НЕТ вообще. (2) `exit_code` = код LLM-процесса (всегда 0 при успешной сессии) → защита `launcher.py:475 exit_code!=0` не срабатывала | новый QG **`check_deploy_status`** (по образцу `check_reviewer_verdict`): читает frontmatter `deploy_status:` из `14-deploy-log.md`. `deploy.qg`=`check_deploy_status`. Вердикт SUCCESS→done, FAILED→откат в development + Blocked + alert (по ВЕРДИКТУ, не exit_code). deployer-промпт enduro-trails обязан писать `deploy_status: SUCCESS/FAILED` |
|
||||
|
||||
**Итог:** после бага 7 конвейер **самовосстанавливается** на красном CI. Боевой прогон ET-011: красный CI (10× E402 — импорты не в шапке `src/api/main.py`) → developer автономно перезапущен (run 1→2, attempt 2/3).
|
||||
|
||||
**Баг 8 — важный урок:** «зелёный в CI ≠ работает на проде». Конвейер пометил ET-011 `done`, но фича (скачивание GPX) НЕ работала: deploy-hook упал на permission denied (`/var/log/enduro-trails` root-owned, `slin` без sudo), контейнер остался на старом образе 37 часов. **Инфра-блокер (TODO ops):** `sudo chown slin:slin /var/log/enduro-trails` или сменить LOG-путь в hook на доступный slin. После фикса бага 8 такой провал будет честно откатывать задачу в development, а не помечать done.
|
||||
|
||||
> **Важный принцип (из багов 5/6):** оркестратор **НЕ гоняет тесты целевых проектов в своём контейнере** — это делает Gitea CI в правильном окружении со всеми зависимостями. QG-гейт development доверяет CI-статусу (`check_ci_green`), а не локальному прогону. НЕ ставить lxml/shapely/defusedxml/make в Dockerfile оркестратора.
|
||||
|
||||
---
|
||||
@@ -370,6 +373,8 @@ SSH ключ orchestrator'а: `/home/slin/.orchestrator-ssh/id_ed25519` (смо
|
||||
|
||||
| Дата | Изменение |
|
||||
|------|-----------|
|
||||
| 2026-06-03 | **PR #19** Fix Баг 8: deploy→done гейтится новым `check_deploy_status` (вердикт `deploy_status:` из 14-deploy-log.md), а не exit-code LLM-процесса. Провал deploy → откат в development + Blocked. + deployer-промпт enduro-trails пишет frontmatter (enduro-trails #23) |
|
||||
| 2026-06-03 | **enduro-trails #23** Feat (A1, решение владельца): enduro_russia `download_allowed: true` — скачивание GPX включено |
|
||||
| 2026-06-03 | **PR #18** Fix Баг 7: красный CI на development автономно возвращает задачу developer'у (retry с общим лимитом 3, симметрично review) |
|
||||
| 2026-06-03 | **PR #17** Fix Баг 6: QG development `check_tests_local`→`check_ci_green` (доверились CI, не гоняем чужие тесты в контейнере; `check_tests_local` DEPRECATED, CI-failure больше не подавляется) |
|
||||
| 2026-06-03 | **PR #16** Fix Баг 5: `check_tests_local` зовёт pytest напрямую вместо `make` (make нет в контейнере) |
|
||||
|
||||
Reference in New Issue
Block a user