From 3575f060187671b1c4209e4486a27ebbe22809cc Mon Sep 17 00:00:00 2001 From: Claw Date: Fri, 6 Mar 2026 16:00:23 +0000 Subject: [PATCH] =?UTF-8?q?fix:=20dedupeAfterFilter=20skips=20groups=20wit?= =?UTF-8?q?h=20unscored=20members=20=E2=80=94=20wait=20until=20all=20copie?= =?UTF-8?q?s=20are=20scored?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/queue.mjs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/queue.mjs b/lib/queue.mjs index 91feeac..5f5f2c5 100644 --- a/lib/queue.mjs +++ b/lib/queue.mjs @@ -92,6 +92,9 @@ export function dedupeAfterFilter() { let deduped = 0; for (const jobs of Object.values(byUrl)) { if (jobs.length < 2) continue; + // Only dedup if ALL copies have been scored — skip groups with unscored members + if (jobs.some(j => j.filter_score == null && j.status !== 'filtered')) continue; + // Keep the one with highest filter_score; if tied, prefer 'new' over 'filtered' jobs.sort((a, b) => { const sa = a.filter_score ?? -1;