Development record
2026-10-16 — A fork origin refuses reservations (facilitator-on-delegation, drain-many-accounts): a fresh reservation and a drain's start ask the forge once per process whether a github.com origin is a fork, and refuse a fork, naming the repository it was made from and the command that sets origin to it; renewals and releases never ask, an origin that is not on github.com is not asked, and a forge that does not answer gives a warning and lets the act through, so a forge outage never stops leases being kept (grounds: a fork's reservation branches are invisible to every other account, so a hold there protects no one; iss-2610161015400509).
2026-10-16 — A fork origin refuses reservations (facilitator-on-delegation, drain-many-accounts): a fresh reservation and a drain's start ask the forge once per process whether a github.com origin is a fork, and refuse a fork, naming the repository it was made from and the command that sets origin to it; renewals and releases never ask, an origin that is not on github.com is not asked, and a forge that does not answer gives a warning and lets the act through, so a forge outage never stops leases being kept (grounds: a fork's reservation branches are invisible to every other account, so a hold there protects no one; iss-2610161015400509).
Frontmatter
| id | dcn-2610161040378209 |
|---|---|
| type | decision |
| date | 2026-10-16 |
.abcd/work/decisions/dcn-2610161040378209-a-fork-origin-refuses-reservations.md
open on GitHub ↗ · commit history ↗
mentions5
- dcn-26101611413389232026-10-16 — A repository whose canonical home is itself a GitHub fork allows reservations there with reservation.fork_origin set to "allow" in .abcd/config.json (facilitator-on-delegation, drain-many-accounts): the key takes "allow" or "refuse", the bundled default, and is read through the layered configuration, the repository file winning over the machine file, only once the forge has named an origin push URL a fork, so a malformed key can stop no act on a repository that is not a fork; the fork refusal names the key (grounds: a fork that is the shared home of the work is where every account reserves, so the refusal would only stop it reserving; whether origin is the shared home is a fact about the repository, so its committed file may say so; refines dcn-2610161040378209).
- dcn-26101618270363202026-10-16 — A drain's reservation that renews this copy's lapsed reservation asks the fork question, and the lane a no opens on a judgement's hold takes the fork check from the recorded judgement (facilitator-on-delegation, drain-many-accounts review round, refining dcn-2610161040378209): that push makes the reservation the drain's hold afresh, the one a lane then opens on, so it asks the forge as a fresh reservation does, whether the drain takes it to ask a judgement or a lane's start renews a judgement's hold that lapsed before the no; a drain's renewal of a live hold, a person's plain reserve that renews, and every release still ask nothing. Each judgement keeps the hold it was asked on (judgements[].hold), so the lane opened on that hold in any later move names the check its reservation could not make or waived, not only the lane the answering move opens (grounds: spc-2610161044461448 step 10; dcn-2610161141338923; the review of steps 1 to 18).
- iss-2610161015400509Reservations are made only on the remote named origin, and nothing checks that origin is the repository pull requests target, so an account whose origin is a fork reserves on the fork, invisibly to every other account, and works issues others hold.
- itd-2610161016394967Drains on several accounts share the work
- spc-2610161044461448drain-many-accounts