GLTron publication-order independent acceptance: REJECT
Candidate: 80f02f5f2235560f0705880544f0403dfda906b4, unchanged.
Production source SHA-256:
2361e3a5ccbe91f6160156afe2977e97087ea3b75c72f6564f600d44b400928b.
The original failure is repaired: the exact unchanged production-analyze section
of test/gltron-original-recovery-independent-accept-oct28.py now reports
ACCEPT for both closure-failure propagation and no inventory on failed closure.
The original experiment's process exit alone was not used as acceptance.
The exact pinned CLI ran with retained original archive and executable bytes,
copied into owned evidence as required by the unchanged reproducer; neither was
executed or extracted. Unrelated historical experiment sections were omitted.
The new independent test reports seven passing controls and one rejection. Valid closure succeeds; checksum and malformed PE failures preserve existing inventory/closure or leave both absent; unresolved imports publish no fresh inventory. Restoring eager inventory publication is detected and rejected.
The decisive counterexample is failed re-analysis after an existing success:
- Analyze tiny generation A successfully with
KERNEL32.dllimports. - Preserve the published inventory and closure bytes.
- Change the 128-byte PE fixture's last byte and update its valid checksum.
- Analyze generation B with
generation-B-missing.dllunresolved. - Analysis raises
ValueError, preserves A's inventory, but overwrites A's closure with B's unresolved-import result.
Thus the published pair mixes generations following validation failure. The
candidate writes closure.json before checking result['unresolved'], while
preserving old inventory.json. This is a source/static rejection under the
assigned preexisting-closure preservation and mixed-generation acceptance
requirements. The diagnostic output is useful, but should be separate from the
previously published closure, or the success pair must otherwise retain a
consistent generation. No repair is made in this acceptance task.
The new test calls unchanged analyze and real listing, checksum, PE and payload
validation. Archive verification and objdump text are isolated with mocks for
tiny fixtures; these checks do not establish real objdump acceptance of those
synthetic PEs. The initial CLI boundary uses the real candidate and tools.
Evidence is retained under
scratch/usage-watch/gltron-publication-order-independent-accept-oct28/:
evidence/first-boundary/decision.json,
evidence/first-boundary-source.json,
evidence/adversarial/decision.json,
evidence/adversarial/before-inventory.json,
evidence/adversarial/before-closure.json, and the failed
evidence/adversarial/mixed-generation/ fixture and resulting outputs.
Each operation has separate stdout/stderr and command/exit/resource receipts.
The independent adversarial program exits 1 on REJECT.
Reuse the unchanged repair receipt's 26-experiment and original five plus three focused groups, and coordinator-verified 147 new plus 119 inherited payloads. These were not rerun or repackaged. The new failure blocks candidate integration. No main push, runtime, Boat, registration, gameplay or public deployment is authorized by this result. Root and donor trees remain read-only.