pr merge: retry on mergeability race after close-out

Table of Contents

This page is a capture in the discarded bucket of the product backlog.

Resolved (deep backlog refinement, 2026-07-11): projects/ores.compass/src/compass_pr.py:415-427 already implements a 3-attempt retry loop with 3s sleep around 'gh pr merge', specifically retrying on the transient 'Base branch was modified' GraphQL race after a push. The exact mechanism requested already exists (though targeting a slightly different error string than the capture's example).

What

A short retry loop (e.g. three attempts, ~3s apart) around the gh pr merge call in compass pr merge when a close-out commit was just pushed, so the transient "Pull Request is not mergeable" state does not fail the command.

Why

Observed merging PR #1100: the close-out push happens immediately before the merge call, and GitHub recomputes mergeability asynchronously — the first merge attempt failed with "Pull Request is not mergeable" and the manual retry succeeded. Unattended flows need the retry built in.

References

See also

Emacs 29.3 (Org mode 9.6.15)