fix(reconciler): terminal-skip + state_uuid dedup on F-1 path (ORCH-086) #86
Reference in New Issue
Block a user
Delete Branch "feature/ORCH-086-orch-86-reconciler-telegram-et"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
ORCH-086 — терминал-скип и
state_uuid-dedup на пути F-1 реконсилятораЗакрывает F-1-пробел ORCH-068: терминал-исключение и in-memory dedup (изначально только F-2) распространены на gate-side путь реконсилятора. Устраняет периодическое ложное
🔧 reconciler: ET-002 done разблокирована (потерян webhook)для задачи, терминальной в Plane, но дрейфнувшей в БД орка (особенно после рестарта).Изменения (
src/reconciler.py, локализовано)_resolve_issue_status(task)— один сетевой резолв Plane-статуса задачи за тик(states, groups, state_uuid)после дешёвых локальных гардов (busy/young/escalated в Plane не ходят); never-raise →({}, {}, None).completed/cancelled(fallback — логические ключиdone/cancelled, ЛИБО стадия в БД орка ∈{done, cancelled}, т.к.cancelledне отсекается выборкой) → раннийreturn+skipped_terminal_total++. Не подчинёнreconcile_skip_blocked_enabled(тот гейтит только Guard 2)._is_blocked_or_needs_inputпереиспользует резолв D1 (опц. аргументы;_UNSET→ самостоятельный резолв для прямых/легаси-вызовов, поведение 1:1)._note_unblockна F-1 передаётstate_uuid→ dedup работает на обоих путях (deduped_total++на повторе).Инварианты
STAGE_TRANSITIONS,QG_CHECKS, схема БД, сигнатурыadvance_stage/advance_if_gate_passed/_note_unblock, формаstatus()/GET /queue, новые config-флаги — без изменений; never-raise сохранён. Анти-регресс (AC-4): легитимный unblock реально застрявшей не-терминальной задачи по-прежнемуadvance+ ровно один Telegram.Тесты
tests/test_reconciler.py— TC-86-01..09/11 (терминал по группе completed/cancelled, fallback по логическому ключу, DB-side cancelled, проброс/dedupstate_uuid, анти-регресс, never-raise, независимость от Guard-2-флага).tests/test_reconciler_plane.py— TC-86-10 (формаstatus()неизменна).tests/test_orch026_task_deps.py— обновлён мок Guard 2 под эволюцию сигнатуры.Документация
docs/architecture/README.md(раздел Reconciler F-1) +CHANGELOG.md.docs/work-items/ORCH-086/06-adr/ADR-001-reconciler-f1-terminal-skip-and-dedup.md.Refs: ORCH-086
🤖 Generated with Claude Code
132206d2fcto9c19588bcd