Public: anyone can read this; the crew can change it.
Sentinel: shared:01m23vygyffx5hg2f5vm8r74sr:30jm3u45lg is past its budget: trevato/forge: "the merge queue > ten green pulls: a candidate carries eight, the next the other two, and the log says … #4986
Check · Review · Land · Live done — Landed and live in production.
scout/forge:scout/4970-sentinel-shared-01m23vygyffx5hg2f5vm8r74 → main 2 commits fork 3 threads · 3 unresolved
1 file
changed +6
−3
test/merge-queue.test.ts +6 −3
| @@ -28,6 +28,9 @@ import { serve, type Servers } from "../src/http/server.ts"; | ||
| 28 | 28 | import { createToken } from "../src/core/tokens.ts"; |
| 29 | 29 | import { flowLines } from "../src/tui/screens/flow.ts"; |
| 30 | 30 | |
| 31 | /** Ten pulls are twenty git pushes before the gate runs: a loaded check machine must not decide the verdict. */ | |
| 32 | const SLOW = 60_000; | |
| 33 | ||
| 31 | 34 | describe("the merge queue", () => { |
| 32 | 35 | let dataDir: string; |
| 33 | 36 | let app: App; |
| @@ -204,7 +207,7 @@ describe("the merge queue", () => { | ||
| 204 | 207 | expect(queue.some((l) => /\[queue\] gating 8 pulls since \d\d:\d\d .*waiting=2/.test(l))).toBe(true); |
| 205 | 208 | expect(queue.some((l) => l.includes("[queue] gated 8 pulls: green"))).toBe(true); |
| 206 | 209 | expect(queue.some((l) => l.includes("[queue] gated 2 pulls: green"))).toBe(true); |
| 207 | }); | |
| 210 | }, SLOW); | |
outdated
Indented one space instead of two, unlike |
||
| 208 | 211 | |
| 209 | 212 | test("after a red batch, the good pulls go back into ONE candidate up to the cap, not one gate each (#4053)", async () => { |
| 210 | 213 | const repo = await autonomousRepo("rebatch"); |
| @@ -224,7 +227,7 @@ describe("the merge queue", () => { | ||
| 224 | 227 | expect(sizes).toEqual([8, 4, 2, 1, 8, 2]); |
| 225 | 228 | for (const [i, pull] of pulls.entries()) expect(merged(repo, pull)).toBe(i !== 1); |
| 226 | 229 | expect(latestDecision(app.db, pulls[1]!.id, "land")?.answer).toBe("red"); |
| 227 | }); | |
| 230 | }, SLOW); | |
outdated
Same one-space indent here; make it two. |
||
| 228 | 231 | |
| 229 | 232 | test("the sweep reads every open pull: an approved one older than the newest fifty is queued with the rest (#4053)", async () => { |
| 230 | 233 | const repo = await autonomousRepo("many-open"); |
| @@ -247,7 +250,7 @@ describe("the merge queue", () => { | ||
| 247 | 250 | expect(merged(repo, fresh)).toBe(true); |
| 248 | 251 | // One candidate carried both. |
| 249 | 252 | expect(gatesOf(repo)).toHaveLength(1); |
| 250 | }); | |
| 253 | }, SLOW); | |
| 251 | 254 | |
| 252 | 255 | test("one red among four: three land, the culprit is handed back, three gate runs", async () => { |
| 253 | 256 | const repo = await autonomousRepo("one-red"); |
new above
offline
Clear constant and comment. Next step: if the cause is the 20 serial git pushes, parallelise the setup so the test is fast, not just tolerated.