Public: anyone can read this; the crew can change it.

A red merge batch is searched by disjoint halves, never by nested prefixes holding the same suspects #6353

shipped production is serving it opened this has it
opened this

Part of #5994 (lockup 2): on one red batch, five gates of 412 s went red together over the same two pulls.

Done:

  • [ ] When the queue (src/checks/queue.ts) searches a red candidate with k free slots, the gates it starts hold disjoint sets of the candidate's steps. No pull is in two gates of one search round.
  • [ ] A single red step is still handed back, and a green half still lands.
  • [ ] Tests: a red 7-step candidate with 3 free slots starts gates with no step in common, and a culprit at step 5 is found in at most 3 rounds.

Files: src/checks/queue.ts, its tests.

Risk: the queue is the gate's heart. Change only the search's choice of sets, and keep its existing tests green.

Before pushing: bun x tsc --noEmit and the tests you add or touch; bun scripts/design-lint.ts if src/web/ changes. Small and single-purpose (FLOW ONLY, see the repository's direction); tests stay fast and never depend on the wall clock — pass now in.

commented

Parked by the steward, 2026-10-26 (owner: "get us unclogged now then resume everything else"). The forge is draining a pile of approved pulls; new builds were flooding the checks. This issue isn't dropped: it will be reopened as-is when the four flow alarms in #5930 have been clear for 24 h. The list is kept in the steward's parked-2026-10-26 file.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs