codex: replay disjoint pinned merge DAGs across base moves - #25
Merged
Conversation
A pinned unstable source records the reviewed source-base, but the generated codex base can move before unstable publication. Inferring the replay root from that new base either rejects a valid pinned DAG or replays old stable integration commits. Use the reviewed source-base as the explicit root for pinned merge-shaped topics. Replay only when the moved base and reviewed graph touch disjoint paths, synthesize the exact overlay trees and parent mapping (including octopus merges), and have verify-output recompute the same proof. Overlap or mixed reviewed roots still fail closed. Also make pinned lane isolation use reviewed source boundaries and published unstable outputs, so proposal and admission reject a stable source cut from generated unstable. Test moved-base replay, source immutability, merge topology, overlap rejection, and the cross-lane admission boundary.
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.
A pinned unstable source keeps its reviewed source-base even when the generated codex base moves before publication. The old merge-base inference either rejected that valid DAG or replayed old stable integration commits.\n\nThis uses the reviewed source-base as the explicit replay root, permits replay only after a disjoint changed-path proof, reconstructs exact overlay trees and parent topology (including octopus merges), and makes verify-output recompute the same proof. Overlap and mixed reviewed roots still fail closed.\n\nIt also makes pinned cross-lane isolation use reviewed source boundaries plus published unstable outputs, so proposal/admission reject stable topics cut from generated unstable.\n\nTested:\n- isolated t/t9905-codex-branch.sh: 115/115\n- sh -n .github/workflows/codex-branch.sh\n- git diff --check\n- live no-ref 949c rewrite/verify: 113 commits and 7 merges preserved; source pin unchanged