Problem
benchmarks/tests/test_progressive_host_run.py:31 hardcodes WORK_PARENT = Path("/home/ubuntu/graphforge-ladder"), the same directory the real progressive host ladder writes its retained evidence to (clean-<sha>-evidence/, clean-<sha>-work/, hand repro dirs). test_progressive_run.py:1308 uses the same literal path.
The tests create that directory if missing (WORK_PARENT.mkdir(parents=True, exist_ok=True), line 111), open tempfile.TemporaryDirectory(dir=WORK_PARENT) inside it, and then call write_host_bundle(output, …) with output equal to the temporary directory itself. host_run_fixture.executables(output.parent) therefore writes three fixture executables (gf, certify, generator, contents bounded executable fixture) into the live ladder root, and nothing removes them.
Observed 2026-09-21 on OVHC-AGENCY: /home/ubuntu/graphforge-ladder has birth time 18:48:27 UTC and contains only those three 26-byte fixture files. Every evidence directory that was there at 17:48 UTC (cited by #1526 and by #1478 §12) is gone. This issue does not claim the tests deleted them; the directory was absent when the tests ran and they recreated it. The defect is that a unit test suite shares a path with, and writes into, the host's retained benchmark evidence root at all.
Why the path is hardcoded
The host controller's native filesystem admission requires an ext4/xfs/btrfs volume, and /tmp on this host is tmpfs, so tmp_path cannot be used directly. That justifies an ext4-backed scratch root, not the evidence root.
Acceptance criteria
Non-goals
Recovering the deleted evidence (tracked in #1530) or changing the ladder controller's own output layout.
Problem
benchmarks/tests/test_progressive_host_run.py:31hardcodesWORK_PARENT = Path("/home/ubuntu/graphforge-ladder"), the same directory the real progressive host ladder writes its retained evidence to (clean-<sha>-evidence/,clean-<sha>-work/, hand repro dirs).test_progressive_run.py:1308uses the same literal path.The tests create that directory if missing (
WORK_PARENT.mkdir(parents=True, exist_ok=True), line 111), opentempfile.TemporaryDirectory(dir=WORK_PARENT)inside it, and then callwrite_host_bundle(output, …)withoutputequal to the temporary directory itself.host_run_fixture.executables(output.parent)therefore writes three fixture executables (gf,certify,generator, contentsbounded executable fixture) into the live ladder root, and nothing removes them.Observed 2026-09-21 on OVHC-AGENCY:
/home/ubuntu/graphforge-ladderhas birth time 18:48:27 UTC and contains only those three 26-byte fixture files. Every evidence directory that was there at 17:48 UTC (cited by #1526 and by #1478 §12) is gone. This issue does not claim the tests deleted them; the directory was absent when the tests ran and they recreated it. The defect is that a unit test suite shares a path with, and writes into, the host's retained benchmark evidence root at all.Why the path is hardcoded
The host controller's native filesystem admission requires an
ext4/xfs/btrfsvolume, and/tmpon this host is tmpfs, sotmp_pathcannot be used directly. That justifies an ext4-backed scratch root, not the evidence root.Acceptance criteria
GF_LADDER_TEST_ROOT) with a default that is not the evidence root and is documented next to the ext4 requirement; the default must be a dedicated directory such as/home/ubuntu/graphforge-ladder-test.write_host_bundle/executablesreceive a path inside the temporary directory, and a test asserts the scratch root's top level is unchanged after the suite runs.test_progressive_run.py:1308uses the same scratch-root mechanism; no literal/home/ubuntu/graphforge-ladderremains underbenchmarks/tests/.docs/development/perf-g500-ladder.mdnames the evidence root as retained data that tests and cleanup tooling must not touch.Non-goals
Recovering the deleted evidence (tracked in #1530) or changing the ladder controller's own output layout.