From 42761889b1803ae291b532784fdc06ffedf47207 Mon Sep 17 00:00:00 2001 From: Stream Date: Thu, 4 Jun 2026 01:30:01 +0300 Subject: [PATCH] auto-sync: 2026-06-04 01:30:01 --- memory/2026-06-03.md | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/memory/2026-06-03.md b/memory/2026-06-03.md index 22b76f7..a408996 100644 --- a/memory/2026-06-03.md +++ b/memory/2026-06-03.md @@ -317,3 +317,32 @@ PR #12 (status-only verdict, баг3 эхо-самоудар) → PR #13 (баг ### Хвост на следующую сессию: - Следить за developer (run 65) + CI: дойдёт ли до review/testing/deploy. - Старые разделы ORCHESTRATOR_DOCS про `:approved:`/`:rejected:` комментом — переписаны на status-only, но перепроверить остаточные упоминания в нижней части файла (~стр.100+). + +--- + +## Баги 5-6 закрыты (03.06 вечер) — конвейер дошёл до честного CI-гейта + +### Баг 5 (PR #16, main 994f73a): QG check_tests_local зависел от `make` (нет в контейнере) +- `src/qg/checks.py` check_tests_local: `["make","test"]` → `["python","-m","pytest","../../tests/","-v"]`, cwd=`/src/api` (1:1 с Makefile цели test). Коммит `90c9ffe`. +- Тесты: 213 passed + 9 baseline. Боевой прогон: make-бага ушла, но вылез баг 6. + +### Баг 6 (PR #17, main 7922f6b): локальный QG дублировал CI + гонял тесты enduro-trails в окружении оркестратора без зависимостей (lxml/shapely/defusedxml → ModuleNotFoundError) +- **Задумка check_tests_local изначально:** S-1 затычка эпохи «Gitea CI не настроен → always false». CI теперь настроен (.gitea/workflows/ci.yml) → затычка устарела, дублирует check_ci_green в кривом окружении. +- **Вариант 1 (выбран Славой):** довериться CI. + - `src/stages.py:16` development QG: `check_tests_local` → `check_ci_green`. + - `src/webhooks/gitea.py` ~219: снято подавление CI-failure, теперь `state==failure && stage==development` → notify_qg_failure. + - `check_tests_local` НЕ удалён, помечен DEPRECATED, остался в QG_CHECKS, не wired ни к одной стадии. + - Коммит `e15d339`. Тесты: 215 passed + 10 failed (9 baseline + 1 новый webhook-тест на том же 401 HMAC-барьере — среда, не логика). +- Деплой ✅, `get_qg_for_stage("development")=="check_ci_green"` подтверждён на проде. + +### 🎯 Боевой прогон ET-011 (task 29): конвейер РАБОТАЕТ КАК ЗАДУМАНО +- Прямой вызов `handle_ci_status(success)` → `check_ci_green` (double-check API) → **False: CI state: failure** → справедливо НЕ пропустил development→review. Логика верна. +- **Реальный CI ET-011:** lint=failure (ruff стиль), test=**success** (тесты в правильном окружении ПРОХОДЯТ!), build=skipped. +- Т.е. конвейер уперся не в свой косяк, а в РЕАЛЬНОЕ качество кода — линтер честно краснит на стиле. Здоровое состояние. + +### Хвост на след. сессию: +- task 29 стоит в development, CI красный ТОЛЬКО из-за ruff lint (тесты зелёные). +- Развилка: (A) developer-retry чтобы сам починил lint, или (B) глянуть на что ruff ругается. Слава склонялся глянуть ruff сначала. +- 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-гейта на качестве кода.