You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
validate-repository-naming.py: the --link-source <link>=<path> the gate offers for a chain link holding = is read as a bare PATH when typed, so it never verifies that link #980
Found during #949's fix round 1, as NIT-2 of RV949 (lane 4's review of #949). It predates #949.
Goal
For a declared-unverified chain link whose name holds =, the naming gate offers only sources that verify that link's tree when typed as printed.
State
At main 66177b62 and at #949's head ced3d7c2. RV949 measured the same at the base 64464d31 and the head 8c5d6051.
What happens
LinkSources.__init__ in scripts/validate-repository-naming.py takes a --link-source key as the text before the value's first = (typed.partition("=")).
With the chain openXdox,open=y,openInk, --link-source open=y=<tree> gives the key open. No chain names open, so the whole value is read as a bare PATH for the first link.
open=y stays declared-unverified, and its WARNING offers exactly that --link-source open=y=<path>.
Evidence
Run from an empty folder at ced3d7c2, where <tree> declares openInk:
validate-repository-naming.py --pins openXdox --referent-chain openXdox,open=y,openInk --link-source open=y=<tree> codexInk
WARNING link-source-unreadable: open=y=<tree> (--link-source) could not answer for openXdox: no such file or directory
It was read as a PATH: `open` is not a link of a referent chain here (links: openXdox, open=y, openInk).
declared-unverified: open=y declaring a pin on openInk ... (a sibling checkout, SHAPE_PIN_SOURCE_OPEN_Y, or --link-source open=y=<path> would let it be read)
The run exits 0.
With SHAPE_PIN_SOURCE_OPEN_Y=<tree> instead, the WARNING for open=y is gone. Only the --link-source offer fails to cure.
setup-project.py's step (5) refuses such a link as chain-link-malformed.
CLAIMED — lane openRepoShape-5, session 50cede29-ab82-4ca3-9f67-d98e1a58c8d2@Eagle, 2026-10-20T05:15:42Z, for #980
Logged in lanes/log/openRepoShape-5.md at 65e45494f6d4e52e859c7d2bd16a92bda7856889.
The three reads (lane-collision-protocol Rule 1):
1. existing `CLAIMED —` comments on opensoft/openRepoShape#980:
none
2. `gh pr list --repo opensoft/openRepoShape --state all --search "#980"`, kept where the row or its body names `#980`:
none
3. `git ls-remote --heads git@github.com:opensoft/openRepoShape` branches naming `980` as a whole token:
none
Activity
setup-project.py and validate-repository-naming.py: step (4) reads an…
brettheap commentedon Oct 20, 2026
CLAIMED — lane openRepoShape-5, session 50cede29-ab82-4ca3-9f67-d98e1a58c8d2@Eagle, 2026-10-20T05:15:42Z, for #980
Logged in
lanes/log/openRepoShape-5.mdat65e45494f6d4e52e859c7d2bd16a92bda7856889.The three reads (lane-collision-protocol Rule 1):
tests/test_chain_remedy_callers.py: three rows hold #980's unchanged …
validate-pins.py: a `--pin-source` key is the longest declared pin be…