fix(core-mutation): expose synchronous Git reconciliation - #187
Merged
Merged
Conversation
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.
Wave 4 of #117 exposed a control-plane recovery gap rather than a Git failure.
git_commitmarks the Core session with a synchronous Git writer before physical candidate formation; a pre-commit validation error such asCORE_CANDIDATE_PATH_SET_INCOMPLETEcan therefore leaveSYNCHRONOUS_GITunresolved even though no Git effect occurred. The domain layer already hasreconcileSynchronousEffect(), but there is no MCP action to invoke that bounded physical reconciliation.This change exposes only that existing reconciliation seam as
core_mutation_session_reconcile_synchronous. It requires the exact workspace, session, and binding hash; re-materializes the physical ChangeSet; preserves scope/deletion fail-closed checks; removes only theSYNCHRONOUS_GITwriter pin; and never retries Git, clears other writer domains, or grants completion authority. A server-level regression proves the public MCP path clears the exact writer pin while HEAD remains unchanged.Candidate
790e63b0ea1d836b9e23bb37b41c39e6e66febb5is based directly onmain@30379ad27c491ee1a93fbed9643fcf5b87809015and changes onlysrc/core-mutation-tools.tsandsrc/server.test.ts.git diff --checkpasses. Local dependency-backed tests are blocked by the current paired-carrier requirement, so exact-head GitHub CI is the dependency-backed verifier.