test(qa): align AI oracles with fixtures and honor QA_OUT_DIR (#686)

The ocr oracle demanded six pangram words when ocr-clean.png prints five; the ocr-pdf oracle expected a searchable PDF when the tool's contract is text extraction; media-30s.mp4 was eight seconds long. Fix all three, regenerate tool-contract.json from current schemas, record the new fixture in the manifest, and add a QA_OUT_DIR override so parallel machines stop clobbering each other's lane output. Fixes #677.
This commit is contained in:
SnapOtter
2026-07-30 10:32:07 +08:00
committed by GitHub
parent 142aeaf9c5
commit 6c2fa307f4
7 changed files with 28 additions and 23 deletions
+6 -1
View File
@@ -44,10 +44,15 @@ const PASSWORD = process.env.QA_PASSWORD ?? "";
const CONCURRENCY = Number(process.env.QA_CONCURRENCY ?? 4);
const PAIRWISE_CAP = Number(process.env.QA_PAIRWISE_CAP ?? 6);
const FORMAT_WITNESSES = Number(process.env.QA_FORMAT_WITNESSES ?? 3);
// QA_OUT_DIR lets several machines sweep in parallel without clobbering each
// other's lane-<mode>.jsonl (#677).
const OUT_DIR_OVERRIDE = process.env.QA_OUT_DIR;
/* biome-ignore-end lint/suspicious/noUndeclaredEnvVars: QA harness runs outside Turbo. */
const REPO = join(import.meta.dirname, "..", "..");
const OUT_DIR = join(REPO, "docs", "qa", "master-20260724", "evidence", "processing-ai", "final");
const OUT_DIR =
OUT_DIR_OVERRIDE ??
join(REPO, "docs", "qa", "master-20260724", "evidence", "processing-ai", "final");
/** Class-aware hard timeouts. Exceeding one is a finding, never a silent skip. */
const TIMEOUT_MS: Record<string, number> = { fast: 240_000, long: 480_000, ai: 900_000 };