Development record
2026-10-17 — A lane's reservation narrows only at its landing, once its validators have passed, and a resumed issue run keeps the narrowing (facilitator-on-delegation, drain-many-accounts step 12, refining dcn-2610170734071361): the narrowing is taken at the first due renewal while an issue lane is at StageLand, never during its validate stage, since a fix round there can still change a file of the reservation's footprint that a narrowing would have freed; the narrowed set is the lane's own changes, git diff --name-only from the merge base of its head and origin's default branch to its head, so a merged default branch's files are left out and a conflict resolved in a sync's merge commit counts; a changed file within the footprint that no reservation may carry (claim.ValidFootprintPath) means no narrowing at all, since leaving it out would free a file the lane still changes; claim drops a Narrow naming such a path and renews anyway, as it does one over the message cap, so a renewal never fails over its narrowing; a resumed issue run whose reservation tip lies within the record's footprint renews the tip as it stands, the widening re-reserve kept for an intent's record alone (grounds: lock de-escalation is safe only once the held set can no longer grow; a renewal that fails lets the reservation lapse while the lane lives; review of spc-2610161044461448 steps 8, 12 and 13)
2026-10-17 — A lane's reservation narrows only at its landing, once its validators have passed, and a resumed issue run keeps the narrowing (facilitator-on-delegation, drain-many-accounts step 12, refining dcn-2610170734071361): the narrowing is taken at the first due renewal while an issue lane is at StageLand, never during its validate stage, since a fix round there can still change a file of the reservation's footprint that a narrowing would have freed; the narrowed set is the lane's own changes, git diff --name-only from the merge base of its head and origin's default branch to its head, so a merged default branch's files are left out and a conflict resolved in a sync's merge commit counts; a changed file within the footprint that no reservation may carry (claim.ValidFootprintPath) means no narrowing at all, since leaving it out would free a file the lane still changes; claim drops a Narrow naming such a path and renews anyway, as it does one over the message cap, so a renewal never fails over its narrowing; a resumed issue run whose reservation tip lies within the record's footprint renews the tip as it stands, the widening re-reserve kept for an intent's record alone (grounds: lock de-escalation is safe only once the held set can no longer grow; a renewal that fails lets the reservation lapse while the lane lives; review of spc-2610161044461448 steps 8, 12 and 13)
Frontmatter
| id | dcn-2610170919040486 |
|---|---|
| type | decision |
| date | 2026-10-17 |
.abcd/work/decisions/dcn-2610170919040486-a-lane-s-reservation-narrows-only-at-its.md
open on GitHub ↗ · commit history ↗
mentions4
- dcn-26101707340713612026-10-17 — A lane's reservation narrows by a renewal that carries the narrower footprint, never by a fresh reservation (facilitator-on-delegation, drain-many-accounts step 12): claim.Request gains Narrow, honoured only with Renew and only when the fetched tip's footprint covers every path of it, so the compare-and-swap that refuses a released, lapsed-and-taken or another copy's tip refuses a narrowing too, and a hold never widens; the narrowed set is the files the lane's own non-merge commits changed from its base to its head that lie within the tip's footprint, taken at the first due renewal once an issue lane is past its implement stage; a narrowing too long for the message cap is not made and the renewal still is; an intent's run never narrows, since its one reservation covers lanes not yet opened; a later fix that changes a file outside the narrowed footprint is not re-reserved by a renewal (grounds: lock de-escalation, which only ever weakens a held lock; a plain reserve over one's own tip would re-reserve a record a person released; iss-2610152125101468)
- dcn-26101709472469372026-10-17 — A lane that leaves its landing reserves its whole footprint again before it goes on, and a resumed issue run reads its tip as narrowed only at the landing (facilitator-on-delegation, drain-many-accounts step 12, refining dcn-2610170919040486): when a landing's sync (the first land step's, or the re-sync from the arming or the merge wait) sends an issue lane back to a fresh round, the step reserves the record's found_at again, with the overlap-checked widening a resumed run makes, before the lane's state moves on, since the landing's renewal may already have narrowed the hold and a fix round after the fresh round can change any file of the found_at; a widening refused by another's reservation or by the cap refuses the step for a person, naming what it met, the lane left at its landing with its sync unpushed; a resumed issue run renews a tip within its found_at as it stands only while its lane is at the landing, and anywhere earlier reserves the found_at again, judged for overlap, so a found_at widened mid-run is published; a narrowing that was due and could not be made (a changed path no reservation may carry, a default branch, merge base or diff git could not read, or a narrowing claim dropped) is said once in the renewal's record line, as reservation kept at its full footprint with the reason (grounds: lock de-escalation is safe only while the held set cannot grow, and leaving the landing lets it grow again; final review of spc-2610161044461448 step 12)
- itd-2610161016394967Drains on several accounts share the work
- spc-2610161044461448drain-many-accounts