Experiment formal soak transition source plan 03 - kmosoti/FabricO11y GitHub Wiki

R3 measured transition correction: source pre-flight 03

Prospective NOT RUN at clean 005a04008888fa3c6106d0d9591580c825eba953. The separately committed correction follows trust-only 7ff16db and its actual two named counterexamples. Production-only delta +5/-3 changes setup/exposure170/7210 and requires the sixth real stopped S1 exposure_transition maximum with25% headroom against10seconds (maximum8seconds). Total7500 and actual7200 offers/cohorts remain unchanged. Pure receipt validators, no clock read or actual runtime evidence.

Four serial default-capped source cells:26 controls (20 selected plus six test_preserve_soak_r2 importer controls), docs checker,55 documentation probes,10 hooks. Preserve all18 previously admitted selected controls and add the two new phase controls. The still-known5460 default method remains excluded and red; no native/R3 claim follows. Mount observations mocked; tiny ordinary-file stopped rename remains exercised, no real mount/native source. Fresh full DATA namespace census/full1GiB reserve percell/admission including reserve<95GB/100GBceiling/default16high20maxGiB/no-swap/1800seconds. Root alone executes, source held, stop at unexpected failure, read59 afterward, successful launcher scratch removed; failures preserved.

Read-only consumer search shows only test_soak_exposure uses the changed phase APIs; preserve_soak_r2 also imports the module for unchanged require_no_mounts. The selected ExistingSoakSourceControls import that actual preserve module and exercise both unchanged mount refusal sites. No cgroups, preserve, runtime, helpers, canonical manifests, independent product oracles or other affected test files changed since their actual C082 five-cell ff3c182 receipts, including80 affected tests. Their historical receipts stay bound to ff3c182 and are not presented as new runs; this four-cell plan reruns the20 directly affected controls and the changed protocol docs. Existing Bun1.4.0/locked106-link dependency view reused, no install or cache construction. No Rust/helper edit, Cargo/native/smoke/FULL or deadline increase.

Exact commands

python3 -B /run/media/kmosoti/data/FabricO11y/results/candidate-build-fresh-8fb6f413179b-01/run-step-soak-transition-source-03.py soak-transition-source-controls-03 1073741824 env PYTHONPATH=tools/qualification:tools/ui:tools/bench/labs/completion:tools python3 -B -m unittest -v test_soak_exposure.LiteralExposureControls test_soak_exposure.PhaseTransitionControls test_soak_exposure.ExposureMechanismAvailability test_soak_exposure.ExposureMechanismControls test_soak_exposure.ExistingSoakSourceControls.test_original_ten_gate_names_remain_exact test_soak_exposure.ExistingSoakSourceControls.test_kernel_snapshot_includes_actual_parent_and_population test_soak_exposure.ExistingSoakSourceControls.test_same_device_mount_refuses_before_inventory_without_deletion test_soak_exposure.ExistingSoakSourceControls.test_new_same_device_mount_refuses_immediately_before_first_unlink test_preserve_soak_r2
python3 -B /run/media/kmosoti/data/FabricO11y/results/candidate-build-fresh-8fb6f413179b-01/run-step-soak-transition-source-03.py soak-transition-docs-check-03 1073741824 env PATH=/run/media/kmosoti/data/FabricO11y/tools/bun-1.4.0:/usr/local/bin:/usr/bin:/bin BUN_INSTALL_CACHE_DIR=/run/media/kmosoti/data/FabricO11y/tools/docs-bun-cache /run/media/kmosoti/data/FabricO11y/tools/bun-1.4.0/bun tools/docs/check.mjs
python3 -B /run/media/kmosoti/data/FabricO11y/results/candidate-build-fresh-8fb6f413179b-01/run-step-soak-transition-source-03.py soak-transition-docs-tests-03 1073741824 env PATH=/run/media/kmosoti/data/FabricO11y/tools/bun-1.4.0:/usr/local/bin:/usr/bin:/bin BUN_INSTALL_CACHE_DIR=/run/media/kmosoti/data/FabricO11y/tools/docs-bun-cache /run/media/kmosoti/data/FabricO11y/tools/bun-1.4.0/bun tools/docs/check.test.mjs
python3 -B /run/media/kmosoti/data/FabricO11y/results/candidate-build-fresh-8fb6f413179b-01/run-step-soak-transition-source-03.py soak-transition-docs-hooks-03 1073741824 env PATH=/run/media/kmosoti/data/FabricO11y/tools/bun-1.4.0:/usr/local/bin:/usr/bin:/bin BUN_INSTALL_CACHE_DIR=/run/media/kmosoti/data/FabricO11y/tools/docs-bun-cache python3 -B tools/docs/test_hooks.py

