Independent select completion hook review — 2026-10-24
Verdict: FAIL; no main integration. Reviewed unchanged candidate
7fd4373a7ecb364b89b843e78c6015e03ef248e6, exact tested tree
80e0474aec844ecc5ca243cbc41b2da476325553, based on
0cd1121b01300ae157dd5af3580a4cf132865fdb.
Reproducible false completion
createOracle().accept() in tools/maelstrom-select-completion-hook.cjs
validates caller-supplied fields and then repeatedly rereads them for phase
classification, state copying and its return value (lines 147–174). It never
establishes a stable, owned snapshot. The independent independent.cjs repro
uses an unchanged transformer and evaluator to produce an ordinary parked
attempt, then supplies that snapshot through a changing proxy. The same owner
object is used throughout. There is no normal handler completion, result-store
hook execution or mutation of the model's diagnostic globals.
The actual stored state is phase=2, token=entries=parks=1, completions=0,
active=0, pre=post=4096, result=0. The proxy returns phase=2 for its first six
reads and phase=3 afterward, and result=0 for its first four reads and stale
EAX sentinel 0x53000001 afterward. Expected: park or rejection, never
completion. Actual: {kind:"completion", attempt:1, result:1392508929} with
an identity that still says parks=1, completions=0, pre=post=4096. This is a
concrete fabricated completion in the exported JS oracle, not proof of a false
completion in actual Wasm. The ordinary plain snapshot control returns park,
and a stable nonzero parked result is rejected.
A second independent case supplies a throwing getter. The original thrown object escapes, but the oracle remains open and subsequently accepts a normal completion. Expected fail-closed behavior is absent on this path. These cases are missing from the supplied tests, which use stable plain snapshot objects. Even a stable caller-fabricated terminal record is not authenticated by the owner argument: ownership is a caller convention. Optional entry pairing checks identity changes only when an entry snapshot was actually submitted. The source hook's private state and the caller-provided JS record are different trust boundaries. No speculative production repair was made.
Source review and accepted limits
All four added code/fixture files and the complete producer report were read.
All six fixture inputs were independently checked by byte count, SHA-256,
historical Git blob and working-file Git blob against revision
b41a7c5f4b752d1f0bdab1141a11d4fed4dc6f9a in the specified canonical root.
The producer's other 24 evidence additions remain unchanged and are not a new
runtime qualification.
The historical handler's only normal EAX store is immediately followed by
msc_end(token,3) in transformed source. Both park exits call vsock_block(24),
then msc_end(token,2), then return. The normal result is read from actual EAX;
the park path stores no attributed EAX. No subsequent guest instruction or
callback intervenes in this source sequence. The original stdcall adjustment
is 24 bytes. The dispatcher adapter captures pre-pop ESP inside the existing
saved-return read, plus thread/register base; it supplies the actual thunk
index and arms only API 934 immediately before generated dispatch. Both thunk
zone and decoded inline CALL/JMP paths reach this dispatcher. Page 3 subtracts
768, its API-166 branch exits to handle_select, and the direct test export is
a separate unsupported attribution route. The existing dispatcher and handler
AST-erasure checks recover the originals.
Added helpers use declared locals/parameters, consistent private call arities,
18 instance-local mutable i32 globals and 18 distinct function exports,
including the one-way start function. Independent source controls checked
helper references, call arities and export-name collisions against the six
pinned files. Guards compare pre/post ESP, current thread/register/thunk and
attempt token. Fresh attempt tokens and counters stop at 4096; pre-pop ESP
above 0xffffffe7 rejects before overflowing the completion adjustment.
Reentry or an outstanding incomplete attempt faults; the first normal result
is retained against later original calls. The added diagnostic bodies perform
no guest writes, imports, clock/pump calls, yield clears or scheduling. Original
return and exception behavior is not wrapped by added WAT. Disabled transforms
return the same opaque input, with unused getters inert. Accepted lifecycle and
event observer files are unchanged. These are source findings, not a compiled
WAT validity or execution claim.
The supplied evaluator does not execute dispatcher routes, generated dispatch,
real socket filters, memory translation, module export binding or a Wasm type
checker. Its Model.arm() fabricates dispatcher input, and original callees
are mocks. An additional independent repro shows Model.run() mistakes an
original imported exception {modelReturn:true,value:123} for its internal
return sentinel and returns 123 instead of propagating that object. This
blindspot affects the evaluator's exception evidence, not the actual WAT. No
manufactured model completion establishes real Wasm execution.
Evidence and disposition
The candidate suite passes all 11 groups and its unchanged 10 mutations. Independent controls pass eight ordinary cases and expose the two oracle failures above. Five further rejecting source mutations pass: removed thread comparison, removed thunk comparison, removed token comparison, removed cap, and removed first-completion freeze guard. The evaluator exception repro fails as expected. Original failures and exact command exits are retained.
Evidence scripts and captures are adjacent in
maelstrom-select-hook-independent-closeout-20261024-evidence/. Reproduce with:
node test/test-maelstrom-select-completion-hook.cjs /home/user/wine-assembly-shadow-man-span-static-canonical-oct23
node docs/re-notes/maelstrom-select-hook-independent-closeout-20261024-evidence/independent.cjs
node docs/re-notes/maelstrom-select-hook-independent-closeout-20261024-evidence/source-controls.cjs
node docs/re-notes/maelstrom-select-hook-independent-closeout-20261024-evidence/evaluator-blindspot.cjs
The scripts retain their exact review-owned absolute repo paths. Source tests, syntax checks and diff checks are offline only. No compile, instantiate, native/guest execution, box query, download, deployment or worker launch took place. The exact runtime-hook gate remains unresolved until a canonical diagnostic build and native qualification, even after any later offline repair. No API result or gameplay claim follows from this review.
Fresh admission preceded checkout; flattened dependency-first read-only alternates and explicit sparse paths avoided clone/fetch/repack/object-store copies. Accounting charges checkout/Git/evidence, full session/launcher/WAL, positive SQLite growth, future publication and 8 MiB reserve within 64 MiB. Initial combined receipt output was truncated; retained session bytes remain charged. The SQLite baseline follows initial read-only instructions; earlier database growth is unknown, while full current WAL/session are included. Narrow missing-path inspection errors are retained. Trusted SSH and empty mount argv reuse the unchanged supplied configuration receipt; no runtime mounts exist.
Only this review task branch is published. Root tracked files/index/refs and all
donors remain read-only; root messageboard is append-only. Main is not merged
or pushed. Final SHA/tree, remote refs, important blob seals, resource and cleanup
receipts are recorded in
/tmp/maelstrom-select-hook-independent-closeout-oct24/ops/result.json.
No box is assigned; prior coordinator-reported bx_qa9ex5bu STOPPED is historical,
bx_69aem736 untouched and unqueried, expiry unknown. Lifecycle/shutdown remain
coordinator-owned. Claude idle. Stop after publication.