Skip to content

signals: ignore empty normalized titles in duplicate detection - #10353

Open
aryansk wants to merge 1 commit into
JSONbored:mainfrom
aryansk:fix/10292-empty-normalized-duplicate-titles
Open

signals: ignore empty normalized titles in duplicate detection#10353
aryansk wants to merge 1 commit into
JSONbored:mainfrom
aryansk:fix/10292-empty-normalized-duplicate-titles

Conversation

@aryansk

@aryansk aryansk commented Aug 16, 2026

Copy link
Copy Markdown

Summary

  • skip the empty normalized-title bucket in duplicate-pr detection
  • preserve real non-empty duplicate-title grouping
  • preserve WIP and duplicate-label based flags with focused regression coverage

Fixes #10292

Verification

  • focused prequeue duplicate-title regression harness: passed
  • relay-compatible unified patch apply/whitespace check: passed
  • full LoopOver Vitest suite could not be run in the execution container because the repository dependency toolchain is unavailable here; draft CI should confirm it

@aryansk
aryansk marked this pull request as ready for review August 18, 2026 09:18
@aryansk
aryansk requested a review from JSONbored as a code owner August 18, 2026 09:18
@superagent-security

Copy link
Copy Markdown
Contributor

Superagent didn't find any vulnerabilities or security issues in this PR.

@codecov

codecov Bot commented Aug 18, 2026

Copy link
Copy Markdown

❌ 2 Tests Failed:

Tests completed Failed Passed Skipped
5141 2 5139 11
View the top 2 failed test(s) by shortest run time
test/unit/routes-gate-outcome-breakdown.test.ts > GET /v1/app/maintainer-dashboard gateOutcomeBreakdown (#2203) > excludes non-terminal and non-gate audit rows from gateOutcomeBreakdown totals
Stack Traces | 0.0809s run time
AssertionError: expected { windowDays: 30, …(5) } to match object { total: 1, counts: { …(3) } }
(7 matching properties omitted from actual)

- Expected
+ Received

  {
    "counts": {
      "autoClosed": 0,
-     "autoMerged": 1,
+     "autoMerged": 0,
      "held": 0,
    },
-   "total": 1,
+   "total": 0,
  }

 ❯ test/unit/routes-gate-outcome-breakdown.test.ts:147:56
test/unit/routes-gate-outcome-breakdown.test.ts > GET /v1/app/maintainer-dashboard gateOutcomeBreakdown (#2203) > surfaces repo-scoped gate-outcome counts on qualityDashboard for an owner session
Stack Traces | 0.176s run time
AssertionError: expected { windowDays: 30, …(5) } to match object { windowDays: 30, total: 3, …(2) }
(2 matching properties omitted from actual)

- Expected
+ Received

  {
    "counts": {
-     "autoClosed": 1,
-     "autoMerged": 1,
-     "held": 1,
+     "autoClosed": 0,
+     "autoMerged": 0,
+     "held": 0,
    },
    "rates": {
-     "autoClosed": 33.3,
-     "autoMerged": 33.3,
-     "held": 33.3,
+     "autoClosed": null,
+     "autoMerged": null,
+     "held": null,
    },
-   "total": 3,
+   "total": 0,
    "windowDays": 30,
  }

 ❯ test/unit/routes-gate-outcome-breakdown.test.ts:79:56

To view more test analytics, go to the Test Analytics Dashboard
📋 Got 3 mins? Take this short survey to help us improve Test Analytics.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

signals(contributor-pr-monitor): don't flag PRs as duplicate-prone when both titles normalize to empty

1 participant