fix: dedupeAfterFilter skips groups with unscored members — wait until all copies are scored

This commit is contained in:
2026-03-06 16:00:23 +00:00
parent c9b527c83a
commit 3575f06018

View File

@@ -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;