diff --git a/infra/deploy-runner/nodedc-deploy b/infra/deploy-runner/nodedc-deploy index 68e1e1d..8e31c8b 100755 --- a/infra/deploy-runner/nodedc-deploy +++ b/infra/deploy-runner/nodedc-deploy @@ -4991,6 +4991,10 @@ def load_artifact(artifact, work_dir): and not is_engine_mcp_control_plane_slice(manifest["component"], entries) 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_provider_authority_diagnostics_slice( + manifest["component"], + entries, + ) ): die("Engine node-intelligence payload requires the canonical transition") if is_engine_node_intelligence_transition(manifest["component"], entries): diff --git a/infra/deploy-runner/test_engine_provider_authority_diagnostics.py b/infra/deploy-runner/test_engine_provider_authority_diagnostics.py index 62d430e..8042aa6 100644 --- a/infra/deploy-runner/test_engine_provider_authority_diagnostics.py +++ b/infra/deploy-runner/test_engine_provider_authority_diagnostics.py @@ -82,6 +82,16 @@ class EngineProviderAuthorityDiagnosticsTest(unittest.TestCase): ("http://127.0.0.1:3001/health",), ) RUNNER.validate_engine_provider_authority_diagnostics_slice(payload, entries) + loaded_manifest, loaded_entries, loaded_payload = RUNNER.load_artifact( + first_artifact, + root / "loaded", + ) + self.assertEqual(loaded_manifest["component"], "engine") + self.assertEqual(tuple(loaded_entries), entries) + RUNNER.validate_engine_provider_authority_diagnostics_slice( + loaded_payload, + loaded_entries, + ) def test_preflight_requires_the_exact_deployed_predecessor(self): with tempfile.TemporaryDirectory(prefix="nodedc-provider-authority-preflight-") as directory: