From 3db22d3de7f9b7d6778cdc39eab0b6c7f70fdaad Mon Sep 17 00:00:00 2001 From: RenzoMXD <170978465+RenzoMXD@users.noreply.github.com> Date: Wed, 1 Jul 2026 13:28:30 -1000 Subject: [PATCH 1/2] test(enrichment): add flaky-test retry to the review-enrichment suite MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Node's built-in test runner (used by review-enrichment) has no --test-retries flag (unlike vitest's retry: 1 in the main suite), so add a shell-level retry that reruns the full suite once on failure — matching the main suite's one-retry-before-fail policy. Root cause of the observed flake in 'buildBrief stays fail-open and captures a degraded analyzer': the test used budget.timeoutMs=200, but the balanced profile's responseReserveMs floors at 150ms, leaving only ~50ms of execution headroom. Under CI load the pre-flight budget gate in runAnalyzer (brief.ts:248-262) short-circuits to 'capped' before the analyzer runs at all, so the expected 'degraded' status is never reached. Raising the budget to 2000ms gives ~1600ms of headroom, deterministically reaching the analyzer throw path. Closes #2425 --- review-enrichment/package.json | 2 +- review-enrichment/test/sentry-degradation.test.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/review-enrichment/package.json b/review-enrichment/package.json index 404ebd3477..d9d2e0b50a 100644 --- a/review-enrichment/package.json +++ b/review-enrichment/package.json @@ -14,7 +14,7 @@ "validate:sourcemaps": "node scripts/validate-sourcemaps.mjs", "start": "node dist/server.js", "dev": "node --experimental-strip-types --watch src/server.ts", - "test": "npm run build && npm run validate:sourcemaps && node scripts/generate-analyzer-metadata.mjs --check && node --test --experimental-strip-types \"test/**/*.test.ts\"" + "test": "npm run build && npm run validate:sourcemaps && node scripts/generate-analyzer-metadata.mjs --check && (node --test --experimental-strip-types \"test/**/*.test.ts\" || node --test --experimental-strip-types \"test/**/*.test.ts\")" }, "dependencies": { "@hono/node-server": "^1.13.7", diff --git a/review-enrichment/test/sentry-degradation.test.ts b/review-enrichment/test/sentry-degradation.test.ts index 6422260032..2b6605fd5c 100644 --- a/review-enrichment/test/sentry-degradation.test.ts +++ b/review-enrichment/test/sentry-degradation.test.ts @@ -216,7 +216,7 @@ test("buildBrief stays fail-open and captures a degraded analyzer", async () => headSha: "head-sha", analyzers: ["dependency"], files: [{ path: "package.json", patch: '+ "lodash": "4.17.20",' }], - budget: { timeoutMs: 200 }, + budget: { timeoutMs: 2000 }, }, { dependency: async () => { @@ -242,7 +242,7 @@ test("buildBrief stays fail-open and captures a degraded analyzer", async () => const analyzerContext = sentry.contexts.rees_analyzer as Record; const capturedTimeoutMs = Number(analyzerContext.timeoutMs); assert.ok(capturedTimeoutMs > 0); - assert.ok(capturedTimeoutMs <= 200); + assert.ok(capturedTimeoutMs <= 2000); }); test("captureRouteError applies the route-level fingerprint and allowlisted tags", () => { From 476c3b9bf2583751578d995be3a3133378db88a4 Mon Sep 17 00:00:00 2001 From: RenzoMXD <170978465+RenzoMXD@users.noreply.github.com> Date: Wed, 1 Jul 2026 14:02:47 -1000 Subject: [PATCH 2/2] refactor: extract test:node script to avoid duplicated test command --- review-enrichment/package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/review-enrichment/package.json b/review-enrichment/package.json index d9d2e0b50a..33887cf879 100644 --- a/review-enrichment/package.json +++ b/review-enrichment/package.json @@ -14,7 +14,8 @@ "validate:sourcemaps": "node scripts/validate-sourcemaps.mjs", "start": "node dist/server.js", "dev": "node --experimental-strip-types --watch src/server.ts", - "test": "npm run build && npm run validate:sourcemaps && node scripts/generate-analyzer-metadata.mjs --check && (node --test --experimental-strip-types \"test/**/*.test.ts\" || node --test --experimental-strip-types \"test/**/*.test.ts\")" + "test": "npm run build && npm run validate:sourcemaps && node scripts/generate-analyzer-metadata.mjs --check && (npm run test:node || npm run test:node)", + "test:node": "node --test --experimental-strip-types \"test/**/*.test.ts\"" }, "dependencies": { "@hono/node-server": "^1.13.7",