Pins

  • /run/media/kmosoti/data/FabricO11y/results/candidate-build-fresh-8fb6f413179b-01/run-step-soak-transition-source-03.py SHA-256 11e334f4abbc2d81befb3ddc547276943a404e172cd02c9cc11554f618efeae5, 7028 bytes.
  • /run/media/kmosoti/data/FabricO11y/scratch/soak-exposure/tools/qualification/soak_exposure.py SHA-256 a6c645eec407c60aa29c644729a474a6774466074ffbf01ccd68fda102fcc894, 10753 bytes.
  • /run/media/kmosoti/data/FabricO11y/scratch/soak-exposure/tools/qualification/test_soak_exposure.py SHA-256 771748ba80bc6baf786643cf0b5ae146a78f2cd0481697755567caa6e0132c04, 24763 bytes.
  • /run/media/kmosoti/data/FabricO11y/scratch/soak-exposure/docs/experiments/benchmarks/soak-protocol-r3.md SHA-256 db47a801cebf6d983f9d3ed58f671c4545f76200113b1a766547bf3db26b5bdf, 14993 bytes.
  • /run/media/kmosoti/data/FabricO11y/scratch/soak-exposure/tools/resource_group.py SHA-256 454acd27fdd5a87a35c697d6a89d2fc807c5c2757a98676dba2745efece7667e, 10723 bytes.

The prior untested, unpublished production commit d87ccbc lacked the handoff section4 commit-body prefix. Only that last commit's message was corrected before execution; its source tree is identical. Executed registration7ff16db and prior tested/published history remain intact. The previous proposed plan remains in wiki history and was never run. Use the new exact source revision below.

Complete production correction

commit 005a04008888fa3c6106d0d9591580c825eba953
Author:     Kennedy Mosoti <[email protected]>
AuthorDate: Tue Oct 13 00:26:50 2026 -0500
Commit:     Kennedy Mosoti <[email protected]>
CommitDate: Tue Oct 13 00:32:23 2026 -0500

    Require measured R3 transition headroom within the registered deadline
    
    Trust-boundary update: Implement the C-081 phase registration after its two literal counterexamples were recorded at 7ff16db. Keep 7200 seconds of offers and 7500 seconds total; require a sixth stopped real S1 sample with 25 percent margin. Runtime, source authority and independent product oracles are unchanged.

diff --git a/tools/qualification/soak_exposure.py b/tools/qualification/soak_exposure.py
index 3565452..54ae46b 100644
--- a/tools/qualification/soak_exposure.py
+++ b/tools/qualification/soak_exposure.py
@@ -12,8 +12,10 @@ import stat
 
 NS = 1_000_000_000
 EDGES = (60, 853, 1646, 2440, 3233, 4026, 4820, 5613, 6406, 7200)
-CEILINGS = {'setup': 180, 'exposure': 7200, 'drain_seal': 60,
+CEILINGS = {'setup': 170, 'exposure': 7210, 'drain_seal': 60,
             'shutdown': 20, 'checkpoint': 20, 'closeout': 20}
+HEADROOM = {name: seconds for name, seconds in CEILINGS.items() if name != 'exposure'}
+HEADROOM['exposure_transition'] = 10
 PARENT_FIELDS = ('memory.high', 'memory.max', 'memory.swap.max', 'pids.max',
     'memory.events', 'memory.peak', 'memory.current', 'memory.swap.current',
     'pids.current', 'pids.peak', 'cgroup.events', 'cgroup.procs', 'cpu.max', 'cpu.stat', 'io.stat')
@@ -59,12 +61,12 @@ def remaining_ns(phase, launcher_begin, phase_begin, now):
 
 
 def validate_phase_headroom(measurements):
-    require(isinstance(measurements, dict) and set(measurements) == set(CEILINGS) - {'exposure'}, 'phase headroom')
+    require(isinstance(measurements, dict) and set(measurements) == set(HEADROOM), 'phase headroom')
     for phase, record in measurements.items():
         require(isinstance(record, dict), 'phase headroom')
         maximum = record.get('maximum_ns')
         require(type(maximum) is int and maximum > 0
-            and (5 * maximum + 3) // 4 <= CEILINGS[phase] * NS
+            and (5 * maximum + 3) // 4 <= HEADROOM[phase] * NS
             and record.get('kind') in ('native-r2', 'full-rate-smoke')
             and record.get('stop_confirmed') is True and sha256(record.get('source_sha256')), 'phase headroom')
     return True

C-090/C-091 admitted the final 005a040 re-pin with six test_preserve_soak_r2 indirect importer methods added to the first cell. Expected26 methods there, zero failures/skips. No new cell or reservation; no other80 suites are repeated. For eventual FULL, exposure_transition must come from the admitted witness simulator full-rate smoke, never historical native-r2, which has no native begin/hold witness. The native runtime caller must enforce that separate binding before admission.