v1.45.0 ·
The backlog works itself
Unattended mode let an agent finish one item with nobody watching. Then it stopped and waited for a person. Somebody still had to start the agent, open the pull request, wait for CI, merge, release, and pick the next item. That somebody was the bottleneck.
What changed
A script now works through the agreed backlog on its own. Every few minutes it takes the next item, hands it to an agent in a separate copy of the code, and waits. When the work is done and tested, the script opens the pull request. When the checks pass, it merges, writes the release notes entry and publishes the release. One at a time, never two at once. Then it moves on.
It also knows when to stop. A file named STOP halts everything. An item that costs more than a set limit is stopped and put on hold. An item whose checks fail twice goes on hold with the reason. When GitHub or the agent says slow down, it waits, longer each time.
Why a script and not an agent
The driver makes no judgement calls, so it does not need to be an agent. The order of work comes from the backlog. The work comes from an agent following written rules. The release comes from the release tools. The script only puts them in sequence, which means it can be tested end to end with every outside call faked.
The rule that matters most is what happens when a release breaks halfway. A failed check gets one more try. A failure during a release gets none. The queue stops and waits for a person, because a half-finished release is the one state a loop must never paper over.
What it does not do
Two things stay with the maintainer on purpose: how much the agent is allowed to do on the machine, and turning the schedule on. Until both are set, the script does nothing except say so.