Development record
Directory-level reservation footprints over-reserve and serialise unrelated lanes. On 2026-10-22 four lanes were held up by footprints naming whole directories or packages when their work changed a few files: the worktree store against the merge gate, the sweep-reservations branch holding all of internal/surface/cli against a store build adding two new files there, a release hold against internal/core/landing, and a planning branch holding whole record directories. Each was cleared only by hand-narrowing the footprint to the files the branch changed. Specs' footprint lines and abcd reserve both take a directory as readily as a file, and nothing warns when a directory is named.
Directory-level reservation footprints over-reserve and serialise unrelated lanes. On 2026-10-22 four lanes were held up by footprints naming whole directories or packages when their work changed a few files: the worktree store against the merge gate, the sweep-reservations branch holding all of internal/surface/cli against a store build adding two new files there, a release hold against internal/core/landing, and a planning branch holding whole record directories. Each was cleared only by hand-narrowing the footprint to the files the branch changed. Specs' footprint lines and abcd reserve both take a directory as readily as a file, and nothing warns when a directory is named.
Frontmatter
| id | iss-2610230016544142 |
|---|---|
| type | issue |
| lifecycle | resolved |
| severity | minor |
.abcd/work/issues/resolved/iss-2610230016544142-directory-level-reservation-footprints.md
open on GitHub ↗ · commit history ↗
mentions2
- iss-2610230826159867A resolved issue's resolved_by.commit goes stale when the commit it names is rewritten before it reaches the default branch, and nothing follows it. On 2026-10-22/23 lane C re-stamped records by hand three times: twice after rebasing a stacked branch onto a moved parent, and once after re-wording an unpushed commit to drop a scoped prefix. Each time RS003 found the stamp unreachable and the ledger gate failed until the sha was edited by hand. Two designs are open and not chosen here. A lookup by patch-id follows a reworded or rebased unpushed commit to its new sha, but does not survive a squash merge, which already rewrites the cited commit out of existence and which RS003 reports. Stamping at land time instead (resolve names the change, the land step writes the merged sha) survives a squash but needs the land step to own the stamp.
- iss-2610230839002949An intent's build reserves its spec's whole Footprint packages line once, for every lane of the run, and never reads a step's own packages line, so the reservation cannot start at the first step's files and widen step by step. Building that needs a reservation per open lane (the union of the steps in flight, since steps marked needs: none run beside each other), a widening act as each lane opens (a reserve with the union and the tip's term, as widenReservation already does, since claim.Request.Narrow refuses to widen), and a narrowing as each step lands. That is more than the directory-warning fix for iss-2610230016544142 could carry, so it is filed on its own.