feat: expose explicit source conflicts

This commit is contained in:
ik
2026-09-21 07:31:17 +07:00
parent bbed832eb8
commit 36d704d854
11 changed files with 41 additions and 11 deletions
+11
View File
@@ -80,6 +80,7 @@ def activity_rows(
sources=coordinate_sources,
coordinate_precision=coordinate_precision,
coordinate_sources=coordinate_sources,
source_conflicts=_source_conflicts(items),
))
return sorted(result, key=lambda row: (row.activity_score, row.last_confirmed_at), reverse=True)
@@ -95,6 +96,16 @@ def _source_system(report: CatchReport) -> str:
return "manual-import"
def _source_conflicts(reports: list[CatchReport]) -> list[str]:
conflicts: set[str] = set()
for report in reports:
provenance = (report.raw_payload or {}).get("provenance", {})
values = provenance.get("conflicts", []) if isinstance(provenance, dict) else []
if isinstance(values, list):
conflicts.update(str(value).strip() for value in values if str(value).strip())
return sorted(conflicts)
def _coordinate_precision(report: CatchReport) -> str:
provenance = (report.raw_payload or {}).get("provenance", {})
value = provenance.get("coordinate_precision") if isinstance(provenance, dict) else None