Objective
Restore scheduled shipping after PRs stopped at #1701.
Diagnosis
run-herdr-worker.shticks every 5 minutes. The GitHub worker is not dead.- After #1331โ#1373 were reopened,
python3 -m research.pipeline statusstill returnedcompleted. - The worker treated completed+open as a shipping failure, tried to add
agent:failed(the label edit did not stick), released the lease, and selected #1331 again. - Watchdog cron ran, but ready-count went through the
READY_JSONenvironment variable and the stall detector ignored the error loop, so it loggednot stalledwithready=0.
Approach
python3 -m research.pipeline restartstarts a new run for an open issue whose previous run completed.pipeline promptalso starts a new run when it loads a completed envelope on an open issue.- The worker restarts instead of labeling
agent:failed. - Watchdog counts ready issues via a temp file, loads env before provider calls, and treats the completed-reopen error loop as a stall.
Validation
python3 -m pytest -q tests/test_github_sync.py tests/test_github_pipeline.pypython3 -m research.pipeline validate