Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
9f4f4f7
`publish-handoff`'s act becomes `handoff_publish_atomic`, one impleme…
Oct 20, 2026
357ec07
`write-handoff` writes a lane's handoff in the checkout its writes go…
Oct 21, 2026
548095e
`write-handoff` asks the managed seam again on what S3 fetched, so a …
Oct 21, 2026
43baa97
Merge slice 1b at 6ecfc52 into slice 2a: git found no conflict, and `…
Oct 21, 2026
6ee2c11
`write-handoff` joins `lane_row_gate`'s row group, so under the opt-i…
Oct 21, 2026
d5cabdc
`set-restart-intent --handoff` takes the row's own spellings, a repos…
Oct 21, 2026
b02618c
Merge slice 1b at 10169f3 into slice 2a: exit 6 names both sides' new…
Oct 21, 2026
6c2a9cc
MUST 1 (rv2a's pre-review of slice 2a): `write-handoff` counts a hand…
Oct 21, 2026
011f241
SHOULD 1 (rv2a's pre-review of slice 2a): `write-handoff` writes a fi…
Oct 21, 2026
7561d5a
SHOULD 3 (rv2a's pre-review of slice 2a): `write-handoff` asks the ma…
Oct 21, 2026
346e403
SHOULD 2 (rv2a's pre-review of slice 2a): S3's refusal of the registe…
Oct 21, 2026
3cd2162
SHOULD 4 (rv2a's pre-review of slice 2a): `write-handoff`'s tests now…
Oct 21, 2026
96bf464
NITs 1 and 3 (rv2a's pre-review of slice 2a): `write-handoff` and `ha…
Oct 21, 2026
ea1d293
`commit_publish`'s S4.4 refusal reads HEAD, so where another writer's…
Oct 21, 2026
287f6e5
Merge slice 1b at e6ea8f8 into slice 2a: exit rows 2 and 6 list both …
Oct 21, 2026
1624f17
S4.4's refusal sends a commit another writer rewrote, and a HEAD that…
Oct 21, 2026
e1a166a
Merge slice 1b at 514b0c4 into slice 2a: no conflict, and 2a's S4.4 c…
Oct 22, 2026
76a019b
A37: `write-handoff` names the handoff `--stamp` and `--prepend` edit…
Oct 22, 2026
0d7d853
Merge slice 1b at 0c822f3 into slice 2a: no conflict, one test of 1b'…
Oct 22, 2026
a928dbb
A44: `write-handoff` holds its `handoffs/` rule in another clone of t…
Oct 22, 2026
2fc394d
A45: `write-handoff` asks whether its handoff is tracked whatever S3 …
Oct 22, 2026
e2037b9
A46: A37 keeps a `--stamp` or `--prepend` on HEAD only where a replay…
Oct 22, 2026
5ad9b4a
A47: `write-handoff` refuses a target inside a git directory, so a `-…
Oct 22, 2026
68014b4
A48: A46 follows a moved handoff only to a file the replay can write,…
Oct 22, 2026
2a41e83
A49: tests for the fifteen checks of `write-handoff` and `handoff-pat…
Oct 22, 2026
37b000d
A51: tests for the seven checks that the second half of m2a's mutant …
Oct 22, 2026
1bb4f75
A52: tests for the three checks that m2a's last re-check of slice 2a …
Oct 22, 2026
f43deb3
Merge slice 1b at 59551dd into slice 2a: four blocks resolved as unio…
Oct 23, 2026
ed63c17
A53: a test for 606, the write whose commit an unlocked writer's land…
Oct 23, 2026
6d861d4
A54: 601 in the translation the three verbs share: `write-handoff`, `…
Oct 23, 2026
31c6198
A55: 602, a repository-relative cell or `--target` whose `.` or `..` …
Oct 23, 2026
36a25da
A56: 603, `write-handoff` answers the shared act's two restart-fence …
Oct 23, 2026
c962db7
A57: 604, as lane openRepoTools-3 ruled it, `write-handoff` commits a…
Oct 23, 2026
7ffbcb0
A58: 732, carried in 2a's file, `refresh_workspace_strays`' `git stat…
Oct 23, 2026
60ddad3
A59: the NITs of lane openRepoTools-3's review of #312, a fenced `--p…
Oct 23, 2026
7bc572c
A60: 991, under 723, `handoff-path` and `set-restart-intent --handoff…
Oct 24, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions docs/README-lanes.md
Original file line number Diff line number Diff line change
Expand Up @@ -1218,12 +1218,12 @@ else.
|---|---|
| 0 | done — and for a write, **confirmed**: the commit was read back on origin before the writer said `pushed` (Amendment 23 S4) |
| 1 | environment — no register, no writer |
| 2 | refusal — bad arguments, the object is held, an unknown alias, or `commit` refusing to publish local commits that are not register or handoff writes, from a checkout whose HEAD is off the branch, or that it cannot read (#194; it pushes none of them); and, Amendment 23 S3, every writer with nothing written, where its checkout cannot be brought to origin's tip: a fetch that failed (`LANES_NO_FETCH=1` is one, for a writer), an operation in progress or unmerged entries, HEAD off the branch, staged entries that are not the write's own, unpushed commits (the publish act excepted), a diverged branch, a pending change to a path the write commits, or a fast-forward git refused; a `LANES_REPO` naming a directory below its checkout's top level, from which git would read the write's pathspecs, before any edit; the withdrawn `--sweep`; the publish act over a stack origin has moved past (S4); and `claim` or `add-row` meeting origin moved under its own checks on each of six attempts, before any edit (S3, S4) |
| 2 | refusal — bad arguments, the object is held, an unknown alias, or `commit` refusing to publish local commits that are not register or handoff writes, from a checkout whose HEAD is off the branch, or that it cannot read (#194; it pushes none of them); and, Amendment 23 S3, every writer with nothing written, where its checkout cannot be brought to origin's tip: a fetch that failed (`LANES_NO_FETCH=1` is one, for a writer), an operation in progress or unmerged entries, HEAD off the branch, staged entries that are not the write's own, unpushed commits (the publish act excepted), a diverged branch, a pending change to a path the write commits, or a fast-forward git refused; a `LANES_REPO` naming a directory below its checkout's top level, from which git would read the write's pathspecs, before any edit; the withdrawn `--sweep`; the publish act over a stack origin has moved past (S4); and `claim` or `add-row` meeting origin moved under its own checks on each of six attempts, before any edit (S3, S4); and `publish-handoff`'s restart fence on its bound file or pre-image (`write-handoff` answers those 7, so its 2 is never a restart fence's) |
| 3 | **pushed, not confirmed: `<sha>`** (Amendment 23 S4). The write committed and pushed — or its push timed out, and a hung push often lands — and the read-back could not confirm the commit on origin: the fetch failed or timed out, or origin does not hold it. Never success. The commit stays on HEAD — unless another writer in the checkout **rewrote** it while its push was in flight (an unlocked writer's rebase), which the words then say: it is not on HEAD at all, and what reached origin is read by content — and the next write's S3 finds it by content either way: published, there is nothing to do; not, every write refuses until the publish act sends it or an archive (S6.3) takes it |
| 4 | the mutex could not be taken within 60s |
| 5 | an edit moved more than one line and was refused |
| 6 | `git add` or `commit` failed — or the commit is **kept on HEAD and named** (sha, subject, `git show`): a sixth push refused because origin moved (Amendment 23 S4's bound; where S3 finds the sixth move before any edit, nothing is committed and it is 2), a replay's drop refused over an uncommitted change, a commit another writer made on top of this one in the checkout before the replay drops it, or under it (this write's commit is known by what it is, never by HEAD read after the fact, and the drop moves the branch only from that commit and only where it sits on origin's history, so it never takes another; `commit`'s carry form drops to its own commit's parent by design, so one under it stays, the hand edit goes back to the working tree with its copy kept, and the re-run's S3 refuses on it: 2, not 6), a commit made in the same moment as this write's that cannot be told from it (nothing is pushed), or a push (a write's, or the publish act's) refused with origin unmoved, which no replay can mend. Or another writer in the checkout **rewrote** this write's commit (a `pull --rebase` with no lock): it is not on HEAD at all, and what reached origin is read by content (`git cherry -v origin/main HEAD`). Or, where the drop's tree step was refused and another writer committed on the branch in between, the commit is named off HEAD, with `reflog -5`. Every later write from that checkout refuses until the lane publishes or archives it |
| 7 | another act got there first and this one wrote nothing: `claim`'s `CLAIM-LOST` (another lane's claim landed first), and `set-lane-state` / `set-lane-tree`'s lifecycle fence (openRepoTools#91, below) |
| 6 | `git add` or `commit` failed — or the commit is **kept on HEAD and named** (sha, subject, `git show`): a sixth push refused because origin moved (Amendment 23 S4's bound; where S3 finds the sixth move before any edit, nothing is committed and it is 2), a replay's drop refused over an uncommitted change, a commit another writer made on top of this one in the checkout before the replay drops it, or under it (this write's commit is known by what it is, never by HEAD read after the fact, and the drop moves the branch only from that commit and only where it sits on origin's history, so it never takes another; `commit`'s carry form drops to its own commit's parent by design, so one under it stays, the hand edit goes back to the working tree with its copy kept, and the re-run's S3 refuses on it: 2, not 6), a commit made in the same moment as this write's that cannot be told from it (nothing is pushed), a push (a write's, or the publish act's) refused with origin unmoved, which no replay can mend, or a whole-file `write-handoff` whose copy origin changed meanwhile, which no replay may overwrite (S4.4), or a `--stamp` or `--prepend` one whose handoff origin deleted meanwhile, which a replay would find nothing to write into (one moved with its row's cell, to a file under `handoffs/` that origin has, is replayed into the moved file), or an Amendment 8(d) handoff `write-handoff` wrote whose commit or push in its own repository failed (the command that finishes it is said). Or another writer in the checkout **rewrote** this write's commit (a `pull --rebase` with no lock): it is not on HEAD at all, and what reached origin is read by content (`git cherry -v origin/main HEAD`). Or, where the drop's tree step was refused and another writer committed on the branch in between, the commit is named off HEAD, with `reflog -5`. Every later write from that checkout refuses until the lane publishes or archives it |
| 7 | another act got there first and this one wrote nothing: `claim`'s `CLAIM-LOST` (another lane's claim landed first), and `set-lane-state` / `set-lane-tree`'s lifecycle fence (openRepoTools#91, below), and `publish-handoff` / `write-handoff`'s restart fence — `write-handoff` answers its bound file and pre-image 7 too, where `publish-handoff` keeps its 2 (Amendment 23, slice 2a) |
| 9 | `CLAIM-LOST` — issue #30's own dead-lane verdict could not be reconfirmed before a `--force` takeover's push landed: the source lane resumed, a live session now backs it up, or that could not be read at all (`claim` only). Never 7 — that code is a RIVAL's claim, and this is the same lane the takeover was granted over |
| 10 | `lane-state`: the lane's lifecycle snapshot is there and could not be read, or is of this schema and not a whole record, so nothing can be read out of it as a snapshot (openRepoTools#91 and #115, below) — never the 8 that means it has none. It was 9 until #61 spent 9 on `claim`. `lane-trees`: the lane's `trees` directory is there and could not be listed (#157 item 4e) — never the 8 that means it recorded no tree |
| 8 | no record — and no other meaning |
Expand Down
Loading