Development record
2026-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).
2026-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).
Frontmatter
| id | dcn-2610161141338923 |
|---|---|
| type | decision |
| date | 2026-10-16 |
.abcd/work/decisions/dcn-2610161141338923-a-repository-whose-canonical-home-is.md
open on GitHub ↗ · commit history ↗
mentions4
- dcn-26101610403782092026-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).
- dcn-26101612232122182026-10-16 — reservation.fork_origin names the one fork whose reservations it allows, as "<owner>/<name>", instead of a bare "allow" (facilitator-on-delegation, drain-many-accounts): the key takes "refuse", the bundled default, or one owner and one name, each a plain GitHub name, read as before through the layered configuration and only once the forge has named an origin push URL a fork; a fork the forge names that is not the allowed one, compared without regard to case, is refused naming both, and a waived check is never silent: reserve, a run record and a drain lane say "origin is a fork the repository allows (<owner>/<name>)"; the bare "allow" is dropped, since it never shipped (grounds: a committed "allow" in a repository that is itself a fork is inherited by every fork of it, so a fork of the fork would reserve silently where no one working on the repository can see it; naming the fork keeps the waiver to the one repository the setting was written for; refines dcn-2610161141338923).
- 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).
- spc-2610161044461448drain-many-accounts