Found on 2026-09-23 during coordinator triage. Three PRs were ReviewGate-APPROVED on their current head, had green CI and were mergeable CLEAN, yet they sat unmerged for 17+ hours because nothing retried the merge after the owning worker exited:
The merge decision is tied to the live worker's machine. Once that machine is gone, an approved PR has no owner that re-evaluates mergeability when its blocking condition clears (draft → ready, CI running → green).
D3 because the fix sits on the Watchdog/MergeQueue/Driver lifecycle seam, is correctness-critical (it must not merge anything the coverage guard wouldn't), and needs a durable re-evaluation trigger that survives worker exit and server restart.
Found on 2026-09-23 during coordinator triage. Three PRs were ReviewGate-APPROVED on their current head, had green CI and were mergeable CLEAN, yet they sat unmerged for 17+ hours because nothing retried the merge after the owning worker exited:
worker_env; delete ConfigDir's old fallbacks #1947 (bd-cblemv) and agy parity T7 — agy workers can't resume, be nudged, or auto-resume: implementsplice_prompt/2#1966 (bd-b7e33c): the Watchdog's auto-merge failed repeatedly between 17:06 and 17:10Z on 09-22 with405 "Pull Request is still a draft". The PRs left draft at about 21:05Z, after their workers had exited, and no merge attempt followed.f05c441a. The Watchdog deferred the merge because CI was:running, then loggedWorker.Driver: machine died for task=bd-45tkhqat 22:28Z. There was no retry after CI went green.The merge decision is tied to the live worker's machine. Once that machine is gone, an approved PR has no owner that re-evaluates mergeability when its blocking condition clears (draft → ready, CI running → green).
D3 because the fix sits on the Watchdog/MergeQueue/Driver lifecycle seam, is correctness-critical (it must not merge anything the coverage guard wouldn't), and needs a durable re-evaluation trigger that survives worker exit and server restart.