Reject malformed persisted settlement header evidence

Preserve safe shared error envelopes and read-only legacy defaults. Add exact/latest evidence-integrity regressions for service, gateway and MCP consumers.
This commit is contained in:
2026-10-14 04:44:28 +00:00
parent 10201cdb75
commit 53ce20956d
2 changed files with 77 additions and 0 deletions
@@ -205,6 +205,8 @@ def get_monthly_settlement_snapshot(month: str = "", run_id: str = "", db_path:
if selected_month and basis_date[:7] != selected_month:
return fail("validation_error", "run does not match settlement month")
legacy = True
if metadata.get("evidence_integrity_error"):
return fail("data_integrity_error", "snapshot evidence is malformed", snapshot_run_id=rid)
keys = set(run.keys()) if run else set()
def field(name): return run[name] if run and name in keys else None
from .settlement_cashflow_service import _AGGREGATION_VERSION