fix(deploy): attest Engine telemetry gateway transition

This commit is contained in:
Codex
2026-07-23 16:24:52 +03:00
parent f97a9d924d
commit 6f9da1b677
3 changed files with 138 additions and 1 deletions
+27
View File
@@ -554,10 +554,12 @@ ENGINE_MCP_TELEMETRY_CATALOG_ARTIFACT_ENTRIES = (
"nodedc-source/server/routes/n8n.js",
"nodedc-source/server/routes/engineAgentGateway.js",
ENGINE_MCP_TELEMETRY_CATALOG_DESCRIPTOR_REL,
ENGINE_NODE_INTELLIGENCE_DESCRIPTOR_REL,
)
ENGINE_MCP_TELEMETRY_CATALOG_PREDECESSOR_SHA256 = {
"nodedc-source/server/routes/n8n.js": "1c2427c1d5830c40b1e8ae05f3d683fc39d07d7e0fe2431b0f6efbbb1d3fcb88",
"nodedc-source/server/routes/engineAgentGateway.js": "4f600a2781be9118bec891fa2a6f20d7f55e0892ef2f06af24059193cebd28f4",
ENGINE_NODE_INTELLIGENCE_DESCRIPTOR_REL: "63e7619c6971d02102583bb5d80d33ece293b952f113200fa0b76f0e88c2dd32",
}
ENGINE_MCP_TELEMETRY_CATALOG_FOUNDATION_SHA256 = {
ENGINE_MCP_EXECUTION_PROFILE_DECODER_DESCRIPTOR_REL: "93e431902e9bcd3b828a82ed6b42b48d939051f21bf8824dafcf2addac8a711c",
@@ -566,6 +568,7 @@ ENGINE_MCP_TELEMETRY_CATALOG_TARGET_SHA256 = {
"nodedc-source/server/routes/n8n.js": "903245ae363e9b9ac161498f17988a38876a0e0ac8d80f3fa1b0112ceb7fe906",
"nodedc-source/server/routes/engineAgentGateway.js": "69bfc91e913a3fad04e13aca86efb9d62f73c0c7d1f8f7200907494b29fa9e8d",
ENGINE_MCP_TELEMETRY_CATALOG_DESCRIPTOR_REL: "b25ab8b6e6ad8ac24614c4630cc3635abe453464466d5a72238b05e48a24d882",
ENGINE_NODE_INTELLIGENCE_DESCRIPTOR_REL: "25ed3efd858aaf82c242dba501f0acc0c6c3dc91e8845707a4d3325750eab59f",
}
ENGINE_MCP_TELEMETRY_CATALOG_NEW_PATHS = (
ENGINE_MCP_TELEMETRY_CATALOG_DESCRIPTOR_REL,
@@ -5156,6 +5159,23 @@ def validate_engine_mcp_telemetry_catalog_slice(payload_dir, entries):
)
):
die("Engine MCP telemetry catalog gateway contract mismatch")
node_intelligence_descriptor = read_engine_node_intelligence_descriptor(
payload_dir / ENGINE_NODE_INTELLIGENCE_DESCRIPTOR_REL,
"Engine MCP telemetry catalog node-intelligence descriptor",
)
if (
node_intelligence_descriptor.get("action") != "activate"
or node_intelligence_descriptor.get("releaseId")
!= ENGINE_NODE_INTELLIGENCE_RELEASE_ID
or node_intelligence_descriptor.get("source", {}).get("gatewaySha256")
!= ENGINE_MCP_TELEMETRY_CATALOG_TARGET_SHA256[
ENGINE_NODE_INTELLIGENCE_GATEWAY_REL
]
):
die(
"Engine MCP telemetry catalog node-intelligence attestation "
"contract mismatch"
)
def validate_engine_agent_full_grant_migration_slice(payload_dir, entries):
@@ -5577,6 +5597,10 @@ def load_artifact(artifact, work_dir):
and not is_engine_mcp_ontology_sdk_slice(manifest["component"], entries)
and not is_engine_mcp_autonomy_provider_v5_slice(manifest["component"], entries)
and not is_engine_l2_closed_loop_slice(manifest["component"], entries)
and not is_engine_mcp_telemetry_catalog_slice(
manifest["component"],
entries,
)
and not is_engine_provider_authority_diagnostics_slice(
manifest["component"],
entries,
@@ -9113,6 +9137,9 @@ def plan_artifact(artifact):
print("engine_mcp_tool=engine_get_telemetry_reading_catalog")
print("engine_mcp_reading_values_included=no")
print("engine_mcp_raw_execution_data_included=no")
print("node_intelligence_descriptor=attested-gateway-successor")
print("node_intelligence_release=2.33.2-974a9fb3492f")
print("node_intelligence_image=preserved")
for foundation_path, foundation_sha256 in (
mcp_telemetry_catalog_preflight["foundation_sha256"].items()
):