Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions quest/m0/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
10 changes: 0 additions & 10 deletions quest/m0/flaky/README.md

This file was deleted.

This file was deleted.

30 changes: 16 additions & 14 deletions test/review.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down