architect(ET): auto-commit from architect run_id=421

This commit is contained in:
2026-06-09 02:08:23 +03:00
committed by stream
parent f2161451a0
commit aa488edddf
3 changed files with 230 additions and 0 deletions

View File

@@ -351,6 +351,18 @@ helper `validated_revision` питает и штамп A, и `EXPECTED_REVISION`
ET-013) и (2) в явном Plane-статусе **Blocked** / **Needs Input** (Вариант A —
запрос Plane API, без миграции БД; never-raise → консервативный skip). Гард
retry-count проверяется первым (дёшево, локальный SQL).
**ORCH-086 (закрытие F-1-пробела ORCH-068):** терминал-исключение и `state_uuid`-dedup
(изначально только F-2) распространены на F-1. После дешёвых локальных гардов F-1 делает
**один** резолв Plane-статуса задачи на тик (общий fetch для Guard 2 + терминал-скипа +
`_note_unblock`); терминальная задача (группа Plane `completed`/`cancelled`, fallback —
логические ключи `done`/`cancelled`, ЛИБО стадия в БД орка ∈ `{done, cancelled}`) →
**безусловный** ранний скип (`skipped_terminal_total++`, без `advance`/уведомления; не подчинён
`reconcile_skip_blocked_enabled`). Вызов `_note_unblock` на F-1 теперь передаёт `state_uuid`
in-memory dedup работает на обоих путях (страховка от повтора после рестарта). Лечит
периодическое ложное «ET-002 done разблокирована (потерян webhook)» для терминальных в Plane
задач (enduro/orchestrator), сохраняя легитимный unblock реально застрявшей не-терминальной
задачи. `STAGE_TRANSITIONS`/`QG_CHECKS`/схема БД/сигнатуры/новые флаги — без изменений. Детали —
`docs/work-items/ORCH-086/06-adr/ADR-001-reconciler-f1-terminal-skip-and-dedup.md`.
- **F-2 plane-side:** опрос Plane API per-project → `handle_status_start` /
`handle_verdict` из `webhooks/plane.py` (логика не дублируется).
**ORCH-068 (livelock-fix):** (1) задачи в **терминальной группе** Plane