You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(refinery): serialize all pushes to main via merge slot
Add merge slot acquisition in doMerge() before pushing to origin/main.
This prevents a race condition where the normal merge path and a
conflict-resolution polecat can push to main concurrently, causing
non-fast-forward errors.
The fix:
- Acquires the merge slot before pushing (non-blocking)
- If slot is held by another process, returns failure so MR retries later
- Releases the slot after push completes (success or failure) via defer
This ensures all pushes to main are serialized, regardless of whether
they come from the normal merge queue or conflict resolution.
Fixes: gastownhallgh-594
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
0 commit comments