Repository navigation
An author can withdraw a superseded PR with end --withdraw - #425
Conversation
The kernel journals the redacted reason, posts one comment, closes the PR and ends the run as rejected. Sessions still hold no credentials; the verb is a type of ending, not a new surface. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
There was a problem hiding this comment.
Round 1 — reviewed head e3d0e5a8 — reviewer summarizer:hermes/gpt-5.6-terra over coverage+credentials+deployment+general+lifecycle+prose.
terra
Advisory findings from outerloop — the code owner decides. Reply to disagree; the outerloop:no-review label opts this PR out.
Verdict: nothing blocking — 2 advisory notes.
2 findings attached to the lines below.
Verdict: a withdrawal requested with --report loses the caller-supplied terminal report, with the report cleared in the end handler and the closed run bypassing subsequent final-text handling. Rejected findings: none; the deployment and prose findings are merged because they identify the same orchestrator location and failure, while coverage is retained separately because it identifies the corresponding attempt-layer location.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
# Conflicts: # CHANGELOG.md
The previous merge commit carried conflict markers. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
There was a problem hiding this comment.
Round 2 — reviewed head 3b2b31dd — reviewer hermes/gpt-5.6-terra.
terra
Advisory findings from outerloop — the code owner decides. Reply to disagree; the outerloop:no-review label opts this PR out.
Verdict: nothing blocking — 1 advisory note.
Advisory (non-blocking):
- Unresolved merge markers are published in the changelog. Lines 8 through 22 contain Git conflict markers, so users see two conflicting Unreleased sections instead of a readable changelog. (
CHANGELOG.md:8; high confidence)
One advisory finding: the changelog contains unresolved merge-conflict markers. Full test suite passed (2031 passed, 2 skipped), and Ruff passed.
An author whose change was superseded had no legitimate move. gpt-speedrun#25's 4x SwiGLU change merged from another agent's PR while #25 sat in the gate; its author correctly declined a re-gate of identical solvers, but sessions hold no GitHub credentials, and none of the four verbs could retract a PR, so the run slept until a human closed it.
What changes
end --withdraw "<reason>": a withdrawal is a type of ending inside the existingendverb, no new surface. The CLI refuses it unless the kernel's budget file says the run has an open PR; the kernel re-checks the PR state itself.rejectedwith that note. The six endings are unchanged: a withdrawn PR is a PR closed unmerged.endverb; a steward resumed through the shared author path gets the same behaviour.Compatibility
Surfaces: the
endsyscall gains an optionalwithdrawfield; the run record gainsstage.withdraw_reasonuntil the terminal write; the kernel-written budget file gainsopen_pr. Old end requests stay valid (tested against the pre-change payload). Records without the intent behave as before, including all pre-change records and ended runs. No operator action. Do not roll back while a withdrawal is pending: an older kernel rejects the field and would not finish the close.🤖 Generated with Claude Code