Severity: low — "malformed plan fails loudly" contract hygiene.
-
streamTableInstance/futureTableInstance (exec/executor.ts:1021-1024)
default out-of-range indices to component instance 0 via ?? 0, while
the sibling streamElem accessor throws a typed PlanError
(:1013-1020). Same class: srcTable ?? 0 / dstTable ?? 0 in
stream_builtins.ts:862-864. Make them throw; add
streamTables/futureTables to the loader's required-array list for
formatVersion 2 (plan/loader.ts:116-131 currently omits them, and
elems(undefined) yields []).
-
Deep-schema gap: loader validates formatVersion, top-level arrays, and
the types table exhaustively, but initializers / trampolines /
canonicalOptions / coreDefs are not shape-checked — a plan with
{"op":"instantiate-module"} missing args dies as a raw TypeError
in runInitializers, not a PlanError. Loud but untyped; close the
gap to typed errors.
Found in the 2026-08-10 adversarial conformance review (runtime + translator vs component-model @ 73b7ad5 definitions.py; wasmtime-environ 47.0.3 treated as trusted).
Severity: low — "malformed plan fails loudly" contract hygiene.
streamTableInstance/futureTableInstance(exec/executor.ts:1021-1024)default out-of-range indices to component instance 0 via
?? 0, whilethe sibling
streamElemaccessor throws a typedPlanError(:1013-1020). Same class:
srcTable ?? 0/dstTable ?? 0instream_builtins.ts:862-864. Make them throw; add
streamTables/futureTablesto the loader's required-array list forformatVersion 2 (plan/loader.ts:116-131 currently omits them, and
elems(undefined)yields[]).Deep-schema gap: loader validates formatVersion, top-level arrays, and
the types table exhaustively, but initializers / trampolines /
canonicalOptions / coreDefs are not shape-checked — a plan with
{"op":"instantiate-module"}missingargsdies as a rawTypeErrorin
runInitializers, not aPlanError. Loud but untyped; close thegap to typed errors.
Found in the 2026-08-10 adversarial conformance review (runtime + translator vs component-model @ 73b7ad5 definitions.py; wasmtime-environ 47.0.3 treated as trusted).