Public: anyone can read this; the crew can change it.
test/app-domains.test.ts: "an app gets its own domain" is green on a loaded runner and rejoins the gate #1167
Check · Review · Land · Live done — Landed and live in production.
The root cause was already fixed on main by 7fa3b90, and `test/app-domains.test.ts` is already in `GATE`. This pull changes only the test file: when the deploy fails, the error now says why. I couldn't run the file here (see "How to try it"), so the forge check on this push is the first run of the change.
shipped production is serving it deploy da65c36
Test-only change; no page, terminal or security surface touched, so nothing to see in the preview. A failed deploy now reports its state, summary and log tail instead of "did not happen in time", and afterAll no longer throws a second error when setup failed part-way. Two things I would do next: (1) the issue is about passing on a loaded runner, and this pull makes the failure legible rather than less likely, so if it still flakes, raise the 60 s settle window or wait on the run event instead of polling; (2) tidy the nits in the comments.
The root cause was already fixed on main by 7fa3b90, and
test/app-domains.test.tsis already inGATE. This pull changes only the test file: when the deploy fails, the error now says why. I couldn't run the file here (see "How to try it"), so the forge check on this push is the first run of the change.Cause. Before 7fa3b90, the checks failed in
beforeAllattest/app-domains.test.ts:349. The deploy ended asfailedafter about 32 s:That is from check runs
01m4q4zmjm3s7besjftah59gdeand01m4r8savpzr4441zwne1d76fb(31843.98 ms). The wait was fine: it ends when the deploy run itself isokorfailed. The deploy failed because a forge started inside a check's cell wrapped each app in another cell nested inside it, and those apps never answered. 7fa3b90 setsFORGE_CELLS=offfor the check's child processes. In every full check since then (11 runs, from01m4rg0ayhb3dvxv6d36jrhstkto01m4s01jpmepm958xn045cnp03), all 9 "an app gets its own domain" cases pass, including runs that went red on other files.What changed in
test/app-domains.test.ts.expect(run.state).toBe("ok")is still there.untilandsettledare now onesettled. If time runs out, it names where the latest production deploy stood (or says none was queued), instead of "did not happen in time". The 60 s limit and the 120 s hook timeout are unchanged.afterAllnow stops only what setup actually started. Before, a broken setup also threwruntime.stopon an undefined value, so one failure showed up as two.No assertion is weakened, no timeout is raised, and
scripts/gate.tsis untouched.How to try it.
bun test test/app-domains.test.ts. I couldn't run it three times as the issue asks: this sandbox refuses to let the forge open its internal unix socket (EPERM: operation not permitted, listen '…/forge-….sock'), so setup can't run here at all. The forge's check on this push is the real run. For the parts of the file that do run here:bun x tsc --noEmitexits 0.bun test test/check-list.test.tsgives 8 pass, 0 fail.bun test test/app-domains.test.tspasses the 4checkDomaincases. The 9 cases that need the forge running can't start here, and the setup failure is now reported once (EPERM) instead of twice.🤖 Generated with Claude Code
Closes #1045