From d5bb42f5ef12d5b990ab515dbb37dde9e3d7b5f3 Mon Sep 17 00:00:00 2001 From: Yernat Yestekov <2068106+doublewhy@users.noreply.github.com> Date: Fri, 14 Aug 2026 16:52:45 -0700 Subject: [PATCH] fix(conformance): keep the default adapter probe envelope-neutral MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Carrying authored OS identity through realization (#1141) turned the default target-conformance probe scenario's 'os: linux' into an exact SEM-218 os-family requirement demanding presence corroboration that no hermetic in-process backend declares. Since then target-provisioning and target-snapshot silently failed for every honest backend (reference and stub alike), with no test pinning them. Drop the authored OS from the default probe scenario — mirroring the canonical cross-backend-minimal decision that leaving it unset is what keeps a scenario admissible on more than one envelope — and pin both adapter probes passing for every hermetic backend so this cannot drift silently again. The issue #663 runner parameter remains the escape hatch for bounded backends, and the pinned fail-closed posture of the opacity and constructive-envelope probes (report.passed is False) is unchanged. Advances RUN-314's acceptance criterion that the released conformance harness be invocable by a downstream backend with default arguments. Verification: reference and stub targets both pass target-provisioning and target-snapshot; nox -s tests green (7,012 tests); ruff clean; check_repo_policy pass. Co-Authored-By: Claude Fable 5 --- .../conformance/target_probes.py | 9 ++++++-- .../test_reference_backend_conformance.py | 23 +++++++++++++++++++ 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/implementations/python/packages/raes_conformance/conformance/target_probes.py b/implementations/python/packages/raes_conformance/conformance/target_probes.py index 690b6c83..068025b9 100644 --- a/implementations/python/packages/raes_conformance/conformance/target_probes.py +++ b/implementations/python/packages/raes_conformance/conformance/target_probes.py @@ -39,7 +39,13 @@ from raes_conformance.conformance.validators import _validate_payload # Default reference scenario the target-conformance adapter probe drives when the -# caller supplies none. Backend-neutral: a single generic linux vm node. +# caller supplies none. Backend-neutral: a single generic compute node with no +# authored OS identity — an authored ``os`` becomes an exact SEM-218 +# realization requirement demanding corroboration no hermetic in-process +# backend declares, which is what regressed this probe when authored OS +# identity started carrying through realization. Leaving it unset keeps the +# probe admissible on every declared envelope, mirroring +# ``examples/scenarios/cross-backend-minimal.sdl.yaml``. # # Issue #663 makes this a *default*, not a universal assumption. A fixed-topology # emulation or bounded simulation backend that cannot realize this generic @@ -55,7 +61,6 @@ nodes: vm: type: compute - os: linux resources: {ram: 1 gib, cpu: 1} conditions: {health: ops} roles: {ops: operator} diff --git a/implementations/python/tests/test_reference_backend_conformance.py b/implementations/python/tests/test_reference_backend_conformance.py index 510e9d7a..c7eab272 100644 --- a/implementations/python/tests/test_reference_backend_conformance.py +++ b/implementations/python/tests/test_reference_backend_conformance.py @@ -20,6 +20,29 @@ def test_reference_target_requires_opacity_probe_for_positive_declaration(): assert not report.unsupported_capability_gaps +def test_adapter_probes_pass_for_every_hermetic_backend(): + """The provisioning/snapshot adapter probes must stay envelope-neutral. + + An authored ``os`` in the default probe scenario becomes an exact SEM-218 + realization requirement no hermetic in-process backend can corroborate, + which silently failed these probes for every honest backend when authored + OS identity started carrying through realization. Pinning them keeps the + default probe admissible on every declared envelope (issue #663's runner + parameter stays the escape hatch for bounded backends). + """ + + from raes_backend_stubs.stubs import create_stub_target + + for target in (create_reference_backend_target(), create_stub_target()): + report = run_target_conformance(target) + cases = {case.name: case for case in report.cases} + for name in ("target-provisioning", "target-snapshot"): + assert cases[name].passed, ( + f"{name} must pass for an honest hermetic backend; " + f"diagnostics: {[diag.message for diag in cases[name].diagnostics]}" + ) + + def test_reference_target_drives_full_participant_probe_case_set(): report = run_target_conformance(create_reference_backend_target())