Development record
The build's peers check cannot see a lane that has neither moved nor claimed the intent: the peer listing (peers.Report.Locate) sees a holding only when a sibling worktree or branch holds the intent in another bucket, and the claim half sees only a live claim in the shared run store, so a lane at steps 1 to 4 of any run (worktree made, brief written, implementer working, nothing committed that moves the intent) and a second clone of the repository are both invisible, and a second 'abcd build' of the same intent in another checkout starts a duplicate run. The other half of the same check, a peer named and not read being skipped silently while an unreadable claim refuses (fail-open on one side, fail-closed on the other), is iss-2609252049491342, fixed in the same lane. Closing this half needs Start to write a claim into the shared run store when it creates a run, which needs a session identity the host driver does not have yet.
The build's peers check cannot see a lane that has neither moved nor claimed the intent: the peer listing (peers.Report.Locate) sees a holding only when a sibling worktree or branch holds the intent in another bucket, and the claim half sees only a live claim in the shared run store, so a lane at steps 1 to 4 of any run (worktree made, brief written, implementer working, nothing committed that moves the intent) and a second clone of the repository are both invisible, and a second 'abcd build' of the same intent in another checkout starts a duplicate run. The other half of the same check, a peer named and not read being skipped silently while an unreadable claim refuses (fail-open on one side, fail-closed on the other), is iss-2609252049491342, fixed in the same lane. Closing this half needs Start to write a claim into the shared run store when it creates a run, which needs a session identity the host driver does not have yet.
Grounds
- pursued: a second build of one intent from another checkout, the first started with --session, is refused as held; a duplicate run started past such a claim would show it wrong. A session-less build stays invisible by design and is named as such.
Frontmatter
| id | iss-2609252050506863 |
|---|---|
| type | issue |
| lifecycle | resolved |
| severity | minor |
.abcd/work/issues/resolved/iss-2609252050506863-the-build-s-peers-check-cannot-see-a.md
open on GitHub ↗ · commit history ↗
mentions1
- iss-2609252049491342The build's peers check (internal/core/implement/loop/check.go peersCheck) fails open on one side and closed on the other: a peer the peer listing names and does not read (Peer.NotRead: its directory or git refuses, its record folders cannot be listed, its ledger holds one id in two folders) is skipped silently by peers.Report.Locate, so a peer whose holding is unknown reads as holding nothing, while the claim half refuses an Unreadable claim as a holding. A record the check cannot see is not one it may start past; the unread peer should refuse as the unreadable claim does, naming it.