diff --git a/docs/compaction-refresh/reviews/GATE0-PROBE3-V8-ENVBYTECODE-S3-REVIEW-v8.md b/docs/compaction-refresh/reviews/GATE0-PROBE3-V8-ENVBYTECODE-S3-REVIEW-v8.md new file mode 100644 index 0000000..ecd0b47 --- /dev/null +++ b/docs/compaction-refresh/reviews/GATE0-PROBE3-V8-ENVBYTECODE-S3-REVIEW-v8.md @@ -0,0 +1,90 @@ +# Gate0 Probe-3 (D4) Broker Env-Isolation + Bytecode Binding — §3-Conformance Review v8 + +**Verdict: ❌ FAIL** (B7 and B8 land correctly, but the same change breaks **B6(c)**: the launcher is run with `-I`, which strips the script directory from `sys.path` on Python 3.11+, so its bare `import lease_generation` cannot resolve the pinned helper — empirically confirmed). + +## Pin (GUARD 1 — reviewed object) + +- **Reviewed object = `a92ad090ae3828c643f961c7628d809b8521185f`** (harness commit, branch `feat/827-gate0-probe`). +- **Reviewed file:** `docs/compaction-refresh/probes/p3_d4_focused_run.py` — sha256 (pushed provider bytes, `-o FILE`, FULL-40 ref, verified before trust): `915ebeb5aeab108cb60c5f629c1db520623ab4914eed427ca34ee66f9aa08390` (32614 bytes, no not-found sentinel). +- **Closure pins (unchanged from v7):** launcher `e950e422…` @f4008307 · helper `061625402f08488eac47acd23272904e71fd1a71fd15b3bdab158632c801be4c` @f4008307 · broker `4db4fef1…` @23c0caca. + +## Independence (GUARD 2 — principal-independence attestation) + +Distinct Opus SECREV session, orchestrator-dispatched — the **`ms-secrev-828` reviewer lane, dispatched by +`mosaic-100`** — **byte review only, ran nothing** (the harness/broker were not executed); did **not** build this +harness (builder = ms-rev-826); is not Mos. This verdict is my own. (The `-I` semantics check below runs a *throwaway* +two-line script to observe the interpreter's `sys.path` behavior — it does not run the harness, broker, or any part of +the reviewed closure.) + +## 🔴 BLOCKING FINDING — B6(c) broken: `-I` on the launcher strips the pinned-helper import path + +**File:line — `p3_d4_focused_run.py:512`** (the `"-I"` added to `launch_verified_pi`'s launcher command). + +The pinned launcher `launch-runtime.py` @`f4008307` imports its helper with a **bare top-level import**: +`from lease_generation import initialize_runtime_generation` (launcher line 15) — no `sys.path` manipulation. Under +v7 this bound because `python3 pinned/launch-runtime.py` put the script's directory (`pinned/`) at `sys.path[0]`, so +the sibling `lease_generation` resolved to `pinned/lease_generation.py`. + +v8 now runs the launcher as `python3 -I -B pinned/launch-runtime.py …` (:512-513). **`-I` implies `-P` (Python 3.11+), +which does NOT prepend the script's directory to `sys.path`.** Empirically confirmed on this host (Python 3.11.2), +using a throwaway script (not the harness): + +``` +python3 -I -B main.py → sys.path[0] = '/usr/lib/python311.zip' + import sibling → ModuleNotFoundError: No module named '…' +python3 -B main.py → sys.path[0] = '