Problem
zig build benchmark-comparison-test fails under the repository's zig-js home-tool backend because tools/algorithmic-growth.ts --self-test exhausts the evaluator's default step budget after its accepted-artifact phase.
This reproduces locally in isolation in about 50 seconds, so it is deterministic validation work rather than hosted machine speed. The self-test repeatedly rebuilds and revalidates the same complete nested artifacts: successful construction, explicit validation, default validation, and render() each traverse the whole input; every legacy version repeats build + validate + validating render. The later mutation checks also place the changed row after unchanged rows, paying validation work that cannot affect the asserted failure.
This is separate from #933's human-blocked policy choice for the engine's default step budget. The validator should fit the current supported host by removing redundant traversals while preserving every schema, compatibility, report-byte, and fail-closed assertion.
Definition of done
- The algorithmic-growth self-test completes through the zig-js
home-toolbackend at the existing default evaluator budget. - Successful artifacts are not rebuilt or revalidated solely to exercise formatting; formatting has a validated internal boundary and public
render()remains fail-closed. - Default v4 schema pairing, legacy v1-v3 construction/report compatibility, the checked historical report, zero-allocation replay, and every mutation failure remain covered.
zig build benchmark-comparison-testpasses without increasing or bypassing the engine step budget.- Direct JSC and zig-js Home self-tests agree.