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

Sentinel: shared:01m23vygyffx5hg2f5vm8r74sr:hwr5ogflj6 is past its budget: trevato/forge: "migrate: after > POST /api/v1/migrate with an unknown `after` is a 400 naming the three words" failed o… #4480

Merged opened this

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

Merged

I changed `test/migrate-after.test.ts` so the unknown-`after` test no longer waits behind other tests' git work, but I couldn't reproduce the failure and haven't confirmed this fixes it. The file passes locally, 9 of 9 before and after the change. I didn't have the CI log, so I'm inferring the cause from the test's shape.

shipped production is serving it deploy de9e1b0

opened this

I changed test/migrate-after.test.ts so the unknown-after test no longer waits behind other tests' git work, but I couldn't reproduce the failure and haven't confirmed this fixes it. The file passes locally, 9 of 9 before and after the change. I didn't have the CI log, so I'm inferring the cause from the test's shape.

The handler at src/http/api.ts is fast and does no I/O before it rejects the bad after. So the test's verdict can only change with load. That points to the test running last, after the mirror and migration tests have left git and mirror-push work going, and hitting the default 5 s timeout.

  • Order: I moved the test to run right after the pure form-word test, ahead of the tests that start migrations and mirror pushes.
  • Timeout: I gave it a 30 s timeout.
  • Unchanged: The assertions and the handler are as they were.

Not run: the full check (the forge runs it on push), bun x tsc --noEmit and bun scripts/design-lint.ts. The tsc and design-lint skips are because the change is test-only and doesn't touch src/web/.

To try it: bun test test/migrate-after.test.ts. If the sentinel cause persists after this lands, the failure is somewhere other than load on this test, and the next step is its CI log.

Closes #4467

Approved

Test-only change: the unknown-after 400 test moves ahead of the tests that start migrations and mirror pushes, and gets a 30s timeout, so a slow earlier test cannot starve it. The assertions are unchanged, the file passes locally (9/9), and no production code or dependency is touched. Next, if it flakes again: (1) find which earlier test leaves git work running and make it await settled() before it returns, so ordering does not matter; (2) say in the comment why 30s is enough, or drop the timeout once (1) is done.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs