- integer-payloads.md §7 states the order of a decode's checks: the set's
members, the set against the payload, every network planned with its
caps, what the networks give against the payload (per format), then each
stream symbol by symbol, a run-out before the value's range. §2 says a
section of one table per channel is read table by table, and field_range
covers a field of any section.
- The conditional decode plans h_s and g_s before it compares h_s's shape,
so a 2100 x 2100 latent whose g_s would pass the cap is too_large, not
geometry_mismatch.
- int_hyper_synth::plan (used by the conditional and splat decodes) and the
audio synthesis's plan work layer by layer in u64: parameter lengths and
shifts (model_mismatch), every side and buffer within 2^26 (too_large; a
size past u64 is past the cap), then an output left (model_mismatch). A
32-bit sink formed these sizes in usize and refused an overflow as a
malformed model where a 64-bit one said too_large. A convolution's padded
side is now capped too.
- The entropy tables of a set must have 3 to 4097 entries, as §2 says
(the reader took 2, and any length past 4097).
- Fixtures: wia1_order_table_before_length (parse),
wih1_order_caps_before_geometry and wih1_order_exhausted_before_value
(decode, against sets/entropy_median_max.json, the tiny tables with a
median of i64::MAX).
Tests: int_payload::tests::network_plans_refuse_alike_on_every_target,
int_payload::tests::entropy_tables_obey_the_table_length_rule, and the
fixtures through tests/int_payload.rs and both corpus verifiers.
Co-Authored-By: Claude Opus 5.5 <[email protected]>