From f32c4a476f36a07c8beb0ea12232ae2e2f2bd50f Mon Sep 17 00:00:00 2001 From: Stream Date: Thu, 4 Jun 2026 02:00:01 +0300 Subject: [PATCH] auto-sync: 2026-06-04 02:00:01 --- memory/2026-06-03.md | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/memory/2026-06-03.md b/memory/2026-06-03.md index 1fbd480..2644ec7 100644 --- a/memory/2026-06-03.md +++ b/memory/2026-06-03.md @@ -369,3 +369,34 @@ PR #12 (status-only verdict, баг3 эхо-самоудар) → PR #13 (баг - Лимит retry: после 3 попыток developer'а суммарно (review+CI) — эскалация Славе. ### ИТОГ сессии 03.06: закрыто 7 БАГОВ (PR #12-#18). Конвейер: analysis→architecture→development end-to-end + честный CI-гейт + АВТОНОМНОЕ самовосстановление на красном CI с лимитом попыток. Боевая обкатка на ET-011. + + +--- + +## Документация багов 5-7 + точная причина красного CI (03.06 ночь, конец сессии) + +### Точная причина красного CI на ET-011 (диагностирована вживую) +- Прогнала `ruff check src/` (скопировав src в /tmp, без кэша — worktree принадлежит контейнеру, permission denied на кэш; ruff есть на ХОСТЕ ~/.local/bin/ruff 0.15.13, в КОНТЕЙНЕРЕ оркестратора ruff НЕТ — то же окружение что lxml). +- **Единственная придирка: E402 «module level import not at top of file», 10× в ОДНОМ файле `src/api/main.py`.** developer добавил импорт (shapely.geometry LineString для ET-011) не в шапку, а ниже кода (видимо после sys.path/константы ~стр.20-21). +- **Вердикт: косметика, не баг кода.** Тесты зелёные, краснит только стиль. Чинится: поднять импорты в шапку ИЛИ `# noqa: E402` (если поздний импорт намеренный после sys.path.insert). + +### Документация записана в ORCHESTRATOR_DOCS.md (дополнено, НЕ затёрто) +1. **Pipeline + Quality Gates таблицы:** выход development гейтится `check_ci_green` (зелёный→review, красный→retry). `check_tests_local` помечен DEPRECATED (в реестре QG_CHECKS для совместимости, не подключён к стадиям). Принцип: оркестратор НЕ гоняет тесты чужих проектов в своём контейнере — это делает Gitea CI в правильном окружении. +2. **Раздел «Механизмы автономности» → новый блок Retry (CI fail):** красный CI → notify_qg_failure → возврат developer'у (attempt N/3), лимит ОБЩИЙ с review (review+CI вместе ≤3), потом эскалация. Помечено ✅ проверено боевым прогоном. +3. **Новый раздел «🐛 Баги QG-гейта development (PR #16–#18)»** — таблица баг/PR/корень/фикс для багов 5/6/7. +4. **Changelog:** записи PR #16 (баг5 make→pytest), #17 (баг6 drop local QG→check_ci_green), #18 (баг7 CI-fail→developer retry). Шапка обновлена. + +### Wiki + онтология +- `openclaw wiki ingest` прогнан после правок доков (правило: ingest после изменений в проектах). +- Онтология: предложила Славе занести баги 5-7 как записи проекта orchestrator — ждёт ответа (на момент flush не подтверждено). + +### Хвост (актуально на след. сессию) +- developer run 66 чинит E402 в src/api/main.py. Следить: починит→перезапушит→зелёный CI→development→review автономно. +- Эпизод сбоев обработки turn (#16540 и повтор по PR #17/#18 completion event) — отвечала заново коротко, событие было дублем уже обработанного. NO_REPLY на повторные internal completion events корректен. +- HMAC webhook через shell-curl = 401 (подпись от raw body не сходится при shell-сериализации). Для боевых прогонов — дёргать обработчики напрямую в python (`docker exec orchestrator python3 -c "import asyncio; from src.webhooks.gitea import handle_ci_status; asyncio.run(...)"`), НЕ через HTTP. Записано как рабочий приём. + +### Все хэши/PR сессии 03.06 (для истории) +- PR #12 status-only (баг3) | #13 баги A/B/C | #14 gitea_public_url | #15 баг4 Approved→advance (merge b6aa107) +- PR #16 баг5 make→pytest (merge main 994f73a, `fix(qg): run pytest directly instead of make`) +- PR #17 баг6 drop local QG (commit e15d339, merge main 7922f6b, `fix(qg): use check_ci_green instead of local tests on development stage`) +- PR #18 баг7 CI-fail retry (commit 3a285de, merge main a0621b9, `fix(ci): bounce task back to developer on red CI (capped retries)`)