Development record
2026-10-23 — Release hold (iss-2610222014550692), round 5, ruled by the coordinating facilitator on delegation while the product thinker is away. A person admitting a pull request that another person withdrew, after taking over their release, is refused, with the reason and the remedy named: the withdrawer admits it, or takes the release over themselves. This matches the rule that another person's copy never re-arms, and a refusal can be relaxed later, where an arm made across accounts cannot be undone. Every real disarm abcd makes gets a comment, including a first withdrawal made on a retry and a second one after the owner re-armed by hand. The comment sentences are fixed: re-armed reads 'abcd release hold: the merge of #N is re-armed; the hold for release vX has ended.'; already armed reads 'abcd release hold: the merge of #N is armed; the hold for release vX has ended.'; not re-armed reads 'abcd release hold: the merge of #N is not re-armed; the hold for release vX has ended.' followed by one clause: head moved 'Its head changed while it was held, so its owner needs to re-arm it.', no merge queue 'It can merge now and there is no merge queue, so its owner can merge it.', refused 'GitHub refused to re-arm it five times, so its owner needs to re-arm it.', closed 'It was closed.', merged 'It was merged.'. Any other state posts nothing, and neither does a mismatched node id or a partial withdrawal. The withdrawn and admitted sentences are unchanged. The pull request lists every sentence so the product thinker can review the posted wording before the first real cut posts it. A change to a withdrawal's state counts only when the withdrawer's own push carried it, and a tombstone ends the hold only when the holder pushed it; anything else is reported and not acted on.
2026-10-23 — Release hold (iss-2610222014550692), round 5, ruled by the coordinating facilitator on delegation while the product thinker is away. A person admitting a pull request that another person withdrew, after taking over their release, is refused, with the reason and the remedy named: the withdrawer admits it, or takes the release over themselves. This matches the rule that another person's copy never re-arms, and a refusal can be relaxed later, where an arm made across accounts cannot be undone. Every real disarm abcd makes gets a comment, including a first withdrawal made on a retry and a second one after the owner re-armed by hand. The comment sentences are fixed: re-armed reads 'abcd release hold: the merge of #N is re-armed; the hold for release vX has ended.'; already armed reads 'abcd release hold: the merge of #N is armed; the hold for release vX has ended.'; not re-armed reads 'abcd release hold: the merge of #N is not re-armed; the hold for release vX has ended.' followed by one clause: head moved 'Its head changed while it was held, so its owner needs to re-arm it.', no merge queue 'It can merge now and there is no merge queue, so its owner can merge it.', refused 'GitHub refused to re-arm it five times, so its owner needs to re-arm it.', closed 'It was closed.', merged 'It was merged.'. Any other state posts nothing, and neither does a mismatched node id or a partial withdrawal. The withdrawn and admitted sentences are unchanged. The pull request lists every sentence so the product thinker can review the posted wording before the first real cut posts it. A change to a withdrawal's state counts only when the withdrawer's own push carried it, and a tombstone ends the hold only when the holder pushed it; anything else is reported and not acted on.
Frontmatter
| id | dcn-2610230833367984 |
|---|---|
| type | decision |
| date | 2026-10-23 |
.abcd/work/decisions/dcn-2610230833367984-release-hold-iss-2610222014550692-round.md
open on GitHub ↗ · commit history ↗
mentions2
- dcn-26110509591616002026-11-05 — The release hold's posted sentences change in three places, amending dcn-2610230833367984, whose other sentences stand. In place of its withdrawn sentence: "abcd release hold: the merge of #1234 is withdrawn by octo while release v0.16.0 is cut, and is re-armed after it where the merge gate arms its head." New, where the merge gate holds a re-arm: "abcd release hold: the merge of #1234 stays withdrawn after release v0.16.0: no review or approval in this checkout names its head 0123456789ab. abcd land from a checkout holding the review re-arms it." New, where a withdrawn or admitted pull request stands armed by another account at a head the merge gate does not arm (state standing): "abcd release hold: the merge of #1234 stays armed at 0123456789ab, which the merge gate in this checkout does not arm; the hold for release v0.16.0 has ended. To withdraw it: gh pr merge 1234 --disable-auto, and take it out of the merge queue on its page if it is queued." Each carries validated fields only, as the others do. An older binary reads a tip carrying standing as unreadable, which holds merges for it for up to 2 hours where the release is untagged (the reservation's lease), so that hold is this record's cost and not a fault to chase.
- iss-2610222014550692A release reservation (abcd reserve rel-vX.Y.Z) holds only merges armed after it: a pull request whose auto-merge was already on, or that already sat in the merge queue, still merges into the default branch mid-cut, from any copy or account, a running drain's included. Today the cutting session has to list and rule on those by hand right after reserving and again before merging the release pull request (commands/reserve.md, /abcd:launch 'Before step 1'), a manual step that is easy to miss on an every-other-day cadence.