Добавить в корзинуПозвонить
Найти в Дзене

Закрытый без merge PR слишком часто выглядит как обычное движение вперёд

Именно так автоматизация начинает работать по ложному следу. В инженерных системах проблема обычно не в самом PR-событии. Проблема в том, что updated, approved, merged и фактически закрытый кандидат слишком долго живут рядом, пока человек вручную не восстановит смысл. Из-за этого закрытая ветка может ещё некоторое время выглядеть как активная работа. Напоминания, follow-up и operational reading продолжают исходить из предположения, что change still lives. В текущем dogfooding AgentSyncHub этот кусок поведения стал жёстче. Если GitHub прислал closed без merge или Bitbucket прислал rejected / declined, система больше не складывает это в обычный update. Она нормализует событие в отдельный pull_request_closed с явным meaning: candidate_closed. Это меняет не формулировку. Это меняет управляемость. Теперь у control plane есть отдельный признак того, что кандидат не движется вперёд, а выбыл из потока. Не нужно дочитывать payload, спорить о трактовке статуса или держать это различие в голо

Закрытый без merge PR слишком часто выглядит как обычное движение вперёд.

Именно так автоматизация начинает работать по ложному следу.

В инженерных системах проблема обычно не в самом PR-событии.

Проблема в том, что updated, approved, merged и фактически закрытый кандидат слишком долго живут рядом, пока человек вручную не восстановит смысл.

Из-за этого закрытая ветка может ещё некоторое время выглядеть как активная работа.

Напоминания, follow-up и operational reading продолжают исходить из предположения, что change still lives.

В текущем dogfooding AgentSyncHub этот кусок поведения стал жёстче.

Если GitHub прислал closed без merge или Bitbucket прислал rejected / declined, система больше не складывает это в обычный update.

Она нормализует событие в отдельный pull_request_closed с явным meaning: candidate_closed.

Это меняет не формулировку. Это меняет управляемость.

Теперь у control plane есть отдельный признак того, что кандидат не движется вперёд, а выбыл из потока.

Не нужно дочитывать payload, спорить о трактовке статуса или держать это различие в голове.

Для зрелых команд это важно по простой причине:

ложный "ещё живой PR" создаёт лишнюю неопределённость в очередях, напоминаниях, handoff и review analytics.

Когда closed semantics видны явно, система точнее показывает, что именно остановилось, а что действительно продолжает движение.

Проблема редко в том, что автоматизация не видит событие.

Проблема в том, что она слишком долго не различает конец движения и очередной update.

AgentSyncHub