diff --git a/memory/2026-06-06.md b/memory/2026-06-06.md index 637f2b1..bbcba9c 100644 --- a/memory/2026-06-06.md +++ b/memory/2026-06-06.md @@ -79,3 +79,26 @@ ## Документация сессии 05.06 — финал (подтверждено) - `docs/history/LESSONS_2026-06-05.md` в main орка через **PR #42** (`615a778d`), подтверждено `OK-IN-MAIN`. - Внутри: постмортем ORCH-17/45/47, уловка-22 ORCH-47 (гейт чинит сам себя), памятка деплоя прода (`/app` запечён в образ → нужен `build`; порты 8500/8501; полная последовательность chown+reset+build+up+health+auth-check), грабли с root-owned файлами (рассинхрон git). + +## ORCH-44 — диагностика застревания + CI-fix (07:39–08:30 UTC) +- **Запущена и заапрувлена от Славы** (проверила артефакты, поправила scope: P2/`--effort` исключён → вынесен в ORCH-50, оставлены P1 оба подхода + P3). +- **Застряла на `development`** — гейт `check_ci_green` не пропускал: CI в Gitea красный. +- **Сначала подумала на flaky-раннер** (локально 504 passed, CI падал за ~13с), ретриггернула empty-commit `92fc118` — упало снова → полезла в лог CI. +- **🐞 Корень — регрессия дева:** добавил в `preflight.py` auth-gate `_check_auth()` (читает `~/.claude/.credentials.json`, default ON — это фикс П1), но **не обновил существующий тест** `test_resilience.py::TestPreflight::test_ok_when_version_succeeds` (мокал только `claude --version`). У меня локально зелено (креды в контейнере есть), CI-раннер под slin без валидных кред → `ok=False` → `assert True` падает. +- **Нюанс репро (от дева):** `_credentials_path()` берёт `AgentLauncher.AGENT_HOME` (хардкод `/home/slin`), игнорит `HOME`-env. Faithful-репро: `ORCH_CLAUDE_CREDENTIALS_PATH=/tmp/nope.json`. +- **Передала Dev-агенту** (правка кода/тестов — не моя роль). Фикс: class-scoped `@pytest.fixture(autouse=True)` в `TestPreflight` мокает `preflight._check_auth → (True, ...)`. Прод-логику НЕ трогал, `preflight_check_auth=True` цел (фикс ORCH-17 не ослаблен). Коммит `6fbf7a3`, CI → **success** (runs 134/135 зелёные). Проверила независимо combined=success. +- **Гейт `check_ci_green` завязан на Gitea webhook о CI-status `success`** (`src/webhooks/gitea.py:201`). Webhook о новом зелёном не продвинул (раннер в другой сети / status-webhook не дошёл) → задача висела на development. +- **Пнула гейт штатным путём** (`temp/kick_ci_gate.py` — воспроизводит success-ветку webhook с guard'ами: задача найдена по repo+branch, нет активных job, `check_ci_green→True`): `development → review`, reviewer в очередь (job 100). НЕ хак БД — вызов штатных функций орка. `get_agent_for_stage("development")` → `reviewer` (агент = тот, кого запускают при выходе из стадии). +- **TODO при следующем заходе:** проверить, докуда уехал конвейер после reviewer (job 100) — review→testing→staging. + +## ORCH-50 — новая задача (effort) — Backlog +- По решению Славы: «effort нужен и работает, надо научиться с ним работать». Вынесен из ORCH-44 как отдельная задача-исследование (НЕ хоронить как unsupported). title_len 74. + +## ORCH-51 — Автономный ребилд прода — Backlog (id `0db4942e-a7e0-4906-8290-f104b2774bc4`) +- Задача-проектирование (дизайн до кода). 8 вопросов: предикат is_safe_to_rebuild(), **race/потеря webhook при рестарте (кейс Славы — главный)**, парадокс само-ребилда (орк рестартит сам себя → внешний хук, связка ORCH-36), maintenance/drain, lock, post-rebuild health+авто-rollback (ORCH-21), уведомления, аварийный флаг `ORCH_AUTO_PROD_REBUILD`. +- **Идея Славы (06.06): blue-green HA — 2 инстанса за балансировщиком.** Дописала разделом «Стратегия деплоя A vs B»: + - A = single-instance + maintenance/drain + reconciliation-скан (проще, быстрее). + - B = blue-green HA (целевая, крупнее). Подводные камни: **SQLite не шарится → миграция на Postgres**, claim через row-lock (FOR UPDATE SKIP LOCKED), общий storage worktree, общий claude-auth, drain активных агентов (3-6 мин), leader-election для queue_worker (иначе двойной клейм). + - Рекомендация Стрим: A и B — этапы, не «или/или». B оформить отдельным крупным эпиком, зависящим от ORCH-51(A) и ORCH-36. +- Связи: ORCH-36/21/48/28/1b/40. +- ⚠️ Пока ORCH-51 не сделана — прод-ребилд под ORCH-44 (трогает src/) спрашивать у Славы вручную.