Skip to content

codex: stop recovery from skipping failed merges - #89

Merged
ttaylorr-oai merged 1 commit into
metafrom
tb/codex/stop-unresolved-rebase
Sep 8, 2026
Merged

codex: stop recovery from skipping failed merges#89
ttaylorr-oai merged 1 commit into
metafrom
tb/codex/stop-unresolved-rebase

Conversation

@ttaylorr-oai

@ttaylorr-oai ttaylorr-oai commented Sep 8, 2026

Copy link
Copy Markdown
Collaborator

The rerere retry loop can advance past a failed octopus merge because Git rolls back the index and leaves no unmerged paths. Require staged changes or a pending MERGE_HEAD before continuing, so the failed merge remains available for recovery.

The regression test reproduces a three-parent merge failure followed by another commit. It fails with the current controller and passes with the fix; the existing rerere and merge-preservation tests also pass. All 137 controller tests pass, and the GitHub plan-admission check is green.

@ttaylorr-oai
ttaylorr-oai marked this pull request as ready for review September 8, 2026 00:43
A failed octopus merge can roll back its index and leave no unmerged
paths. continue_rerere_resolution() treats that state as a completed
rerere resolution and runs rebase --continue, dropping the merge and
continuing with its descendants.

Only continue when there are staged changes or MERGE_HEAD records a
merge to commit. Keep an aborted octopus stopped so recovery can
preserve its parents. Cover the clean-index failure with a real
three-parent replay followed by another commit.

Signed-off-by: Taylor Blau <ttaylorr@openai.com>
@ttaylorr-oai
ttaylorr-oai force-pushed the tb/codex/stop-unresolved-rebase branch from fc174dc to f8169ec Compare September 8, 2026 00:48
@ttaylorr-oai
ttaylorr-oai merged commit ed20048 into meta Sep 8, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants