diff --git a/memory/2026-06-08.md b/memory/2026-06-08.md index 157699c..4e5fc2a 100644 --- a/memory/2026-06-08.md +++ b/memory/2026-06-08.md @@ -176,3 +176,13 @@ - Доказано: реальная ORCH-036=done (ветка feature/ORCH-036-orch-36-deploy-b), feature/ORCH-036-x НЕ существует, прод-оркестратор алерт НЕ слал (нет в его логах после 07:59), код ORCH-71 ещё не в проде. - **Добавила QA-замечание в Plane ORCH-71** (коммент): во всех тестах alert/notify → мокать send_telegram/sendMessage; AC-критерий «pytest НЕ шлёт реальных Telegram-сообщений, 0 вызовов к api.telegram.org»; reviewer заворачивает незамоканный notify (REQUEST_CHANGES). - **Урок:** автономный конвейер, тестирующий notify-функции, может спамить живые каналы из pytest, если notify не замокан. Закладывать мок notify в AC любой задачи с alert/Telegram. + +## ✅ ORCH-71 ЗАВЕРШЕНА — root-fix фантома в проде (09:17 UTC) +- Конвейер ORCH-71 прошёл analysis→architecture→dev→review(APPROVED, 0 блокеров)→test(853 passed, TC-01..16/AC-1..11)→staging(SUCCESS). +- **Моё QA-замечание учтено:** conftest.py autouse-фикстура глушит send_telegram во ВСЕХ тестах → 0 реальных Telegram из pytest (структурно). Проверила лично. +- **Слив + деплой (вручную, чистый путь):** PR#72 merged в main (merge_sha 52ca882). Хост-репо→52ca882. staging пересобран из 52ca882 (PASS). Прод-деплой: build-once retag → prod rev=52ca882, health OK. +- **prod == main == 52ca882**, merge-verify в живом проде (merge_pr/verify_merged_to_main/_handle_merge_verify×3), merge_verify_enabled=True. +- 🎯 **БОЕВАЯ самопроверка:** `verify_merged_to_main(orchestrator, ORCH-71-branch, sha)` = True — новый гейт подтверждает merge ORCH-71 в main. Фича проверяет сама себя. +- ⚠️ **Provenance guard (ORCH-058) сработал штатно:** конвейерный Phase B задачи упёрся в SOURCE_IMAGE 52ca882 != expected d49e88c (fail-closed, exit 1), т.к. ручной merge+deploy опередил авто-Phase B → образы разошлись → guard заблокировал повторный деплой уже задеплоенного. Прод НЕ пострадал. Задача FAILED→Blocked в конвейере, но по факту код в проде. +- **Закрыла Done вручную** (manual close, вариант A) + пояснит. коммент в Plane. БД орка: stage→done. active jobs=0, прод здоров, ET-002 спам=1 (только старт, не растёт). +- **УРОК:** ручной merge+deploy ПЕРЕД конвейерным Confirm Deploy ломает provenance guard (expected revision = HEAD ветки на момент staging-валидации ≠ ручной merge-commit). Чистый авто-путь: дать задаче пройти свой Phase B самой ИЛИ сбросить deploy-state перед ручным деплоем. На будущее: либо полностью ручной путь + manual Done, либо полностью конвейерный — не смешивать.