fix(sre): bind backup DR evidence into MCP
This commit is contained in:
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user