auto-sync: 2026-06-02 22:30:01

This commit is contained in:
Stream
2026-06-02 22:30:01 +03:00
parent f82ca6ac0c
commit e0dbe7d613

View File

@@ -287,4 +287,71 @@ ssh slin@82.22.50.71 "
- Пока ORCH-6 не сделан — webhook ДЕРЖАТЬ ВЫКЛЮЧЕННЫМ
### Открытые вопросы
- Смержить PR #19 (enduro-trails) + PR #1 (orchestrator worktree)?
- Смержить PR #19 (enduro-trails) + PR #1 (orchestrator worktree)?
### Нейминг — финальное решение
- Единое имя: **`orchestrator`**
- Gitea-репо переименован `agent-dev``orchestrator`
- Plane-проект `orchestrator` (identifier `ORCH`, id `8da6aa25-a60e-44d6-a1e2-d8ae59aa7d6a`)
- Workspace `tasks/multi-agent/``tasks/orchestrator/`
- Папка/контейнер/compose уже были `orchestrator`
- Plane задачи: ORCH-1 (F-2b), ORCH-2 (S-4), ORCH-3 (S-2/S-3), ORCH-4 (M-3), ORCH-5 (M-7)
### Открытые вопросы Славе
1. Смержить PR #19 (enduro-trails)?
2. Смержить PR #1 (orchestrator worktree)?
---
## ИНЦИДЕНТ: Plane-webhook авто-запустил конвейер по всем ORCH-1..7 (2026-06-02 19:00)
### Что случилось
- Создала в Plane задачи ORCH-1..7 — **Plane-webhook поймал каждую и авто-запустил конвейер** (analyst→architect, auto-commit)
- Всё ушло в **неправильный репо enduro-trails** (`plane.py:91` hardcode `repo=settings.default_repo`), наплодило мусор ET-010..016
- Корень: Plane-webhook (id `93f0c342-a614-4248-9d0f-c107276f5620`) срабатывает на ЛЮБ\u041eЕ issue в workspace, без фильтра по проекту
- ⚠️ **ПОЗИТИВ:** автономность реально работает — analyst exit=0, auto-commit, worktree (ORCH-2) сработал
### Меры (сделано)
- 🛡️ **Plane-webhook ДЕАКТИВИРОВАН** в Plane postgres: `UPDATE webhooks SET is_active=false`. Проверено: `is_active=f`
- Plane postgres: контейнер `plane-app-plane-db-1`, `PGPASSWORD=plane`, db `plane`, user `plane`, table `webhooks`
- Обратно включить после ORCH-6: `UPDATE webhooks SET is_active=true WHERE id=...`
- 🧹 Вычищено: все ветки ET-010..016 (git local+remote, 204), worktree `_wt/enduro-trails/*` (root-owned → sudo rm), тестовые iso-A/iso-B, tasks≥19 в БД орка, agent_runs≥19
- Plane чист: orchestrator=7 (ORCH-1..7), enduro=5 (родные). Junk ET-issues в Plane не было (орк генерил ET-номера сам в git+БД)
- Заметка на сервере: `orchestrator/docs/INCIDENT_2026-06-02_webhook_autorun.txt`
### ROOT FIX = ORCH-6 (multi-repo)
- `plane.py:91` `repo=settings.default_repo` → нужен фильтр по `plane_project_id` + маппинг repo per project
- Пока ORCH-6 не сделан — webhook ДЕРЖАТЬ ВЫКЛЮЧЕННЫМ
### Открытые вопросы
- Смержить PR #19 (enduro-trails) + PR #1 (orchestrator worktree)?
---
## ORCH-6 (Multi-repo) — Dev-прогон (2026-06-02 ~19:20-19:28)
### ТЗ
- Файл: `tasks/orchestrator/DEV_TASK_ORCH6_MULTIREPO.md` (снайперское, все точки кода file:line собраны Стрим заранее)
- Цель: реестр проектов (Plane id→repo+prefix) + фильтр webhook по проекту + resolve repo + plane_sync в правильный проект + prefix per project. Закрывает корень инцидента, снимает предохранитель.
- Маппинг по умолчанию: enduro `7a79f0a9-...`→repo enduro-trails/ET; orchestrator `8da6aa25-...`→repo orchestrator/ORCH
### Прогон 1 (упал по таймауту LLM на Task 2, не вина кода) — но сделал ~75%, ФУНКЦИОНАЛ РАБОТАЕТ
✅ Готово (Task 1-5), проверено вживую:
- `src/projects.py` (4607 байт) — ProjectConfig + 4 резолвера + дефолт-реестр
- plane.py — фильтр по проекту (unknown→ignored) + resolve repo
- db.py — `get_next_work_item_id(repo, prefix)` per project (ORCH-001 vs ET-010)
- plane_sync.py — `_resolve_project_id`, параметризация (обратно совместимо)
- gitea.py — unknown repo→ignored (3 хэндлера)
- **Resolve-тест в контейнере прошёл:** orchestrator→orchestrator/ORCH, enduro→enduro-trails/ET, unknown→None ✅
- Все файлы компилируются; тесты 37 passed / 9 failed (те же pre-existing 401/signature, baseline не сломан)
НЕ доделано (Task 6-7): тесты test_projects/test_plane_webhook, коммит, PR, пересборка, доки. Всё в working tree (не закоммичено).
### Решение: НЕ начинать заново, дослать Dev добивку (Task 6-7) — рабочие 75% терять глупо из-за инфра-таймаута
- Запущен 2-й прогон (taskName `orch6_finish`/добивка), session subagent `24ac376a...`
- ⚠️ Дубль-событие о падении прогона 1 (subagent `080bc9bc...`) прилетело позже — уже обработано, NO_REPLY
### КРИТИЧНО на потом
- 🚫 Webhook ОСТАЁТСЯ выключенным до моего финального ревью фильтра (иначе риск повторить инцидент)
- Включить webhook (`is_active=true`) — мой шаг ПОСЛЕ проверки что фильтр реально режет unknown-проекты
- Tokenator API: жив, ключ в `/home/slin/openclaw/data/.env` (НЕ в orchestrator/.env). Ключ содержит `|` — bash sed/grep его режет, брать через Python
- Plane API токен (60 симв) в orchestrator/.env РАБОЧИЙ — баг был в bash sed-парсинге, через Python HTTP 200
- Тесты орка — ТОЛЬКО в контейнере через образ (хостовый .venv сломан): `IMG=$(docker inspect orchestrator --format '{{.Config.Image}}'); docker run --rm -v /home/slin/repos/orchestrator:/code -w /code --entrypoint python3 $IMG -m pytest tests/ -q`