Repository navigation
Fast-forward the Launch directory's Base branch with launch.pull - #125
Merged
Merged
Conversation
A new User config setting, [launch] pull = true, brings the checked-out Base branch up to date with origin after pre-flight and before the worktree is created. It is fast-forward only, skipped when the checked-out branch isn't the Base branch, and a failure is a warning, never a Failed run. Launch directory joins the glossary. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ts skip pull_base_branch now decides for itself whether the checked-out branch is the Base branch, the setting is launch_pull everywhere, and the test harness shares one seed-clone helper between origin_has_branch and origin_has_commit. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
# Conflicts: # CONTEXT.md # README.md # src/config.rs # src/main.rs # src/run.rs
Merged
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.
Summary
New User config setting:
[launch] pull = truefast-forwards the Launch directory's Base branch before the worktree is created. Off by default.src/config.rs: parses[launch], with the same rules as[merge]. An unknown key, a non-boolean value, or a non-tablelaunchis an error that names the file and key.CONTEXT.md: defines Launch directory, uses it in Origin match and Base branch, and mentions the setting under User config.helptext documentlaunch.pull.Evidence
mainone commit ahead, a Run left the Launch directory'smainbehind.After:
tests/launch_pull.rs, 8 end-to-end tests, all pass:pull = true: the Launch directory'smainequals origin's head, and the Run succeeds.pull = false, or an empty[launch]:mainis unchanged.warning:line on stderr, exit 0, the PR URL on stdout, and the edit intact.mainwhiledevelopis checked out:developis not moved.mainis not moved.pul = true,pull = "yes", orlaunch = true: the Run stops before any work, naming the file and the key.launch_pull_is_readanderrors_name_the_file_and_the_offending_keypass.cargo testrun passes, andcargo clippy --all-targetsis clean.Merge Danger
Door: two-way
The setting is opt-in, and reverting the PR removes it. The update is fast-forward only, so it never discards anything in the Launch directory.
Blast Radius: opt-in
Users who don't set
launch.pullsee no change. The config parser was restructured to share one path formerge.*andlaunch.*keys, and themerge.alwayserror messages are unchanged (covered by tests).Unaddressed findings
Standards
boolparameter onrun(Primitive Obsession / Data Clumps). Skipped because there is only one setting. The spec asks for the value to reach the Run "alongside its Goal", and an options type can come with the next setting.config.rs(Repeated Switches). Skipped because the reviewer rated it mild. There are two sections, and the setting lookup is already a single table.tests/support/mod.rscomments now conflicts with the glossary. Skipped because those lines predate this change. The new comment uses "Launch directory".Spec
warning:line doesn't itself carry git's error. git's error goes on the stderr line just before it. Skipped because this is the Self-mergewarning:convention that the spec says to follow.Closes #74
🤖 Generated with Claude Code