auto-sync: 2026-06-03 09:30:01
This commit is contained in:
@@ -44,14 +44,18 @@ Dev **запаниковал** на старте orch1b: «параллельн
|
||||
- 🔴 **БАГ выбора агента (ИСПРАВЛЕН):** launcher брал `get_agent_for_stage(next_stage)` — БЫЛО НЕПРАВИЛЬНО (пропуск стадии: created→analysis запускал *architect* вместо *analyst*). Правильно = `current_stage` (Я ПЕРЕПРОВЕРИЛА логику сама по STAGE_TRANSITIONS — вердикт Dev верный). Унифицировано на current_stage, stages.py не тронут.
|
||||
- 🔴 СОХРАНЕНО ЦЕЛИКОМ: approved-флоу, REQUEST_CHANGES→retry max3, tester FAIL→rollback, architect conflict→rollback в analysis, check_review_approved (PR по ветке + file-fallback).
|
||||
- Слито в `src/stage_engine.py` (425 строк) `advance_stage(...)`. launcher (+18−169), plane (+21−72 через `asyncio.to_thread`) = тонкие обёртки.
|
||||
5. 🔄 **ORCH-5 (M-7) ЗАПУЩЕН** (taskName `orch5_webhook_dedup`, ветка feature/ORCH-5-webhook-dedup, ТЗ `DEV_TASK_ORCH5_WEBHOOK_DEDUP.md`). Разведка подтвердила: dedup ОТСУТСТВУЕТ полностью (grep: delivery-id нигде не читается). events имеет `id,timestamp,source,event_type,payload,processed` — нет delivery_id, нет UNIQUE. План: +колонка events.delivery_id (через _ensure_column) + partial UNIQUE index, helper delivery_id (gitea=X-Gitea-Delivery, fallback sha256(body); plane=fallback sha256("plane"+body)), INSERT OR IGNORE + ранний выход на duplicate без enqueue. dedup ПОСЛЕ HMAC, для plane до ORCH-6 фильтра (не сломать ignored). Baseline 136 passed.
|
||||
5. ✅ **ORCH-5 (M-7) ЗАМЕРЖЕН** — идемпотентность webhook (dedup по delivery-id). **PR #6 merge commit `2fdc6856`**, прод пересобран, health/queue ok. **145 passed** (136+9 новых), 9 pre-existing (сверено с clean main). clean-merge.
|
||||
- Было: dedup ОТСУТСТВОВАЛ полностью (delivery-id нигде не читался) → повторная доставка webhook = дубль конвейера (класс ET-009).
|
||||
- Стало: `events.delivery_id` (через `_ensure_column`) + partial UNIQUE index `idx_events_delivery`. Helper `src/webhooks/_dedup.py`: gitea=`X-Gitea-Delivery` GUID/fallback sha256(event+body); plane=fallback sha256("plane"+body); префикс `source:`. `insert_event_dedup` → INSERT OR IGNORE, дубль → `{"status":"duplicate"}` без enqueue.
|
||||
- Порядок ПРОВЕРИЛА сама: dedup ПОСЛЕ HMAC (401 цел), ДО ORCH-6 фильтра (unknown project на 1-й доставке всё равно ignored). Миграция на живой БД применилась (1108 строк events целы).
|
||||
- Помельче (потом): M-6 (work_item_id из Plane sequence), L-1/L-2 (нейминг/логи), M-5 (хардкод инфры в промптах — enduro-trails, с ORCH-3).
|
||||
- ⚠️ **УРОК:** аудит устаревает — ВСЕГДА верифицировать по живому коду перед запуском Dev (S-1b уже была сделана, чуть не запустила дубль).
|
||||
|
||||
### ⏭️ ТОЧКА ВХОДА (06:20 UTC)
|
||||
- **ORCH-7 закрыт. ORCH-4 ЗАМЕРЖЕН** (PR #5 `2f0fd246`, прод пересобран, health/queue ok, 136 passed). Баг выбора агента починен.
|
||||
- **ORCH-5 (M-7 dedup webhook) ЗАПУЩЕН** (Dev, Opus 4.8). После завершения → проверка ВЖИВУЮ: `git log origin/main..origin/feature/ORCH-5-webhook-dedup`, мой прогон тестов, фокус: HMAC цел (401 на невалидной подписи) + ORCH-6 ignored на первой доставке не сломан + миграция на живой БД применилась (delivery_id в events). Мерж — я.
|
||||
- Потом **ORCH-3+M-5** (репо enduro-trails: rollback в хук + чистка deployer.md) — последнее по бэклогу.
|
||||
- **ORCH-5 (M-7 dedup webhook) ЗАМЕРЖЕН** (PR #6 `2fdc6856`, прод пересобран, health/queue ok, 145 passed, миграция на живой БД ок). **ЭТО БЫЛА ПОСЛЕДНЯЯ ЗАДАЧА ПО САМОМУ orchestrator.**
|
||||
- **ОСТАЛОСЬ только: ORCH-3+M-5** (репо **enduro-trails**, НЕ orchestrator): rollback в deploy-хук (`/home/slin/bin/enduro-deploy-hook.sh`) + чистка `deployer.md` (убрать `git checkout $LAST_TAG` + `Bash(docker)`) + M-5 хардкод инфры в промптах. Перед запуском — ОК Славы + верификация по живому коду (⚠️ хук трогать — осторожно, это прод-деплой, сохранить/мержить).
|
||||
- Бэклог orchestrator ЗАКРЫТ: ORCH-1/1b/2/4/6/7 + ORCH-5 в main. ORCH-8 отменена. Мелочь M-6/L-1/L-2 — по настроению.
|
||||
- Мерж-рецепт (работает): проверить `git log origin/main..origin/ветка` (не пусто!), мой прогон тестов, clean-merge check, мерж через Gitea API `/pulls/N/merge` `{"Do":"merge"}`, пересборка из main.
|
||||
- ТЗ-образцы: `DEV_TASK_ORCH7_HARDENING.md`, `DEV_TASK_ORCH4_STAGE_ENGINE.md`.
|
||||
- ⚠️ **Грабля memory-файла:** ранний `write` сделал APPEND (задвоил файл), почистила перезаписью. Для точечных правок memory — `edit`, не `write`.
|
||||
|
||||
Reference in New Issue
Block a user