Repository navigation
Ten hardenings Copilot rounds 4–6 raised on #47, filed rather than taken: the test lock's ownership, three signal/status gates, a deferred command that drops --agent, and the handoff skill catching up with its command #72
Copy link
Copy link
Open
Description
Copilot reviewed #47 four more times (e8d67a2, 5c162df, d062e72) after its round-3 findings were taken, and raised ten further ones. Three were taken in that pull request — the --in-process help text that still carried the instruction Addendum 1 (j) removed, the unrefused --late --in-process contradiction, and a comment that claimed a refusal canon_lane does not make. These ten are filed, with what each would cost, because the pull request is green on all four CI jobs and every one of them is a HARDENING of an act that already refuses rather than a defect that writes something wrong.
They are listed in the order a fixer would take them.
Cheap, and each needs one case
tests/run.sh:161— themkdirlock enters the suite even when it cannot write its own pid.printf '%s\n' "$$" > "$LOCKDIR/pid" || :swallows the failure, and a waiter then reads the missing pid as stale and claims the directory after three polls. Treat failing to record ownership as a startup refusal.tests/run.sh:167— cleanup is not ownership-safe. After a waiter has atomically claimed a stale$LOCKDIR, the old holder'sEXITtrap can stillrm -rfthat path — and if the waiter has re-made it, the old process deletes the new holder's lock. The trap should verify the directory still carries this pid before removing it.lane-handoff:669— theINT/TERMtraps clean up and RETURN, so an interrupted handoff carries on into the refresh and the record writes with its writers snapshot already deleted. The same fixtests/run.shtook in round 3: clean up and exit, keeping the plainEXITcleanup.lane-handoff:926— a failedlog PAUSEDdoes not stop the two register writes after it.record_writtenstays 0 and the LANES.md line and the row flip are attempted anyway, so a plain handoff can return 0 having flipped a row to PAUSED with no object-log record behind it. (--restartand--exitalready refuse on that gate; it is the plain form that carries on.)lane-start:2582— the deferred first-act command drops--agent. Where no uuid is knowable the command PRINTS thelanes-edit.sh log …line for the session to run itself; for a lane resumed with an explicit--agent,lane-agentcannot recover that choice from the record, so a person following the printed line writes the first stamp with the default launcher.
Larger, and each is a judgement as much as a fix
lane-handoff:749— a multi-linewhyreaches the top block beforelanes-edit.shvalidates the event text. A newline can write a malformed prompt (including an early---history marker) and thePAUSEDevent is then refused, leaving the handoff refreshed and the record not written. Refusing a multi-linewhyat the flag is the cheap half; whether the handoff should be written before the record is the question underneath it.lane-handoff:793— the refreshed handoff is written withcat … > "$file", which truncates before it writes: acatthat fails part-way leaves a mixed file even thoughhandoff_writtenstays 0. A staged write plus a rename would be atomic, but the redirect is deliberate — it FOLLOWS the estate'shandoffssymlink, which a rename does not.skills/handoff/SKILL.md:68,:81— the skill still treats every exit 2 as "no answer", where the command now tellscanon_lane's Amendment 15(d) refusal apart from an old helper's unknown-subcommand 2 (taken in Amendment 17 tooling: a handoff is the swap under one name —lane-handoffon PATH,/handoffwith/swap,/lane-swapand/ctx, the record naming the agent and its transcript, andlane-start --agentresuming a lane from any agent the table carries #47 round 2). The skill is the act for a session that has nolane-handoffon PATH, so the two should agree.skills/handoff/SKILL.md:502— the skill's manual path ignores the status of its ownlog PAUSED, which is finding 4 one document over.skills/handoff/SKILL.md:618— the skill's/ctxprocedure runs whicheverlaneis first on PATH, with none of the check the command makes. That check is itself The/ctxrespawn recognises this estate'slaneby a string in its head, which is a heuristic and not provenance #65's subject: what the command has is a content heuristic and not provenance, so the skill should gain whatever The/ctxrespawn recognises this estate'slaneby a string in its head, which is a heuristic and not provenance #65 settles on rather than a copy of today's.
Lane: openRepoTools-3.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
Activity
The `--in-process` help says what to EXPECT, `--late --in-process` is…
brettheap commentedon Sep 15, 2026
CLAIMED — lane openRepoTools-3, session 4135b2c9-34a6-47e3-a156-5adebb632fae@Eagle, 2026-09-15T00:08:25Z, for #72
Logged in
lanes/log/openRepoTools-3.mdat72ccf8eb66b7f583013a9508145054b48c93e656.The three reads (lane-collision-protocol Rule 1):
The documented guard counts the way the wrapper counts, and `pytest_l…
The skill records the KIND its command records, and asks `window-sess…
The skill's row flip reads BOTH state-cell shapes, because an ordinar…
Amendment 17 tooling: a handoff is the swap under one name — `lane-ha…
brettheap commentedon Oct 13, 2026
TAKEOVERopenRepoTools-3 — lane openRepoTools-5, session 0d83dca2-c18c-4bb0-99ce-896e6cafea02@Eagle, 2026-10-13T18:19:21Z, for #72
Logged in
lanes/log/openRepoTools-5.mdat9861e257e304e113ea7b1e747e1811c300f8a811(takeover of the stale claim held by lane openRepoTools-3).The three reads (lane-collision-protocol Rule 1):
brettheap commentedon Oct 13, 2026
RELEASED — lane openRepoTools-3, session 83619980-06bb-4469-ae73-2a8c5e61981a@Eagle, 2026-10-13T18:23:42Z, for #72 — Brett Heap 2026-10-11 gave #28-#89 to lane openRepoTools-5 (its RULED line of 16:19:19Z); lane 3 holds no live work on this number
brettheap commentedon Oct 13, 2026
Lane openRepoTools-5: where the ten items stand at main f87fd5a. This issue stays OPEN.
Struck, on Brett Heap's word, recorded in lane 5's register log as a RULED line at 2026-10-11T16:5xZ, verbatim: "Keep R-A11-11".
log PAUSEDdoes not stop the register writes after it) and item 9 (the skill's manual path ignoring its ownlog PAUSEDstatus) are by design. A failedlog PAUSEDstill flips the row: R-A11-11 (Amendment 11 Addendum 4 ruling 11), "a swap is never left unwritten".lane-handoff:2278-2317writes the LANES.md line and the row whether or not the object-log line was written (:2286-2288cites it), and the skill's manual path says the same (skills/handoff/SKILL.md:549-550,:599).Done:
lane-handoff:1907-1909is nowtrap ... EXIT,trap 'exit 130' INT,trap 'exit 143' TERM.cat ... > "$file"truncating the handoff): fixed by Keep supervised manual ctx as legacy compatibility and refuse managed lanes #121 (00971b9). The refreshed handoff is staged in a temp file (lane-handoff:2066-2095) and published bylanes-edit.sh publish-handoff(:16259-16288), which follows the symlink chain first, checks the digest, andmv -fs the staged file onto the target./ctxruns whicheverlaneis first on PATH): superseded by /ctx's respawn resumed the paused transcript by id instead of starting a NEW session primed by the handoff's top block — LANE_START_FRESH=1 did not take #94/Keep supervised manual ctx as legacy compatibility and refuse managed lanes #121. The skill no longer carries a respawn recipe;/ctxis the one commandlane-handoff --restart, which respawns by absolute path intolane-handoff --supervise(skills/handoff/SKILL.md:680-709).Still open:
append-lineproves its one line AFTER writing it, so alane-handoff --whycarrying a newline corrupts LANES.md and leaves the checkout dirty #85).SKILL.mdPR.tests/run.sh's lock, still as filed::385,:237): wait for Follow up #190's test roots: name a refused root's value, check the pin's commit, find paired feature worktrees, show redirected roots under -q, run the lane manual sections, and restate the installer-source test #195.tests/run.sh refuses to start when it cannot record its lock's owner,…
A one-line record can't take a newline: append-line and lane-handoff'…
The handoff skill reads a lane bound by any rung through canon-lane, …
The handoff skill's step-1 fence refuses Amendment 15(d)'s exit 2 ins…