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

A queued merge-queue gate always gets the next free check slot; pull checks never take the last one while a gate waits #6376

shipped production is serving it opened this has it
opened this

Part of #5994 (lockup 3: gates run 2× slower than checks because they share the machine). PULL_RESERVE (src/checks/service.ts) keeps slots for pull checks; nothing keeps one for the line's first gate.

Done:

  • [ ] While a merge-queue gate is queued, pickNext does not start a pull check in the last free slot; the gate takes it.
  • [ ] With no gate queued, pull checks use every slot as today.
  • [ ] Tests: with one slot free and both a gate and a pull check queued, the gate starts. With no gate queued, the pull check starts.

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

Before pushing: bun x tsc --noEmit and the tests you add or touch. Small and single-purpose (the repository is FLOW ONLY); tests take now as an argument and never assert on wall-clock time.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs