The contributor-facing comment currently says:
Queued in the merge train behind #4, which touches overlapping work and was opened first. This PR merges automatically once #4 completes (or leaves the train).
It names the PR immediately in front, and nothing else. "Behind #4" and "behind #4 and six others" are very different waits, and a queue that will not say which one it is reads as a stall rather than a wait — which is exactly how it was read in practice.
The information is already computed and thrown away: shouldWaitForOlderSiblings builds the full sorted list of viable overlapping older siblings and returns only viable[0].
Fix
Return the whole list and name the position: "position 4, behind 3 overlapping PRs opened before this one (#1, #2, #3). The nearest is #1."
Keep the single-blocker wording when only one PR is ahead — rendering a one-item queue as "1 PR ahead: #4" is noise.
Related, not included
The comment is posted once per blocker and never updated as the queue drains, so a contributor who reads it at position 5 has no way to learn they are now at position 2 without watching the train themselves. Editing in place (marker comment + update) is the natural follow-up, and is deliberately left out of the first change to keep the queue-position fix small and verifiable.
The contributor-facing comment currently says:
It names the PR immediately in front, and nothing else. "Behind #4" and "behind #4 and six others" are very different waits, and a queue that will not say which one it is reads as a stall rather than a wait — which is exactly how it was read in practice.
The information is already computed and thrown away:
shouldWaitForOlderSiblingsbuilds the full sorted list of viable overlapping older siblings and returns onlyviable[0].Fix
Return the whole list and name the position: "position 4, behind 3 overlapping PRs opened before this one (#1, #2, #3). The nearest is #1."
Keep the single-blocker wording when only one PR is ahead — rendering a one-item queue as "1 PR ahead: #4" is noise.
Related, not included
The comment is posted once per blocker and never updated as the queue drains, so a contributor who reads it at position 5 has no way to learn they are now at position 2 without watching the train themselves. Editing in place (marker comment + update) is the natural follow-up, and is deliberately left out of the first change to keep the queue-position fix small and verifiable.