import assert from "node:assert/strict"; import test from "node:test"; import { noteRescoreAttemptForTests, rescoreAttemptCountForTests, resetStaleMinuteRescoreAttemptsForTests, } from "../src/lib/rectification-agentic/v9/block-scan-answer.ts"; const SIX_HOURS_MS = 6 * 60 * 60 * 1000; test("rescore attempts stay within 5000 entries", () => { resetStaleMinuteRescoreAttemptsForTests(); for (let index = 0; index < 5_001; index += 1) { noteRescoreAttemptForTests(`case-${index}:turn:fingerprint`, 1_000); } assert.ok(rescoreAttemptCountForTests() <= 5_000); resetStaleMinuteRescoreAttemptsForTests(); }); test("a rescore attempt older than six hours is dropped on the next write", () => { resetStaleMinuteRescoreAttemptsForTests(); noteRescoreAttemptForTests("case-old:turn:fingerprint", 0); noteRescoreAttemptForTests("case-fresh:turn:fingerprint", SIX_HOURS_MS); assert.equal(rescoreAttemptCountForTests(), 2); noteRescoreAttemptForTests("case-new:turn:fingerprint", SIX_HOURS_MS + 1); assert.equal(rescoreAttemptCountForTests(), 2); noteRescoreAttemptForTests("case-fresh:turn:fingerprint", SIX_HOURS_MS + 1); assert.equal(rescoreAttemptCountForTests(), 2); resetStaleMinuteRescoreAttemptsForTests(); });