From 9bfb912bdff66aa1af1f6514d8df3a249d058bd1 Mon Sep 17 00:00:00 2001 From: Chaim Date: Sat, 30 May 2026 21:40:42 +0000 Subject: [PATCH] fix(audit): _collect_block_sources mirrors None-doc-types (provenance accuracy, FU-7 review) Co-Authored-By: Claude Opus 4.8 (1M context) --- mcp-server/src/legal_mcp/services/block_writer.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/mcp-server/src/legal_mcp/services/block_writer.py b/mcp-server/src/legal_mcp/services/block_writer.py index a73d992..32677b0 100644 --- a/mcp-server/src/legal_mcp/services/block_writer.py +++ b/mcp-server/src/legal_mcp/services/block_writer.py @@ -421,10 +421,13 @@ async def _collect_block_sources(case_id: UUID, block_id: str) -> dict: claim_ids: extracted claims for the case. (case_law_ids are captured separately from the precedent search inside write_block.) """ - allowed = _BLOCK_DOC_TYPES.get(block_id, []) - docs = await db.list_documents(case_id) - if allowed: - docs = [d for d in docs if d.get("doc_type") in allowed] + allowed = _BLOCK_DOC_TYPES.get(block_id, []) # [] = all docs; None = no source docs + if allowed is None: + docs = [] # mirror _build_source_context: this block consumes no raw source docs + else: + docs = await db.list_documents(case_id) + if allowed: + docs = [d for d in docs if d.get("doc_type") in allowed] claims = await db.get_claims(case_id) return { "document_ids": [str(d["id"]) for d in docs],