fix: a non-dict finding silently drops all raw research findings (#1739)

This commit is contained in:
Afonso Coutinho
2026-06-03 05:29:29 +01:00
committed by GitHub
parent 7f94c43a45
commit 96a874c604
2 changed files with 16 additions and 0 deletions

View File

@@ -479,6 +479,8 @@ class ResearchHandler:
try:
items = []
for f in findings:
if not isinstance(f, dict):
continue
url = f.get("url", "")
title = f.get("title", "") or "Untitled"
summary = f.get("summary", "")

View File

@@ -0,0 +1,14 @@
from src.research_handler import ResearchHandler
def test_extract_raw_findings_skips_non_dict_without_losing_all():
# The body is wrapped in a try/except that returns [] on any error, so a
# single non-dict finding made the AttributeError from f.get swallow EVERY
# good finding (silent total data loss), not just the bad row.
findings = [
{"url": "https://a.com", "summary": "a real and useful finding here"},
"junk-row",
{"url": "https://b.com", "summary": "another genuine finding with detail"},
]
out = ResearchHandler._extract_raw_findings(findings)
assert [i["url"] for i in out] == ["https://a.com", "https://b.com"]