From d5d65f365955bc879162e36a5deff43390966da8 Mon Sep 17 00:00:00 2001 From: mptyl Date: Tue, 25 Aug 2026 01:02:41 +0200 Subject: [PATCH] fix(evidence): index only curated legacy documents --- .../tests/test_evidence_facade_contract.py | 19 +++++++++++++++++++ harness/tht/evidence/sources.py | 6 +++++- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/harness/tests/test_evidence_facade_contract.py b/harness/tests/test_evidence_facade_contract.py index 9114f804..1cb56824 100644 --- a/harness/tests/test_evidence_facade_contract.py +++ b/harness/tests/test_evidence_facade_contract.py @@ -117,6 +117,25 @@ def test_source_factory_preserves_legacy_first_order_and_filesystem_configuratio assert current[1].max_bytes == 1024 +def test_legacy_source_discovers_only_curated_evidence_units(tmp_path): + legacy_root = tmp_path / "legacy" + (legacy_root / "evidence" / "source").mkdir(parents=True) + (legacy_root / "evidence" / "source" / "raw.md").write_text("raw source") + (legacy_root / "evidence" / "curated" / "domain").mkdir(parents=True) + (legacy_root / "evidence" / "curated" / "domain" / "patient.md").write_text("curated") + cfg = SimpleNamespace(evidence=SimpleNamespace( + source_root=legacy_root, + evidence_dir="evidence", + sources=[], + )) + + source = build_sources(cfg.evidence)[0] + + assert [item.metadata["relative_path"] for item in source.discover()] == [ + "curated/domain/patient.md" + ] + + def test_preprocessing_factory_forwards_only_evidence_pipeline_dependencies(monkeypatch): captured = {} diff --git a/harness/tht/evidence/sources.py b/harness/tht/evidence/sources.py index dc81f593..b9c352e3 100644 --- a/harness/tht/evidence/sources.py +++ b/harness/tht/evidence/sources.py @@ -18,7 +18,11 @@ def build_sources(evidence: EvidenceSourcesConfig | None) -> list[EvidenceSource return [] sources: list[EvidenceSource] = [] if evidence.source_root is not None: - sources.append(FilesystemEvidenceSource(evidence.source_root / evidence.evidence_dir)) + legacy_root = evidence.source_root / evidence.evidence_dir + legacy_patterns = ( + ("**/*.md",) if legacy_root.name == "curated" else ("curated/**/*.md",) + ) + sources.append(FilesystemEvidenceSource(legacy_root, patterns=legacy_patterns)) for resource in evidence.sources: match resource.type: case "filesystem":