fix(sre): bind backup DR evidence into MCP

This commit is contained in:
Your Name
2026-07-19 01:08:37 +08:00
parent ca47b23b64
commit 2285df21c9
2 changed files with 47 additions and 7 deletions

View File

@@ -503,6 +503,8 @@ async def _ensure_mcp_evidence_writeback(
"rag_writeback_ack_id",
"playbook_trust_writeback_ack_id",
}
if "backup_health" in identity.route_id:
required.add("dr_scorecard_writeback_ack_id")
safe_refs = sanitize_agent99_public_receipt_refs(
receipt_refs,
allowed_keys=required,
@@ -794,13 +796,6 @@ async def _finalize_learning(
"telegram_lifecycle_receipt_id",
lambda: _ensure_telegram_receipt(identity, mode=mode),
),
(
"mcp_evidence_writeback_ack_id",
lambda: _ensure_mcp_evidence_writeback(
identity,
receipt_refs=receipt_refs,
),
),
]
if "backup_health" in identity.route_id:
assets.append((
@@ -810,6 +805,18 @@ async def _finalize_learning(
evidence_refs=evidence_refs,
),
))
# MCP is the final evidence binding: for backup routes it must include the
# already-persisted DR scorecard acknowledgement as well as Telegram,
# KM/RAG and PlayBook. Writing MCP first would create a durable but
# incomplete evidence graph that could never prove the DR asset belonged
# to this same run.
assets.append((
"mcp_evidence_writeback_ack_id",
lambda: _ensure_mcp_evidence_writeback(
identity,
receipt_refs=receipt_refs,
),
))
for key, writer in assets:
if not await ensure_checkpointed(key, writer):
return {