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

Sentinel: shared:01m23vygyffx5hg2f5vm8r74sr:2tcvuk57nu is past its budget: trevato/forge: "the merge queue > a gate that never answers is abandoned at the deadline, and the next sweep lands (#34… #5138

Merged opened this

Check · Review · Land · Live done — Landed and live in production.

Merged

scout/forge:scout/5127-sentinel-shared-01m23vygyffx5hg2f5vm8r74 → main 1 commit fork 1 thread · 1 unresolved

  • Merged. scout/5127-sentinel-shared-01m23vygyffx5hg2f5vm8r74 was merged into main as 7e17b6a.

Review

Sign in to review this change.
1 file changed +2 −2
test/merge-queue.test.ts +2 −2
@@ -439,7 +439,7 @@ describe("the merge queue", () => {
439439 const repo = await autonomousRepo("never-answers");
440440 const pull = await greenPull(repo, "a.ts");
441441 expect(queueWords(repo.id)).toBe("idle");
442 const restore = gateDeadlineForTest(300);
442 const restore = gateDeadlineForTest(1500);
443443 const warned: string[] = [];
444444 const warn = console.warn;
445445 console.warn = (line: string) => warned.push(line);
@@ -448,7 +448,7 @@ describe("the merge queue", () => {
448448 lastSignal = undefined;
449449 const sweep = sweepGreen(app, repo);
450450 // Building the candidate is git work first: wait for the gate itself.
451 for (let i = 0; i < 200 && lastSignal === undefined; i++) await Bun.sleep(5);
451 for (let i = 0; i < 6000 && lastSignal === undefined; i++) await Bun.sleep(5);

The poll can run for 30 s while the gate deadline is 1.5 s. This is fine because the deadline only starts once the gate runs. Resolving a promise from the gate stub would remove the polling altogether.

452452 expect(queueWords(repo.id)).toMatch(/^gating 1 pull since \d\d:\d\d$/);
453453 expect(await sweep).toBe(0);
454454 } finally {

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs