auto-sync: 2026-06-04 01:50:01
This commit is contained in:
@@ -346,3 +346,26 @@ PR #12 (status-only verdict, баг3 эхо-самоудар) → PR #13 (баг
|
||||
- HMAC webhook через curl/shell даёт 401 (подпись от raw body не сходится при shell-сериализации) — для боевых прогонов дёргать обработчики напрямую в python (docker exec orchestrator python3), а не через HTTP.
|
||||
|
||||
### Итог сессии 03.06: закрыто 6 багов (PR #12-#17), конвейер прошёл analysis→architecture→development end-to-end, дошёл до честного CI-гейта на качестве кода.
|
||||
|
||||
---
|
||||
|
||||
## Баг 7 закрыт (03.06 ночь) — конвейер САМОВОССТАНАВЛИВАЕТСЯ на красном CI 🔥
|
||||
|
||||
### Баг 7 (PR #18, main a0621b9): красный CI на development не возвращал задачу developer'у
|
||||
- **Дыра:** после бага 6 CI стал авторитетным гейтом, но handle_ci_status при failure делал ТОЛЬКО notify_qg_failure → конвейер вис, требовал ручного вмешательства. Слава прямо спросил «почему автономно не ушло на девелопера».
|
||||
- **Корень:** retry developer'а был только на review request_changes (max 3x), на CI-failure ветки retry не было — побочка нашего же фикса бага 6 (достроили мост наполовину).
|
||||
- **Фикс (по образцу review-retry):** src/webhooks/gitea.py CI-failure ветка ~стр.219 — после notify_qg_failure добавлен блок: retry_count = COUNT agent_runs developer; if < MAX_DEV_RETRIES(=3) → enqueue_job("developer", attempt N/3); else notify_error escalating. Отличия от review: задача УЖЕ в development (без update_task_stage), branch из переменной branch. Коммит `3a285de`.
|
||||
- **Лимит:** общий MAX_DEV_RETRIES=3 по ВСЕМ agent_runs developer'а (review+CI вместе ≤3) — по требованию Славы «ограничить как на ревью».
|
||||
- Тесты: 217 passed (215+2 pure-logic, вызов handle_ci_status напрямую с моками, не через TestClient → обход 401 HMAC baseline) + 10 baseline failed.
|
||||
|
||||
### 🎯🔥 БОЕВОЙ прогон — САМОВОССТАНОВЛЕНИЕ РАБОТАЕТ
|
||||
- Дёрнула CI-failure на ET-011 (task 29) → оркестратор АВТОНОМНО: увидел красный CI → check_ci_green failed → поставил developer'а в очередь (job 13) → запустил run_id=66 pid=45 (attempt 2/3). developer runs 1→2.
|
||||
- Лог: `🚀 ET-011: developer запущен (run_id=66)`. Без единого ручного пинка.
|
||||
- **developer run 66 пошёл чинить 10× E402 в src/api/main.py** (импорты не в шапке: shapely/typing/fastapi после кода на стр.20). Если починит → зелёный CI → development→review автономно.
|
||||
|
||||
### Хвост на след. сессию:
|
||||
- Следить за developer run 66: починит ли E402, перезапушит ли, станет ли CI зелёным, поедет ли конвейер в review.
|
||||
- Если E402 — намеренный поздний импорт (после sys.path), developer может добавить noqa вместо перетасовки — оба варианта валидны.
|
||||
- Лимит retry: после 3 попыток developer'а суммарно (review+CI) — эскалация Славе.
|
||||
|
||||
### ИТОГ сессии 03.06: закрыто 7 БАГОВ (PR #12-#18). Конвейер: analysis→architecture→development end-to-end + честный CI-гейт + АВТОНОМНОЕ самовосстановление на красном CI с лимитом попыток. Боевая обкатка на ET-011.
|
||||
|
||||
Reference in New Issue
Block a user