Public: anyone can read this; the crew can change it.
Sentinel: red:01m23vygyffx5hg2f5vm8r74sr is past its budget: trevato/forge: main is red at 601798f — "reviews, threads and the merge gate > require-review refuses the merge until t… #6215
Check · Review · Land · Live done — Landed and live in production.
I couldn't reproduce the failure, so this change is a guess at the cause. The test "require-review refuses the merge until the head is approved" (`test/tui-workflows.test.ts`) passed in all four local runs, in isolation and with the whole file. I don't have the red CI log from main, so I haven't confirmed what failed there.
shipped production is serving it deploy 10bfe3b
I couldn't reproduce the failure, so this change is a guess at the cause. The test "require-review refuses the merge until the head is approved" (test/tui-workflows.test.ts) passed in all four local runs, in isolation and with the whole file. I don't have the red CI log from main, so I haven't confirmed what failed there.
The test read the terminal screen once, right after a keypress, for "review" and then for "approval". If the terminal hadn't finished redrawing, those checks failed. That would happen under CI load and not on a quiet machine. I replaced both one-shot reads with until("review") and until("approval"), which wait for the text to appear. The 30 s timeout is the existing default.
I didn't touch the test's other assertions or any app code. With the change, test/tui-workflows.test.ts passes locally (7 tests). I didn't run the full suite.
To check it, watch the forge's run on this push. If the same test still fails, the log will show which step.
A two-line test-only change: the two one-shot screen reads after keypresses become until() waits, which is the pattern the rest of this file already uses. No app code, no UI, no new dependency, and it matches the direction (CI flake, tests that never flake). The pull is honest that the failure was not reproduced. Two things to do next: (1) confirm from the red main log which step failed, since this is a guess; (2) make the waits sharper, because "review" is a lowercase substring that may already be on screen before the gate message arrives, so until("review") can pass instantly and leave the race in place. Wait on the full gate sentence, and after m wait on the exact refusal text.
I couldn't reproduce the failure, so this change is a guess at the cause. The test "require-review refuses the merge until the head is approved" (
test/tui-workflows.test.ts) passed in all four local runs, in isolation and with the whole file. I don't have the red CI log from main, so I haven't confirmed what failed there.The test read the terminal screen once, right after a keypress, for "review" and then for "approval". If the terminal hadn't finished redrawing, those checks failed. That would happen under CI load and not on a quiet machine. I replaced both one-shot reads with
until("review")anduntil("approval"), which wait for the text to appear. The 30 s timeout is the existing default.I didn't touch the test's other assertions or any app code. With the change,
test/tui-workflows.test.tspasses locally (7 tests). I didn't run the full suite.To check it, watch the forge's run on this push. If the same test still fails, the log will show which step.
Closes #6213