diff --git a/quest/m0/README.md b/quest/m0/README.md index e77a61e7..fdbca6da 100644 --- a/quest/m0/README.md +++ b/quest/m0/README.md @@ -90,8 +90,6 @@ ownership-manifest design: ## Required -- [Fix disabled flaky tests](/quest/m0/flaky/README.md) - fix or delete each disabled test - - [Land through a serial merge queue with an async fixer](/quest/m0/queue-watcher/README.md) - GitHub's merge queue, or the watcher's own where GitHub has none, lands one PR at a time, and a host watcher fixes and re-enqueues each PR it drops - [The land fixer resolves every mechanical failure](/quest/m0/land-fixer/README.md) - the docs listing what the fixer resolves and hands back - [Review sessions keyed by upstream branch](/quest/m0/review-session-key.md) - a round from a local branch tracking the PR branch continues that branch's review session diff --git a/quest/m0/flaky/README.md b/quest/m0/flaky/README.md deleted file mode 100644 index b8f4d5bf..00000000 --- a/quest/m0/flaky/README.md +++ /dev/null @@ -1,10 +0,0 @@ -# Fix disabled flaky tests - -## Goal - -Each disabled flaky test is fixed or deleted, with its skip removed when -fixed. Each required quest records the failures that led to the skip. - -## Required - -- [Fix the reviewer usage-limit test](/quest/m0/flaky/a-reviewers-usage-limit-exits-3-with-its-reset-and-records-no-round.md) - fix or delete the test disabled after repeated timeouts diff --git a/quest/m0/flaky/a-reviewers-usage-limit-exits-3-with-its-reset-and-records-no-round.md b/quest/m0/flaky/a-reviewers-usage-limit-exits-3-with-its-reset-and-records-no-round.md deleted file mode 100644 index 4dee9559..00000000 --- a/quest/m0/flaky/a-reviewers-usage-limit-exits-3-with-its-reset-and-records-no-round.md +++ /dev/null @@ -1,15 +0,0 @@ -# [S] Fix the reviewer usage-limit test - -## Goal - -Fix `test/review.test.ts > a reviewer's usage limit exits 3 with its reset, -and records no round` so it reliably passes within its timeout, or delete -the test. Remove its skip when the fix lands. - -The test exceeded its 5000 ms timeout in merge-group runs, and passed in -isolation on the same scratch merge. Failure jobs: - -- [Earlier queue build](https://github.com/moq-dev/quest/actions/runs/42354876012/job/128350646309) -- [Earlier queue result](https://github.com/moq-dev/quest/actions/runs/42354876012/job/128352135869) -- [Current queue build](https://github.com/moq-dev/quest/actions/runs/42357807171/job/128359649721) -- [Current queue result](https://github.com/moq-dev/quest/actions/runs/42357807171/job/128361023143) diff --git a/test/review.test.ts b/test/review.test.ts index df2e4e13..b4f2fbc8 100644 --- a/test/review.test.ts +++ b/test/review.test.ts @@ -461,27 +461,29 @@ fakes.each([ }, ); -// flaky: /quest/m0/flaky/a-reviewers-usage-limit-exits-3-with-its-reset-and-records-no-round.md -test.skip("a reviewer's usage limit exits 3 with its reset, and records no round", async () => { - // Codex prints its reset in the local time zone, which this process shares. - const codex = new Date(2026, 10, 5, 15, 15).toISOString().replace(".000Z", "Z"); - for (const [host, variant, message] of [ - ["CLAUDECODE", "reset", `codex hit its usage limit; resets ${codex}`], - ["CLAUDECODE", "unknown", "codex hit its usage limit; resets unknown"], - ["CODEX_THREAD_ID", "reset", "claude hit its usage limit; resets 2030-03-17T17:46:40Z"], - ["CODEX_THREAD_ID", "unknown", "claude hit its usage limit; resets unknown"], - ] as const) { +// Codex prints its reset in the local time zone, which this process shares. +const codexReset = new Date(2026, 10, 5, 15, 15).toISOString().replace(".000Z", "Z"); + +// One test per case: each runs two full reviews, and all four in one test outran its timeout on loaded runners. +fakes.for([ + ["CLAUDECODE", "reset", `codex hit its usage limit; resets ${codexReset}`], + ["CLAUDECODE", "unknown", "codex hit its usage limit; resets unknown"], + ["CODEX_THREAD_ID", "reset", "claude hit its usage limit; resets 2030-03-17T17:46:40Z"], + ["CODEX_THREAD_ID", "unknown", "claude hit its usage limit; resets unknown"], +] as const)( + "a reviewer's usage limit exits 3 with its reset, and records no round (%s, %s)", + async ([host, variant, message]) => { const s = setup(host); vi.stubEnv("FAKE_LIMITED", variant); const result = await quest("--root", s.repo, "review"); - expect(result.stderr, `${host} ${variant}`).toBe(`error: ${message}\n`); - expect(result.code, `${host} ${variant}`).toBe(3); + expect(result.stderr).toBe(`error: ${message}\n`); + expect(result.code).toBe(3); expect(result.stdout).toBe(""); vi.stubEnv("FAKE_LIMITED", undefined); // No round was recorded, so the next one needs no responses. expect((await quest("--root", s.repo, "review")).code).toBe(0); - } -}); + }, +); fakes("a reviewer with no stored login reviews with the credential its CLI reads from the environment", async () => { const s = setup();