Development record
Under away mode the stop hook's owed-work list held Eve's stop, wake after wake, on build/run-2610311213205613-lane-1 (a drain session's build lane) and chore/drain-session-records (the drain session's own branch), neither of which this session made or may push. The reader's ownership is per working copy by design (findOwn in internal/core/autonomy/owedread.go: this copy's HEAD reflog, the branches its guard recorded creating, the lanes of live runs in its local tier, and pull requests under its reservation key; dcn-2610180936568358, dcn-2610181003463367), and both branches entered it because the drain session and this one (Eve) were both driving from the same main checkout, the drain from the start and Eve for its builds and records: the run state sits in that checkout's .abcd/.work.local/run/ and the drain's checkouts are in its reflog. The hook never says that two live sessions share the copy, so a session reads a peer's work as its own debt and can neither push it, which AGENTS.md forbids, nor stop.
Under away mode the stop hook's owed-work list held Eve's stop, wake after wake, on build/run-2610311213205613-lane-1 (a drain session's build lane) and chore/drain-session-records (the drain session's own branch), neither of which this session made or may push. The reader's ownership is per working copy by design (findOwn in internal/core/autonomy/owedread.go: this copy's HEAD reflog, the branches its guard recorded creating, the lanes of live runs in its local tier, and pull requests under its reservation key; dcn-2610180936568358, dcn-2610181003463367), and both branches entered it because the drain session and this one (Eve) were both driving from the same main checkout, the drain from the start and Eve for its builds and records: the run state sits in that checkout's .abcd/.work.local/run/ and the drain's checkouts are in its reflog. The hook never says that two live sessions share the copy, so a session reads a peer's work as its own debt and can neither push it, which AGENTS.md forbids, nor stop.
Frontmatter
| id | iss-2610311406481214 |
|---|---|
| type | issue |
| lifecycle | open |
| severity | minor |
.abcd/work/issues/open/iss-2610311406481214-under-away-mode-the-stop-hook-s.md
open on GitHub ↗ · commit history ↗
mentions2
- dcn-26101809365683582026-10-18 — A session's own branches are named by three facts with no window bound, and only this copy's reservations count (facilitator-on-delegation, itd-2610180912189125 review round 1; refines dcn-2610180913416683): a branch other than the default branch is the session's own when (a) this working copy's HEAD reflog has checked it out at any time, (b) it is the branch of a lane recorded in a run state this copy's local tier holds (the implement loop's lanes, which build and drain cut with git worktree add, so they never reach the coordinating copy's reflog), or (c) it is the head branch of an open pull request linked to a live reservation held under this copy's key. A reservation counts only when its copy key is this copy's, so a sibling copy's reservation never holds this session. A pull request carries a reservation's work when the record id appears in its head branch's name or on a Refs:, Resolves: or Delivers: line of its body. The window bound is dropped because both instances of iss-2610170619247185 escaped it: the pull requests that fell behind were opened and last checked out before any window began, and the stacked drain lanes lived in worktrees of their own (grounds: the plan review of 2026-10-18 by an Opus and Sonnet pair, findings 1 and 10; internal/core/claim copy key; internal/core/implement/loop lane worktrees; iss-2610170619247185)
- dcn-26101810034633672026-10-18 — A branch is the session's own only while it is live and this copy's, and a branch the session creates is recorded as its own (facilitator-on-delegation, itd-2610180912189125 review round 2, blockers 3 and 5 and choice (a)'s exclusions; refines dcn-2610180936568358): when the guard's pre-tool hook sees this session run `git worktree add -b|-B <b>`, `git switch -c|-C <b>` or `git checkout -b|-B <b>`, it records `<b>` under this copy's key in the away store, under its lock, and only when no branch of that name exists yet, whether or not the person is away, because the stacked drain branches of 2026-10-17 were cut with a plain `git worktree add` before any window and carried no upstream, reflog entry, run state or record id. Stale ownership is bounded: a run's lane counts only while its run's reservation is live under this copy's key, and a finished or abandoned run's lanes never count; a branch owned through the reflog or a recorded creation counts only while it holds a commit authored by this checkout's `user.email` within the last 14 days, or a live reservation under this copy's key links it. Never own: the default branch, a tag, a branch whose open pull request another person authored, and a branch this copy only checked out to review, which the authorship rule leaves out (grounds: plan review round 2, blockers 3 and 5; lanes are cut from the default branch; the 60 run states and the five unlanded lanes of 2026-10-12 in this checkout)