Skip to content

feat(research): rank and deduplicate news sources - #58

Open
yc2bgr8 wants to merge 1 commit into
helsome:mainfrom
yc2bgr8:feat/39-retrieval-ranking
Open

feat(research): rank and deduplicate news sources#58
yc2bgr8 wants to merge 1 commit into
helsome:mainfrom
yc2bgr8:feat/39-retrieval-ranking

Conversation

@yc2bgr8

@yc2bgr8 yc2bgr8 commented Sep 11, 2026

Copy link
Copy Markdown
Contributor

Summary

  • add deterministic URL canonicalization, title/content fingerprinting, duplicate and syndicated-source clustering
  • rank cluster representatives by explainable source class, freshness, relevance, and availability signals
  • enforce Top-K domain diversity and persist policy/version/selection reasons in the Deep Research data bundle
  • add a live public-search smoke command plus implementation notes and boundaries

Research integration

ResearchRunner now normalizes research.news results before synthesis. Selected items retain canonical URL, source class, cluster id, and quality score. A sibling research.news:ranking record preserves cluster membership and selected/dropped reasons so duplicate URLs cannot masquerade as independent evidence.

Verification

  • bun run typecheck — passed across all workspaces with Bun 1.4.2
  • focused tests — 17 passed / 0 failed
  • full bun test --isolate — 1221 passed / 5 failed on this Windows host
  • latest origin/main baseline — 1207 passed / 6 failed; the branch introduces no new deterministic failures
  • existing Windows failures cover symlink permission, Unix-path assertions, and locale-dependent formatting; the flaky ResearchService temp-directory race was independently reproduced on origin/main
  • git diff --check — passed

Live search smoke

Command:

bun run eval:retrieval-ranking-live -- "NVIDIA earnings"

Observed on 2026-09-11:

  • 49 raw public search results
  • 49 independent clusters
  • 10 selected sources
  • SEC filing ranked first, with Reuters/CNBC/WSJ/Bloomberg results subject to the two-per-domain diversity limit
  • exit code 0

Scope

This is an incremental foundation for #39. Redirect fetching, full article-body similarity, Source Inspector UI, and claim-verifier integration remain follow-up work, so this PR intentionally does not close the entire issue.

Refs #39

@yc2bgr8
yc2bgr8 force-pushed the feat/39-retrieval-ranking branch from 77a6c88 to 6b89bab Compare September 11, 2026 08:53

@helsome helsome left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

验证材料足够:Bun 1.4.2、Windows、全仓 baseline 对照、live public-search smoke 的实际命令与结果都给出了;本 PR 也明确只作为 #39 的增量基础,不提前关闭整个 Issue。代码实现方向可合。当前仅因为最新 main 已前进导致分支 dirty,请 rebase/resolve 后跑基础 CI 即可,不需要重做 live smoke。

@yc2bgr8
yc2bgr8 force-pushed the feat/39-retrieval-ranking branch from 6b89bab to dabd89e Compare September 11, 2026 12:23
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.

2 participants