Skip to content

merge queue: embarking main (9a6662b) and #535 together#536

Closed
mergify[bot] wants to merge 3 commits into
mainfrom
mergify/merge-queue/d7b96bfbc6
Closed

merge queue: embarking main (9a6662b) and #535 together#536
mergify[bot] wants to merge 3 commits into
mainfrom
mergify/merge-queue/d7b96bfbc6

Conversation

@mergify

@mergify mergify Bot commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

🎉 This pull request has been checked successfully and will be merged soon. 🎉

Branch main (9a6662b) and #535 are embarked together for merge.

This pull request has been created by Mergify to check the mergeability of #535.
You don't need to do anything. Mergify will close this pull request automatically when it is complete.

Required conditions of queue rule default for merge:

Required conditions to stay in the queue:

---
checking_base_sha: 9a6662bd2dcb83142ee7da0976e8ec464fba3f6b
previous_failed_batches: []
pull_requests:
  - number: 535
    scopes: []
scopes: []
...

kozlek and others added 3 commits June 9, 2026 09:55
On PRs with an engine merge-queue payload comment, the page froze and
every button in the Mergify row (Remove from merge queue, Refresh,
Rebase, Update, brand link) stopped responding to clicks.

Root cause: updateAllMergifyRows() runs on every tryInject tick, which
fires from the body MutationObserver. The rich-row path in
updateMergifyRow called row.replaceChildren(...) unconditionally — and
that swap is itself a tree mutation in the observed subtree, so it
re-triggered the observer in a self-sustaining requestAnimationFrame
loop. The loop pegged the main thread and rebuilt the row's buttons
~60x/sec, so clicks never survived mousedown -> mouseup on the same node.

Only "some PRs" were affected because the legacy row path is already
idempotent and the context panel / stack-nav pill both dedup via
data-mergify-hash; the rich row (added in #522) was the one surface
missing that guard.

Fix: give the rich row the same data-mergify-hash dedup. updateMergifyRow
now skips the children swap when the payload-derived fingerprint is
unchanged. Live ETA text is excluded from the hash since the ETA ticker
already owns it on a 1s cadence.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Change-Id: Ic45d555b676693cf784cad6b526500272c6f419d
The queue/logs links and the merged-message easter egg are all keyed on
the PR number, but _richRowHash() omitted it. Two same-state queued PRs
in one org/repo hashed identically, so a rich row reused across an SPA
navigation (resetForNavigation doesn't remove the merge-box row) would
skip the swap and keep the previous PR's links/message.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Change-Id: I3f097c5f46b1e505a41cc434d04dfa2126e1f990
@mergify mergify Bot deployed to Mergify Merge Protections June 9, 2026 09:26 Active
@mergify mergify Bot closed this Jun 9, 2026
@mergify mergify Bot deleted the mergify/merge-queue/d7b96bfbc6 branch June 9, 2026 09:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant