From 990645e6353f259fa42b1f899492ef29c51af9b6 Mon Sep 17 00:00:00 2001 From: luciferlive112116 <291889058+luciferlive112116@users.noreply.github.com> Date: Mon, 6 Jul 2026 15:41:54 +0800 Subject: [PATCH 1/2] test(review): lock in estimateReviewEffort multi-file band-5 case (#2151) Co-authored-by: Cursor --- test/unit/review-effort.test.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/test/unit/review-effort.test.ts b/test/unit/review-effort.test.ts index c37b02d52b..180d7856c8 100644 --- a/test/unit/review-effort.test.ts +++ b/test/unit/review-effort.test.ts @@ -10,7 +10,7 @@ function file(path: string, added: number): ReviewEffortFile { return { path, patch: srcPatch(added) }; } -describe("estimateReviewEffort", () => { +describe("estimateReviewEffort (#2151)", () => { it("returns band 1 and a floored minute for an empty change set", () => { expect(estimateReviewEffort([])).toEqual({ band: 1, minutes: 1 }); }); @@ -49,4 +49,9 @@ describe("estimateReviewEffort", () => { expect(effort.band).toBe(2); expect(effort.minutes).toBe(13); }); + + it("maps a scattered multi-file change to band 5 (#2151)", () => { + const files = Array.from({ length: 5 }, (_, i) => file(`src/mod${i}.ts`, 100)); // 500 + 5*3 = 515 -> band 5 + expect(estimateReviewEffort(files)).toEqual({ band: 5, minutes: 258 }); + }); }); From 9dfa1d62de57dfaa16d45852de19793525a9a537 Mon Sep 17 00:00:00 2001 From: luciferlive112116 <291889058+luciferlive112116@users.noreply.github.com> Date: Mon, 6 Jul 2026 15:54:43 +0800 Subject: [PATCH 2/2] fix(miner): allow nested lib/calibration paths in pack checker Co-authored-by: Cursor --- scripts/check-miner-package.mjs | 2 +- test/unit/check-miner-package.test.ts | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/scripts/check-miner-package.mjs b/scripts/check-miner-package.mjs index cc284ba515..215cd7591d 100644 --- a/scripts/check-miner-package.mjs +++ b/scripts/check-miner-package.mjs @@ -6,7 +6,7 @@ import { fileURLToPath } from "node:url"; const ALLOWED = [ /^bin\/gittensory-miner\.js$/, - /^lib\/[a-z0-9-]+\.(js|d\.ts)$/, + /^lib\/(?:[a-z0-9-]+\/)*[a-z0-9-]+\.(js|d\.ts)$/, /^package\.json$/, /^README\.md$/, ]; diff --git a/test/unit/check-miner-package.test.ts b/test/unit/check-miner-package.test.ts index 1354932cc9..28adc6528c 100644 --- a/test/unit/check-miner-package.test.ts +++ b/test/unit/check-miner-package.test.ts @@ -23,6 +23,21 @@ describe("check-miner-package script", () => { expect(result.out).toContain("package.json"); }); + it("allows nested lib subdirectories such as lib/calibration/*.js", () => { + const result = runChecker({ + CHECK_MINER_PACK_TEST_FILES: JSON.stringify([ + "package.json", + "bin/gittensory-miner.js", + "lib/cli.js", + "lib/calibration/index.js", + "lib/calibration/types.js", + "lib/calibration/types.d.ts", + ]), + }); + expect(result.status).toBe(0); + expect(result.out).toContain("lib/calibration/index.js"); + }); + it("rejects a forbidden path", () => { const result = runChecker({ CHECK_MINER_PACK_TEST_FILES: JSON.stringify([".env"]) }); expect(result.status).toBe(1);