From 6330881834671a18c72ba8dd1147acc19c57bc2b Mon Sep 17 00:00:00 2001 From: Stream Date: Wed, 3 Jun 2026 09:30:01 +0300 Subject: [PATCH] auto-sync: 2026-06-03 09:30:01 --- memory/2026-06-03.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/memory/2026-06-03.md b/memory/2026-06-03.md index 2918d94..85bbe1a 100644 --- a/memory/2026-06-03.md +++ b/memory/2026-06-03.md @@ -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`.