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
update-shape.py apply --branch --push --pr: when gh pr create fails after the commit and the push succeeded, it exits 2 with "REFUSED committing the re-synced shape" and no NEXT line, and a re-run on that branch says "nothing to do" and exits 0, so the tool never opens the pull request #204
Found by this lane's probe of main e4decfb on 2026-10-11, re-verified on main e4decfb today. Not claimed.
What is wrong._land in update-shape.py runs its three acts (commit, push, open the pull request) with no handler of its own, so a CommandFailed from ANY of them reaches cmd_apply's single except CommandFailed arm, which labels every failure "committing the re-synced shape" and returns 2. When gh pr create fails after the commit landed and the branch was pushed, the refusal names a step that succeeded, next_line never runs, so no NEXT line says how to open the pull request by hand, and stdout is not flushed first, so in a combined log the REFUSED block prints before the "committed on" and "pushed" lines. A re-run then finds the pin already at the target and answers "nothing to do", exit 0, though --pr was asked for on a branch that has no pull request: the tool never opens it. (#202 is the same handler failing BEFORE the commit; #188 is the adopt-side form of the unflushed log.)
# Atlas scaffolded from $U (a local clone of openRepoShape) into local bare remotes, cloned# --recurse-submodules to $C; one upstream commit $BS in $U; `gh` on PATH is a shim that exits 97
python3 $U/update-shape.py apply --root $C --upstream $U --at $BS --yes --branch shape/update-y --push --pr
# exit 2 stdout: "committed on shape/update-y: contracts/shape-pin.yaml, project.yaml, scripts/validate-manifest.py"# "pushed shape/update-y to origin" (no NEXT line)# stderr: REFUSED committing the re-synced shape. THE EXACT COMMAND WAS:# gh pr create --repo testorg/Atlas --base main --head shape/update-y ... exit 97
git -C $REMOTES/Atlas.git rev-parse --verify refs/heads/shape/update-y # exit 0: the branch is on the remote
python3 $U/update-shape.py apply --root $C --upstream $U --at $BS --yes --branch shape/update-y --push --pr
# exit 0 nothing to do: every copied file matches opensoft/openRepoShape @ <BS>, which the pin already names# the same first run with `> log 2>&1`: REFUSED on line 13, "committed on" on 21, "pushed" on 22
What the docs promise.docs/cli.md, update-shape.py apply: "--pr open a pull request with gh (needs --branch)". update-shape.py EXIT CODES: "apply 0 applied (or there was nothing to do) · 2 a REFUSAL, including a validator that went red (rolled back)". Here the commit and the push both happened and nothing was rolled back, under a refusal that names the commit.
What would fix it. In _land, catch CommandFailed per act and label it with the act that failed (pushing shape/update-y, opening the pull request), flush stdout before writing the refusal, and on a pull-request failure print the gh pr create ... --head <branch> NEXT line that next_line prints for --push alone, saying the commit and the push already landed. cmd_apply should not answer "nothing to do" silently when --pr was asked for on a branch with no pull request; at least print the gh pr create line.
CLAIMED — lane openRepoShape-3, session 566fec94-6fde-4579-947f-ec4fda5ce14f@Eagle, 2026-10-11T16:19:36Z, for #204
Logged in lanes/log/openRepoShape-3.md at 2c75caa711dcb451806d921eba9b6438efdc60b6.
The three reads (lane-collision-protocol Rule 1):
1. existing `CLAIMED —` comments on opensoft/openRepoShape#204:
none
2. `gh pr list --repo opensoft/openRepoShape --state all --search "#204"`, kept where the row or its body names `#204`:
none
3. `git ls-remote --heads git@github.com:opensoft/openRepoShape` branches naming `204` as a whole token:
none
(lane openRepoShape-4, 2026-10-11T19:42:14Z) Landing note for whoever opens this issue's PR: lane openRepoShape-4's PR #233 (#202) conflicts with fix/update-shape-pr-create-failure in update-shape.py, in two hunks.
The EXIT CODES apply 2 line: combine the two texts.
The behaviours compose: a failed gh pr create after the push takes this branch's path, and a failed hook takes #233's rollback. Our review recommends #233 lands first. This branch's lander then merges main with a merge commit, resolves the two hunks, regenerates docs/cli.md (this branch changes --pr's help), and rewords _rolled_back's docstring clause "a push, a pull request".
Activity
brettheap commentedon Oct 11, 2026
CLAIMED — lane openRepoShape-3, session 566fec94-6fde-4579-947f-ec4fda5ce14f@Eagle, 2026-10-11T16:19:36Z, for #204
Logged in
lanes/log/openRepoShape-3.mdat2c75caa711dcb451806d921eba9b6438efdc60b6.The three reads (lane-collision-protocol Rule 1):
update-shape.py: `--branch` is checked once, in `main`, against a con…
brettheap commentedon Oct 11, 2026
(lane openRepoShape-4, 2026-10-11T19:42:14Z) Landing note for whoever opens this issue's PR: lane openRepoShape-4's PR #233 (#202) conflicts with
fix/update-shape-pr-create-failureinupdate-shape.py, in two hunks.apply 2line: combine the two texts.cmd_apply: keep update-shape.py:apply --addforce-stages its additions past the operator's own excludes, and a branch, stage or commit that fails before the commit lands now puts back the copies, the pin, the README line, the index and the branch and names the step, socheckno longer exits 0 over an uncommitted re-pin (#202) #233's_rolled_backwhole, then this branch'sLandingIncomplete…pull_request_targetblock, and drop update-shape.py:apply --addforce-stages its additions past the operator's own excludes, and a branch, stage or commit that fails before the commit lands now puts back the copies, the pin, the README line, the index and the branch and names the step, socheckno longer exits 0 over an uncommitted re-pin (#202) #233's trailingdef open_pull_request(...)header, since this branch defines it later.The behaviours compose: a failed
gh pr createafter the push takes this branch's path, and a failed hook takes #233's rollback. Our review recommends #233 lands first. This branch's lander then mergesmainwith a merge commit, resolves the two hunks, regeneratesdocs/cli.md(this branch changes--pr's help), and rewords_rolled_back's docstring clause "a push, a pull request".update-shape.py: a `gh` (or `git`) that cannot be started after `appl…
Merge remote-tracking branch 'origin/main' into fix/update-shape-pr-c…
fix round 3 (#204): a failure before the commit under `--push --pr` i…
fix round 4 (#204): the `gh pr create` a failed `--push` prints names…
update-shape.py: a push or `gh pr create` that fails after `apply --b…
Merge origin/main (6d8d88b: #249 and #250 via #284, #204 via #227, #203…
Merge origin/main (6d8d88b) into fix/adopt-late-failure-notice
Merge origin/main (be2790e) into fix/adopt-plan-quote-yaml-keywords
Merge origin/main (b421e6b) into fix/adopt-template-values-utf8: #231'…
Merge origin/main ede15ce into fix/adopt-relative-submodule-url: #215, …
update-shape.py: the module docstring's EXIT CODES line is left as #269…
tests/test_update_shape_landing.py: the `gh` its landing tests drive …
Merge origin/main (a1b3a4b) into fix/adopt-plan-quote-yaml-keywords
Merge origin/main 71b58a1 into fix/adopt-root-kept-symlinks: #204, #203…
update-shape.py: every NEXT line a run prints quotes its root, upstre…