refactor: promote abort into the pure engine as stack.Abort#81
Merged
Conversation
b8a7eda to
d0777ab
Compare
The conflict-recovery pair was asymmetric: Continue is a pure engine op fuzzed
by the invariant model, while abort lived in cmd/abort.go calling the git
package directly (bypassing the stack.Git port) and clearing s.PendingReparent
in the cmd layer -- so the abort half of the recovery bookkeeping was unreachable
by the millisecond fake-git model. Add stack.Abort(env, s) beside Continue (with
the same empty-head-name+PendingReparent fallback); reduce cmd/abort.go to a thin
adapter that swallows ErrNotInitialized so abort still runs in an uninitialized
repo, and keeps the custom {aborted,summary} JSON + text verbatim. Add
TestModelConflictAbortInvariants. e2e abort journey + JSON contract preserved.
df2d219 to
9ef69db
Compare
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.
The conflict-recovery pair was asymmetric: Continue is a pure engine op fuzzed
by the invariant model, while abort lived in cmd/abort.go calling the git
package directly (bypassing the stack.Git port) and clearing s.PendingReparent
in the cmd layer -- so the abort half of the recovery bookkeeping was unreachable
by the millisecond fake-git model. Add stack.Abort(env, s) beside Continue (with
the same empty-head-name+PendingReparent fallback); reduce cmd/abort.go to a thin
adapter that swallows ErrNotInitialized so abort still runs in an uninitialized
repo, and keeps the custom {aborted,summary} JSON + text verbatim. Add
TestModelConflictAbortInvariants. e2e abort journey + JSON contract preserved.
Part of a 38-PR stacked diff (
audit/01…audit/38), reviewed and merged bottom-up. This PR is based onaudit/33-undo-drop-rename-label.