auto-sync: 2026-06-09 19:20:01

This commit is contained in:
Stream
2026-06-09 19:20:01 +03:00
parent f1bc047e5d
commit f036defefd

View File

@@ -157,3 +157,23 @@
- ⚠️ 063 уже на development (job 1110), не architecture — продвинулась пока разбирала 72/91.
- 091 несёт autoApprove+autoDeploy → пройдёт автономно (BRD сама подтвердит, прод сама задеплоит после тех-гейтов).
- ⚠️ Хвост старых ET-задач (task 2,3,5,6,18,31) висит в analysis/development БЕЗ активных job — старые смоук-тесты, не наш конвейер, не трогаю (serial-gate их игнорит т.к. репо enduro≠orchestrator, либо это мусор для будущей чистки).
## 🚨→✅ ORCH-063 «deploy succeeded but not merged» — транзиент Gitea 405, домержила штатно (09.06 ~16:11 MSK)
- **Алерт:** deploy прошёл, но main не получил коммит задачи → HOLD на `deploy` (защита ORCH-81). Слава: «А это?».
- **Корень (из docker logs orchestrator):** `merge_pr: PR #98: HTTP 405 {"message":"Please try again later"}`**транзиентная ошибка Gitea** (мерж временно недоступен, часто пока пересчитывается mergeable после пуша). НЕ конфликт, НЕ баг кода. Финализатор-актор one-shot (не ретраит мерж) → HOLD сработал корректно как защита (не пометил done вслепую).
- **Проверка:** PR #98 = open, mergeable=True, конфликтов нет, транзиент давно прошёл. Безопасно домержить.
- **Фикс (штатно, не руками-через-API):**
1. `merge_gate.merge_pr()` повторно → merged PR #98, `verify_merged_to_main`=True, `check_main_regression`=True (markers intact 5). disk_watchdog.py в main ✅, нет unmerged-коммитов.
2. `stage_engine.run_deploy_finalizer({task_id:74})` идемпотентно → merge_pr=already-merged → CONFIRMED → **deploy→done**, Plane→Done→Monitoring after Deploy (post-deploy monitor job 1116 armed).
3. Прибрала побочный PR #99 (финализатор создал т.к. #98 уже merged+closed, ensure_open_pr не нашёл открытого → создал пустой; closed).
-**ORCH-063 в проде, task done.** disk-watchdog (мониторинг диска mva154 + Telegram-алерт ≥85%) задеплоен — особенно вовремя, диск был 89%.
- ⚠️ **УРОК / кандидат на follow-up:** merge-актор финализатора НЕ ретраит транзиентные ошибки Gitea (405 "try again later") — one-shot → ложный HOLD при инфра-икоте Gitea, требует ручного домержа. Стоит добавить ретрай merge_pr на 405/5xx (как breaker у агентов) ИЛИ ensure_open_pr не создавать новый PR если ветка уже в main (PR #99 — мусор). Если повторится — завести ORCH-задачу.
## 📝 ORCH-93 заведена — merge-актор ретрай транзиентов Gitea (Слава: «заведи задачу да», 09.06 ~16:18 MSK)
- Follow-up по инциденту 063 (Gitea 405 → ложный HOLD). seq=93, id=d4deab67-2f51-4c44-b4fd-ea103ec67a94, Backlog, MEDIUM.
- **2 дефекта (верифицированы по src/merge_gate.py прода):**
- Деф.1: `merge_pr` (~685) one-shot — на 405/5xx/таймаут сразу return False, нет ретрая (у агентов breaker есть, у мержа нет). G1/G2: ретраить транзиенты (405/408/409-not-mergeable-yet/5xx) с backoff, НЕ ретраить реальный конфликт.
- Деф.2: `ensure_open_pr` (~590) плодит пустой PR на уже влитой ветке (PR #99 сегодня). G3: гард «ветка уже в main» (нет diff origin/main..branch) → no-op «already-in-main».
- AC-1..6 (ретрай 405×2→200, не-ретрай конфликта, HOLD при исчерпании, already-in-main, kill-switch, never-raise+зелёный pytest). Зацепки: check_ci_green как образец ретрая, config флаги ORCH_MERGE_RETRY_*.
- Не-цель: НЕ убирать защиту ORCH-81 (корректна), не ретраить реальный конфликт, INV-4 (только Gitea API, не push main).
- Запуск по решению Славы. Скрипт: temp/create_merge_retry.py.