feat(sync)!: commit and ship in separate runs, no flag needed - #19
Merged
Conversation
A finished sync merge could only be committed by the rerun, which also pushed and opened the PR in the same step. Drift triage (cella analyze needs a committed HEAD) therefore pushed users toward a manual git commit — which records a two-parent merge commit and makes the PR list the entire upstream history (raak#97: 247 commits). Instead of an opt-out --no-ship flag, the pause is now the default: each run advances one stage and the run that commits never ships. - clean merge: the first run merges AND commits (pnpm install + check, squash commit), then stops on the branch for drift triage - conflicted merge: first run stops for resolution; the rerun commits and stops the same way - a further run on the committed sync branch ships it (push + PR) - manual-commit warning stays on the conflict guidance BREAKING CHANGE: `cella sync` no longer pushes/opens the PR in the same run that commits the merge; rerun it on the committed branch to ship. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
flipvh
added a commit
to cellajs/cella
that referenced
this pull request
Aug 13, 2026
…lagless CLI default Pairs with cellajs/cella-cli#19: each sync run advances one stage and the run that commits never ships; a clean merge commits on the first run, ship is always its own rerun. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.
Reworks the
--no-shipidea (branchfeat/sync-no-ship, never PR'd) into flagless default behavior: eachcella syncrun advances one stage, and the run that commits never ships.Background: a finished sync merge could only be committed by the rerun, which also pushed and opened the PR in the same step. Drift triage (
cella analyzeneeds a committed HEAD) therefore pushed users toward a manualgit commit— which records a two-parent merge commit and makes the PR list the entire upstream history (raak#97: 247 commits). The first fix attempt was an opt-out--no-shipflag, but the ordinal model is simpler: first run = merge + commit (never ship), final run = ship.pnpm install+pnpm check, squash commit), then stops on the branch — that pause is the drift-triage window.BREAKING CHANGE:
cella syncno longer pushes/opens the PR in the same run that commits the merge; rerun it on the committed branch to ship. Ships as 0.2.0; cella's root dep needs a bump from^0.1.0afterwards.Pairs with cellajs/cella#1042 (the cella-sync skill rewrite), which needs updating to drop its
--no-shipreferences.🤖 Generated with Claude Code