Viewing files at commit fcd8a785ee1aCommit detailsView latest

Browse files
docs/qa-invariants-2026-09-12.md 83 lines · 4.7 KB

Benchmark evidence and admission invariants — 2026-09-12 UTC

This correction follows the FIX review of mrmrs-eec7ec at 2735d7f5558e. Main remains b297e8a25d08. It is pending independent review, not integrated. The worker is /Users/mrmrs/o/worker-mrmrs-20260911T191215-bench-regate-fixes/bench; new evidence uses the qa4- prefix in its parent, preserving earlier reports.

Publication and evidence

Every workflow summary must report successful, measured correctness and a successful non-skipped operation before publication. This includes single subjects and non-trusted scenarios such as bugfix_test_loop. The separate trusted config/asset policy adds committed-tree evidence requirements; it does not replace the general correctness gate.

Reader classes describe evidence actually obtained. A failed worktree check or unavailable reader cannot claim committed-tree verification. A successful Git HEAD read made by the same binary bytes as the Git subject is labeled subject_binary_committed_tree, including the default PATH configuration. Non-trusted workflows with narrower committed-payload checks are labeled as such. Different executable hashes identify distinct selected instruments; they do not prove independent implementation or certify the operator's tool choice. The workflow oracle is version 2026-09-11.2, with a literal regression pin. Unavailable check pass/fail counts are null rather than fabricated zeroes.

Campaign admission and fixture integrity

Fixture preparation and integrity validation precede admission. A corrupt or incomplete cache aborts the invocation with pending trials intact. Partial first-time generation is preserved for investigation; it cannot burn pending trials as task errors.

Cache permissions discourage accidental writes but are not a security boundary against a process with the same UID. The runner validates the cache before each copy, verifies the copied bytes before agent launch, and checks the cache again after the trial. A detected drift invalidates the affected measurement, retains the rejected row, stops admission, and excludes the invalidated attempt from complete paired comparisons. Trial copies remain writable for task execution. Resume binds the cache and its mutable record to the digests already observed in trial journal events. Rewriting both cache and record cannot replace that baseline. Synthetic uncertain torn starts do not claim an observed fixture; ordinary trial events require their recorded binding. These checks do not establish OS containment or protect the trusted runner itself from a fully hostile host.

Shared measurement policy

Both dedicated A/A and embedded-null noise estimates use the same symmetric ratio-spread helper. Candidate regression percentages remain directional. Git local-file and Oak network remote operations are excluded from cross-kind guardrails with an explicit transport note, not treated as equivalent tasks. Missing comparable target operations still regress. Lost or failed optional patch proof remains visible as informational evidence.

Patch tree hashing and mutation classification now belong to the shared output oracle, with one manifest canonicalization. The core lane consumes that policy.

Mount, interleaved command and external-timer processes sanitize Git settings and suppress Oak's updater through the shared environment helper. They retain the caller's HOME for authentication/configuration, so their environment policy is 3-host-home, distinct from the isolated-HOME core policy 3. In particular, mount rows no longer claim the core isolation contract. Host-home configuration remains a qualification limitation.

Verification

The final full instrument suite passed: 1,092 tests, three skips, in 130.519 seconds (python3 -m unittest discover -s tests with the shared measurement lock configured). Complete output is ../qa4-tests.log.

The identical-binary core devloop passed with two repetitions and two A/A repetitions under the shared measurement lock, with default thresholds and the pinned Oak 0.103.0 binary in ../subject-identities.json. It reports zero baseline regressions, the known EOF patch defect as PREEXISTING, and incompatible remote operations as informational transport exclusions. Evidence: ../qa4-devloop.log and results/qa4-core/20260912T012121Z/.

Producer-level regression tests exercise failed and repaired bugfix summaries, cache corruption before admission, interrupted generation, cache poisoning by a real mock-agent trial, copy corruption before a subsequent agent can run, and a cache-plus-record rewrite rejected against the original journal digest. Environment boundary tests exercise an actual mount subprocess and the interleaved/external-timer execution APIs under poisoned environment settings.