Skip to content

fix(core-mutation): expose synchronous Git reconciliation - #187

Merged
James3014 merged 1 commit into
mainfrom
fix/core-sync-git-reconcile-tool
Sep 17, 2026
Merged

James3014 merged 1 commit into
mainfrom
fix/core-sync-git-reconcile-tool

Conversation

@James3014

Copy link
Copy Markdown
Owner

Wave 4 of #117 exposed a control-plane recovery gap rather than a Git failure. git_commit marks the Core session with a synchronous Git writer before physical candidate formation; a pre-commit validation error such as CORE_CANDIDATE_PATH_SET_INCOMPLETE can therefore leave SYNCHRONOUS_GIT unresolved even though no Git effect occurred. The domain layer already has reconcileSynchronousEffect(), 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 the SYNCHRONOUS_GIT writer 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 790e63b0ea1d836b9e23bb37b41c39e6e66febb5 is based directly on main@30379ad27c491ee1a93fbed9643fcf5b87809015 and changes only src/core-mutation-tools.ts and src/server.test.ts. git diff --check passes. Local dependency-backed tests are blocked by the current paired-carrier requirement, so exact-head GitHub CI is the dependency-backed verifier.

@James3014
James3014 merged commit 6260eb0 into main Sep 17, 2026
13 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.

1 participant