Joint-review followup — 2026-10-13 Completed only the requested gaps. No transport kernel, pinned reference, geometric module, algorithm, tau pair or tolerance changes. No audit rerun, 32-step/Jet/dynamic-AMR run, dependency/environment change or Git push/commit. Code: download device-read exceptions mark the backend failed; close activation failure preserves references in failed state and permits a second close attempt. Explicit checks (also effective under python -O) enforce HALO=4, each validated omega=1/tau, and d_params size=struct.calcsize('=ffffI') before upload. The existing GPU test's RSS assertion is now 256MiB, not 512MiB. Executed checks (real stdout retained): cpu_stdout.txt: three new CPU fault/contract tests plus the original mock cleanup test pass. Both coarse and fine read failure are injected; close context-manager entry failure is followed by a successful cleanup retry. CPU parent/children use 256MiB RLIMIT_AS, 2MiB RLIMIT_FSIZE, core=0. Peak child RSS 46,380KiB. First CPU attempt exposed an incorrectly configured test Mock, corrected before rerunning; that failed stdout is also retained. gpu_seed1_stdout.txt: ordinary non-instrumented build, identical seed1 initial state, eight coarse steps, FP32 G versus pinned FP64 C(F_ref): maximum population error 1.67235548e-7 (limit 3e-6) maximum leaf mass/momentum drift 2.23806128e-5 (limit 2e-4) maximum leaf reference discrepancy 2.20813948e-5 (limit 2e-4). These match the preceding audit-build observations. No audit was rerun. gpu_rectangle_stdout.txt: ordinary build, ONE coarse step on 17x13 coarse, bounds=(2,2,6,5), fine=16x14 including halo. Offcenter/non-square, x/y margin2, distinct layer dimensions. Asymmetric nonequilibrium G0, compared with a small independent scalar G-to-G oracle using closed-midpoint geometry and no production exchange tables. Maximum population error 1.14050047e-7; full raw fine halo NaN/valid mask and public leaf mask match. Device arrays 35,288 bytes. This adds bounded rectangle coverage, not a general accuracy or arbitrary-grid certification. Resource handling, including unsuccessful starts: Every actual job has its own immediately preceding gpu_*_before.json with physical UUID, utilization, memory and compute-apps. Only physical GPU0 used: GPU-e8853ae7-a302-6a17-bcfa-aa767e9ed20c. Successful starts: 0%, 5MiB, no apps. Initial launcher stopped before starting on a units-parsing mistake; snapshot retained. After correction, original compile-inside-context test was killed by our monitor at 268,984,320 bytes summed process-group RSS (256.52MiB), while compiling the second module: no flow steps had run. gpu_results.json records the -9 exit and contributing Python/nvcc/cicc processes. Its residual build was identified by exact source/config metadata plus in-job timestamp and removed; cleanup.json records that check. No budget increase: test-only normal_backend now compiles normal refinement.cu before creating a context, then matches exact generated source digest and architecture when loading. Each case runs in a fresh process. Ordinary compiler flags, kernel and production loading/transport behavior remain unchanged. Successful seed1/rectangle sampled process-group peaks: 194,113,536 and 194,244,608 bytes (~185MiB), including any live compiler children. Device arrays remain below 128KiB. One rectangle launch was refused at utilization 6% despite no listed apps; a new idle snapshot preceded the later successful launch. RSS polling at 20ms is a monitoring threshold, NOT an OS hard memory limit; summing RSS conservatively double-counts shared pages. CUDA virtual address mappings are not limited with RLIMIT_AS. Output/core use OS limits, combined raw stdout is also watched against 2MiB, and elapsed time against 120s. Only the test's own new process group is terminated on a threshold violation. The runner itself is outside that group. All new per-job temporary directories were cleaned. run_gpu.py records the exact reproducible harness and skips already successful cases when resuming these evidence files. Existing pycuda_3_10 Python and explicit /home/frank14f/CelerisLab/src used; package/kernel/source paths asserted. Full commands, process-only settings, snapshots, times and RSS are in the JSON records; no DynamisLab access. incremental.patch is relative to THIS round's frozen start: two small existing file changes and one new followup test. Baseline verification is limited to the 15 relevant source/reference/prior-evidence files, preserving unrelated dirty work; the 13 outside the intended two edits remain byte-identical. Prior-round validation files are untouched. Independent read-only agent review found no remaining blocker. No long-time interface/stress accuracy claim is added.