Parents: #461, #492
Related: #614, #615, #616
Problem
tools/exact-parent-regression.ts could collect and write a valid-looking exact-parent artifact while an unrelated Zig build/test or Home test executable overlapped a parent/candidate sample. Process-local instruction counters may remain stable, but wall/cycle/energy attribution and order balance are contaminated.
Two live #615 attempts exposed both races:
- a Home
zig test began during a row and remained alive for the after-snapshot;
/private/tmp/home-url-final began and exited entirely inside a row, evading both snapshots while inflating a normally millisecond invocation to roughly ten seconds.
Scope
- Define the exact evidence competitors explicitly from process-table rows.
- Reject unrelated
zig and maker processes plus known repository test/corpus executables before and after every parent/candidate invocation.
- Exclude the collector and its own runner ancestry/children without PID guessing.
- Measure complete-process wall and CPU time; reject CPU occupancy below 60% so a transient competitor cannot hide between snapshots.
- Persist the full-process wall time, occupancy, and threshold in every raw sample and rendered report.
- Record no artifact when overlap is detected; partial output paths must not masquerade as complete evidence.
- Add deterministic fixtures for ancestry exclusion, competitor classification, unrelated process tolerance, before/after failure behavior, occupancy calculation, policy drift, and below-threshold failure.
No-workaround rules
- No sleeps, retries that hide an overlapped sample, process killing, bare name substring matching, or accepting stable counters as proof of an uncontended host.
- Do not treat browser/system background activity as a named compiler/test competitor; host-class/RSD/thermal policy continues to govern ordinary noise.
- Never delete or modify the competing user-owned process.
Acceptance
Parents: #461, #492
Related: #614, #615, #616
Problem
tools/exact-parent-regression.tscould collect and write a valid-looking exact-parent artifact while an unrelated Zig build/test or Home test executable overlapped a parent/candidate sample. Process-local instruction counters may remain stable, but wall/cycle/energy attribution and order balance are contaminated.Two live #615 attempts exposed both races:
zig testbegan during a row and remained alive for the after-snapshot;/private/tmp/home-url-finalbegan and exited entirely inside a row, evading both snapshots while inflating a normally millisecond invocation to roughly ten seconds.Scope
zigandmakerprocesses plus known repository test/corpus executables before and after every parent/candidate invocation.No-workaround rules
Acceptance