"""A-04 (transitive) — the serve process must not LOAD the wave/fibonacci substrate. The existing `test_phase0_a04_serve_path_quarantines_wave_and_fibonacci` walks only `chat/runtime.py`'s own AST import nodes, so it catches DIRECT imports only. The stated invariant is process-level ("serve path stays quarantined"; modules labelled "never serve"). This pin enforces the stated invariant: importing `chat.runtime` in a clean interpreter must not pull any banned module into `sys.modules`. RED until the `core/physics/__init__.py` barrel stops eagerly importing the off-serving substrate (Finding #2, docs/research/adr-0241-0242-adversarial-and-fidelity-findings.md). """ from __future__ import annotations import subprocess import sys from pathlib import Path _ROOT = Path(__file__).resolve().parents[1] # Genuinely off-serving; must never load into the serve process. _BANNED = ( "core.physics.holographic_vault", "core.physics.fibonacci_search", "core.physics.fibonacci_word_schedule", "core.physics.atlas_packing", "core.physics.wave_seam", "core.physics.wave_energy_boundary", "core.physics.multi_scale_energy", "core.physics.sensorium_wave_feed", # NOTE: core.physics.wave_manifold is intentionally excluded pending the # Joshua design ruling (goldtether delegates to it). Add it here if the # ruling is "quarantine wave_manifold for real". ) def test_import_chat_runtime_does_not_load_offserving_substrate(): probe = ( "import importlib, sys, json;" "importlib.import_module('chat.runtime');" f"banned={list(_BANNED)!r};" "leaked=sorted(m for m in sys.modules for b in banned if m==b or m.startswith(b+'.'));" "print(json.dumps(leaked))" ) result = subprocess.run( [sys.executable, "-c", probe], cwd=str(_ROOT), capture_output=True, text=True, env={"PYTHONPATH": str(_ROOT), "PATH": ""}, ) assert result.returncode == 0, f"probe failed: {result.stderr[-2000:]}" leaked = result.stdout.strip().splitlines()[-1] import json as _json leaked_list = _json.loads(leaked) assert not leaked_list, ( "serve process transitively loaded off-serving modules " f"(A-04 breach via core/physics barrel): {leaked_list}" )