The enabled tools/maelstrom-native-errno-latch.cjs transform now reads each
canonical pinned source property once, validates that captured primitive string,
and passes that same value to composition and output. This closes the accessor
validation/output identity gap without changing generated CALL/RET hooks, binary
checks, direct-read bounds, completion linkage, or one-shot state. Inherited
getters and proxies use the same single-read contract. Unused alias paths are
never enumerated. The disabled early return still inspects only enabled.
The repair is based on independent REJECT commit
07dec4e6ff92356a896d2868aaa7e9a5b4b0c98d, preserving candidate
4542e115ac2b1e0cca6748bd00cdce2b4f781199 and its immutable independent review.
Only the implementation above, the new
test/maelstrom-native-errno-source-snapshot.test.cjs, and this task's review
evidence are changed. The original 13-group suite and independent 9-group
oracle retain their bytes.
The unchanged independent pin-repro.cjs has SHA-256
83376305f77386948a2f9bcc22f2df6dbbb111db1ef7473e39a6c7f1e22c1ac5.
It exits 1 on the donor with defect:true, three getter reads, and unpinned
decoder SHA-256 5a19b0ff2bd490061a8a38e6ac98d57a801546b86ed8389f0a06820aee936a60.
It exits 0 on the repair with defect:false, one read, and the expected decoder
SHA-256 fec7b2413c972eca6ce666cd5300308047cdc08f7ca6a4542edfea98f02a3837.
Its actual assertion is assert(!receipt.defect); the candidate label embedded
in that unchanged program remains historical. No diagnostic or assertion was
weakened. Authentic plain input passes and altered plain input rejects in both
runs. Stable plain CLI input was not demonstrated affected; CLI acceptance was
not repeated for this API repair.
All 13 supplied source/model groups, all nine unchanged independent groups,
and six new snapshot groups pass. The new groups cover third-read output
substitution, every pinned property, unpinned first reads, inherited getters,
proxy traps, mutations by later getters, and disabled sources/unused options.
The four existing output mutations actually reject: stale token (4 versus 5),
capture after dispatch (3 versus 4), unsafe direct span (134217728 versus
4294967295), and result as errno (0 versus 10004). Restoring the original
three-read sequence in memory also actually rejects at the new output-hash
assertion (57f724a0... versus pinned fec7b241...); the implementation on
disk stays repaired. The initial narrower regression also rejected the donor;
the committed final six-group regression is bound by the mutation-control and
passing receipts.
Exact source, binary, and installed-tool paths, lengths and full SHA-256 pins
are in standing-inputs.json.
The implementation's original source-identity evidence was independently
cross-checked against those unchanged inputs; its full hash is in
source-identity-verified.json.
Inputs were read in place from canonical source
/home/user/wine-assembly-shadow-man-span-static-canonical-oct23, original
/tmp/maelstrom-original-win32-closure-oct24/extracted/Maelstrom-3.0.6, and
/home/user/wine-assembly/test/binaries/dlls/msvcrt.dll.
No installed tools were copied. Dependency-first readonly alternates back the
explicit five-path checkout; Git auto maintenance is disabled. Root and donor
HEAD, refs, index and tracked-diff hashes are unchanged. Only the append-only
root messageboard is written. The trusted SSH configuration is recorded;
there is no mount argv or conditional runtime invocation to parse.
manifest.json
binds the implementation, regression, unchanged reproducer, controls, guarded
commands, logs and receipts. Guards enforce Node heap 256 MiB, CPU/wall 60 s,
131072-byte output, 24 MiB per file, 2 MiB narrow capture and TERM/KILL/reap
within five seconds. Every test process exited and was reaped without timeout
or output truncation. Resource receipts charge checkout/Git/staging/temp,
evidence/publication copies, full external launcher/session logs, positive
SQLite growth, future allowance and an 8 MiB reserve inside 64 MiB. A
prepublication snapshot stores tracked-diff digests instead of full diff text.
Final actual remote verification, final accounting and watcher cleanup are in
the task-owned ops/result.json, written last after publication.
This is source/model acceptance only. No build, compilation, instantiation,
native/guest/browser run, box operation, acquisition, worker launch, or main
merge occurred. Native errno, native caller, gameplay, completion fdsets/timeval
and native overhead/equivalence remain UNKNOWN. The remaining gate is separately
authorized canonical build/compiled-native qualification with a loader-proven CRT
base and original capture. No boxes were assigned; bx_g84h8h98 remains
coordinator-reported stopped/unqueried and hostbx_69aem736 untouched. Runtime
lifecycle ownership remains with the coordinator. Stop after this tested branch
is published and verified.