Repository navigation
swapped names a lane by the register row's spelling, not the log file's (#55) - #201
Merged
Merged
Conversation
…55) Work in progress, stopped for an account swap. `swapped_lanes` now takes `canon_lane` of the lane it was handed and prints `${sw_can:-$sw_l}` as the first field, the way `window-lane` already does, keeping the log's own spelling for `log_path_for` and the pickaxe key. A docs sentence and a `repoWin-1` assertion are added. Not finished: the comments in this commit say the raw name is the log LINE's spelling, which is wrong (the parser keys every line to its log FILE, so the raw name is the file's base name); and the `repoWin-1` assertion passes before the fix too, because that fixture's log file already carries the row's spelling. The regression case needs a row whose log FILE is lowercase. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…le's (#55) `swapped`'s first field is what a caller hands to `tmux rename-window`, to `--name`, to `lane <name>` and to a read of the register, so it has to be the register row's spelling. It was the raw name the record is read under, and the log parser keys every line to its log FILE (Amendment 16(c)), so that name is the file's base name: a lane whose log was written before Amendment 15 is still `lanes/log/reposwlow-1.md` beside the row `repoSwLow-1`, and `swapped` printed `reposwlow-1`. `window-lane` already canonicalised its answer the same way. `swapped_lanes` now prints `${sw_can:-$sw_l}` as the first field, taking `canon_lane` of the raw name and keeping the raw name where the register cannot answer (the 15(d) pair, an unreadable alias table), as `window-lane` does. The raw name is still what `log_path_for` and the pickaxe key use, because those read the log. The comments that called the raw name "the spelling the register row carries" are corrected, and the lane manual's `swapped` section says which spelling the first field is. The regression case seeds `repoSwLow-1` with a lowercase log file and asserts the first field of its row; it fails on the previous `lanes-edit.sh`. The existing `repoWin-1` fixture keeps an assertion too, but its log file already carries the row's spelling, so that one passes either way. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Reviewer's GuideFix Sequence diagram for canonical swapped lane outputsequenceDiagram
participant Caller
participant swapped_lanes
participant canon_lane
participant Log
Caller->>swapped_lanes: swapped_lanes
swapped_lanes->>canon_lane: canon_lane(sw_l)
canon_lane-->>swapped_lanes: register row spelling
swapped_lanes->>Log: log_path_for(sw_l)
Log-->>swapped_lanes: log data and landing key
swapped_lanes-->>Caller: first field = sw_can or sw_l
File-Level Changes
Assessment against linked issues
Possibly linked issues
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
|
Sorry @brettheap, you've used your own review budget of 250,000 diff characters for the last 7 days. You can request another review in 2 hours and 49 minutes by commenting |
…ests this PR on today's main GitHub's refs/pull/201/merge stayed on aaa7bc8 after main moved, so a re-labelled run tested the old base. A head that contains main is tested on it whatever base the run merges with. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
brettheap
pushed a commit
that referenced
this pull request
Oct 18, 2026
brettheap
pushed a commit
that referenced
this pull request
Oct 18, 2026
Brings in d424b64 (#201), 61a7378 (#215, the lane-start clause (c) TAIL fix), 19c2e25 (#232, tests/run.sh's lock owner), f685866 (#233, the openRepoShape pin at v1.1.0, 190133d) and f595e44 (#229 item 22, the hygiene rule on bench-root host paths) on top of 83d2690. Both sides change lanes-edit.sh and docs/README-lanes.md, in disjoint hunks: main's are `swapped`'s row spelling (Amendment 15) and its manual paragraph, the branch's are project-legs, lane-reconcile's leg and paired-root reads and the T018 section. git merged both with no conflict. bash -n passes on lanes-edit.sh, lane-handoff, lane-start, lane-end, tests/run.sh and tests/test_lane_helpers.sh. Lane: openRepoTools-3 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
brettheap
added a commit
that referenced
this pull request
Oct 18, 2026
…olders verifies it, not on kill -0 (#56) (#203) Landed on Brett Heap's word "land #200 #201 #203 when green" (2026-10-17), by lane openRepoTools-5. Required Linux CI (guard-launch-mode, tests, tests-no-submodule; run 39089234266) was green on head 6952a3a with main f595e44 in its tree. Independent review (lane 5, Opus, of c855985; the merges of main add nothing to the PR's diff): LAND, no blocking defect. Closes #56 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
brettheap
added a commit
that referenced
this pull request
Oct 18, 2026
…rename the only act there is (#78, #79) (#200) Landed on Brett Heap's word "land #200 #201 #203 when green" (2026-10-17), by lane openRepoTools-5. Required Linux CI (guard-launch-mode, tests, tests-no-submodule; run 39089233488) was green on head d745325 with main f595e44 in its tree. Main has since moved to cb3a2c7 only through files this PR does not change. Independent review (lane 5, Opus, of 28937d2; the merges of main add nothing to the PR's diff): LAND, no blocking defect. Closes #78 Closes #79 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Oct 18, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



What was wrong
lanes-edit.sh swapped's first field is what its callers hand totmux rename-window, to--name, tolane <name>and to a read of the register, so it has to be the register row's spelling. It was the raw name the swap record is read under.swapped_candidatestook it fromnm[k] = $2, and the comment beside it called that "the spelling the register row carries".It is not.
LOG_AWKkeys every line to its log FILE (Amendment 16(c):lane = FL, the file's base name), so field 2 is the base name oflanes/log/<name>.md. A lane whose log was written before Amendment 15 still has a lowercase file beside a mixed-case row (the code's own example islanes/log/openxfactory-4.mdbesideopenXfactory-4), andswappedprinted the lowercase name.window-lanealready canonicalised its answer (canon_lane, then${wl_can:-$wl_l});swappeddid not.Evidence, run in a temp HOME with a temp bare origin and the fixture below, against
origin/main'slanes-edit.sh(f87fd5a):A note on the issue's framing: it names the log LINE's spelling. The parser never lets a line's own spelling reach this read; the raw name is the log FILE's base name. So a row whose log file already carries the row's spelling but whose
PAUSEDline is lowercase (the existingrepoWin-1fixture) reads correctly today. The bug is the lowercase file beside a mixed-case row.What changed
swapped_lanestakescanon_laneof the raw name and prints${sw_can:-$sw_l}as the first field, the same pattern aswindow-lane. Where the register cannot answer (the 15(d) pair, an unreadable alias table) it keeps the raw name, aswindow-lanedoes.log_path_forand the pickaxe key use, because they read the log. (With a lowercase file, canonicalising first would have pointed the pickaxe atlanes/log/<Mixed>.md, which does not exist on origin, and degraded the landing rank.)swapped_candidatesthat said the raw name is the row's spelling is corrected, andswapped_lanesgets a header paragraph saying which spelling the first field is and why.docs/README-lanes.md,### swapped: one sentence saying the lane is the row's spelling, with the lowercase-file case.lane-startcompares withtolower;lane-handofftakes the first field and runscanon_laneon it; nothing else parses the output (git grep -n swapped -- lane lane-start lane-end lane-handoff lanes skills).Functions and regions edited:
lanes-edit.sh:swapped_lanes(the loop body and the closingprintf, plus its header comment)lanes-edit.sh:swapped_candidates(the comment above the finalprintfin the awk program, no code change)docs/README-lanes.md: the### swapped [<workstation>]sectiontests/test_lane_helpers.sh: the seed block besiderepoSwap-1(newrepoSwLow-1row andreposwlow-1.mdlog), and the assertions after thewindow-lane Raven casewin:3casesTests
repoSwLow-1(Raven,PAUSED ... swap; window lowwin:5) whose only log is the lowercase filereposwlow-1.md, andrun "$E" swapped Ravenasserting its row's first field isrepoSwLow-1. Rows are picked by window, because Raven holds other swapped lanes.repoWin-1fixture gets an assertion too (casewin:3row readsrepoWin-1). It passes with or without the fix, and the comment says so.Fail-before and pass-after, by a scratch script that builds the two Raven fixtures above in a temp HOME and temp bare origin, and runs
lanes-edit.sh swapped RavenwithLANES_EDIT,LANES_WORKSPACE_ROOT,LANES_REPO,LANES_LANEunset:bash -npasses onlanes-edit.shandtests/test_lane_helpers.sh. The full suite was not run locally (AGENTS.md ruling of 2026-09-16); CI'stestsjob is the record.Closes #55
🤖 Generated with Claude Code
Summary by Sourcery
Report canonical register-row lane names from
swappedwhile preserving log-file names for log lookups and landing-order calculations.Bug Fixes:
swappedreports the lane spelling from the register row instead of the log file name, including lanes with legacy lowercase log files.Enhancements:
swappedand clarify the distinction between register names and log file names.Documentation:
swappedcommand documentation with its register-row spelling behavior and legacy lowercase-log example.Tests: