From 50e081630b5d5ff373eb44862b658cf8af88c96f Mon Sep 17 00:00:00 2001 From: Stream Date: Thu, 4 Jun 2026 18:00:01 +0300 Subject: [PATCH] auto-sync: 2026-06-04 18:00:01 --- memory/2026-06-04.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/memory/2026-06-04.md b/memory/2026-06-04.md index f2394a3..8e0d603 100644 --- a/memory/2026-06-04.md +++ b/memory/2026-06-04.md @@ -360,3 +360,22 @@ Plane workspace=ag_proj, ET project_id=7a79f0a9-5278-49cd-9007-9a338f238f9c, API - Структура: зачем (проблема/решение/ценность) → как работает (конвейер/гейты/агенты/объекты) → сделано → дорожная карта (22 задачи в 5 направлениях) → принципы → видение в одну фразу. - Plane ORCH-29 создана сразу в Done, в описании кликабельные ссылки на MD и PPTX (Gitea public url). - Файлы: docs/PRODUCT_VISION.md, docs/PRODUCT_VISION.pptx. Генератор: temp/gen_pptx.py. + +### 🔍 АУДИТ готовности к self-hosting (ORCH-7) — перед "оркестратор пилит сам себя" +Слава: "проверь что инфра/доки/окружение готовы для развития оркестратора через конвейер, нельзя запороть enduro-trails и сам orchestrator". Провела аудит на проде. + +**✅ Что готово (защита есть):** +- Реестр проектов projects.py: orchestrator зарегистрирован (PID 8da6aa25..., repo=orchestrator, prefix=ORCH). enduro-trails первым = safe default. Webhook фильтрует по проекту, unknown→ignored (фикс инцидента 02.06). +- main защищён pre-receive хуком Gitea (bare repo .git/hooks/pre-receive.d/gitea) — прямой push запрещён, только PR. Для ОБОИХ репо. +- Изоляция git-worktree: каждая задача в /repos/_wt// — отдельное дерево. orchestrator и enduro в РАЗНЫХ репо → задача ORCH не трогает enduro. +- check_ci_green читает статус из Gitea API (commits/{branch}/status), не локальный прогон — корректно. +- Тесты есть в репо /repos/orchestrator/tests/ (test_*.py, conftest). +- Контейнеры живы. enduro unhealthy = ЛОЖНАЯ тревога (healthcheck зовёт curl, которого нет в образе; само app отвечает 200). + +**🔴 РИСКИ для self-hosting (фиксы нужны ДО запуска ORCH-7):** +1. **Self-corruption рантайма** — ГЛАВНЫЙ. Рантайм orchestrator = ОБРАЗ (Dockerfile COPY src/), НЕ volume. Код в образе. НО деплой orchestrator = пересборка+рестарт СВОЕГО контейнера → если деплоит сам себя и упадёт на середине (или закоммитит сломанный код), оркестратор убьёт себя посреди задачи. Нет orchestrator-deploy-hook.sh (есть только enduro-deploy-hook.sh). +2. **Тесты НЕ в образе** — Dockerfile НЕ копирует tests/ (COPY src/ + data/ только). В контейнере /app/tests НЕТ → локально pytest не гоняется. check_ci_green полагается на Gitea CI status, НО .gitea/workflows НЕ найдены → откуда "success"? Надо проверить, реально ли CI гоняет тесты или статус ставится вручную/всегда green. +3. **Нет post-deploy verify для orchestrator** — если новый образ не поднялся, никто не откатит (это ORCH-21, ещё не сделано). +4. enduro healthcheck чинить (curl→python) — косметика, не блокер. + +**Вывод Славе:** инфра БАЗОВО готова (изоляция, branch protection, реестр — не запорет enduro), но для безопасного self-hosting самого orchestrator нужны: (а) отдельный deploy-хук orchestrator с откатом, (б) проверить что CI реально гоняет тесты (иначе гейт фиктивный), (в) тесты в образ или явный CI-pipeline, (г) ORCH-21 авто-rollback. Это ТЗ-кандидаты, НЕ чинить молча.