Skip to content

scaffold-project.py re-run: a leg that gh sees and git cannot read gets a generic failure, and the reuse run's "two new legs" and private-leg text are wrong #542

Closed

Description

@brettheap

Two uncommon re-run paths whose only harm is the message.

From the v1.1.0 triage of the v1.0.0 known limits on #459. One pull request covers the lines below.

Lines

  • Scaffold re-run: a leg gh sees but git cannot read gets generic a git or gh command failed. Where: scaffold-project.py _held_seed (:379), only_commit (:348). Effort S; all. On main 3121945: _held_seed still has no CommandFailed catch and no GIT_TERMINAL_PROMPT=0; an uncommon re-run, and the user can recover. (source)
  • Reuse re-run prints "the two new legs inherit/are created"; private-leg note follows the run's flag. Where: scaffold-project.py :918-930, _private_leg_note (:1081). Effort S; all. On main 3121945: The text at :921/:927 is unchanged, and _private_leg_note still reads args.visibility; uncommon path, message harm. (source)

Each line above is marked → this issue on its tracking issue. Tick it there too when this closes.

The lines as written on the tracking issues

scaffold-project.py: when git cannot read a leg that gh can see, the refusal is the generic a git or gh command failed instead of scaffold-remote-exists (#462's must-keep), because _held_seed runs for every non-empty leg (scaffold-project.py:431 at #506's head c6761db) and only_commit (:357-365) runs git ls-remote and git fetch --depth=1; run() does not set GIT_TERMINAL_PROMPT=0, so on a terminal git can stop for a username; and the depth-1 fetch downloads the leg's whole tip tree to read one commit. Direction: catch CommandFailed in _held_seed and return None; optionally --filter=tree:0. From the review of #506 (N1).
— #459, body

scaffold-project.py's visibility messages assume both legs were just created: "the two new legs inherit…" and "The two new legs are created…" (:918, :924 at c6761db), and _private_leg_note (:1078-1085) goes by the run's --visibility, so a re-run that reuses legs can print a NOTE that contradicts its own per-leg is reused and is public WARNING, and private reused legs under a public run get no private-leg note while project.yaml records the run's value. From the review of #506 (N2).
— #459, body

Activity

  1. added this to the v1.1.0 milestone on Oct 14, 2026
  2. brettheap commented on Oct 14, 2026

    @brettheap
    ContributorAuthor

    CLAIMED — lane openRepoShape-2, session 81650e29-c906-4fe8-96c9-55580bfe0c44@Eagle, 2026-10-14T22:29:46Z, for #542

    Logged in lanes/log/openRepoShape-2.md at 1ef7adf41024efe6578e05948ecd9a8256c126e4.

    The three reads (lane-collision-protocol Rule 1):

    1. existing `CLAIMED —` comments on opensoft/openRepoShape#542:
       none
    2. `gh pr list --repo opensoft/openRepoShape --state all --search "#542"`, kept where the row or its body names `#542`:
       none
    3. `git ls-remote --heads git@github.com:opensoft/openRepoShape` branches naming `542` as a whole token:
       none
    
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions