Skip to content

v0.12.1

Choose a tag to compare

@iamalwaysuncomfortable iamalwaysuncomfortable released this 13 Oct 20:09
· 16 commits to mainnet since this release
6fca0da

What's Changed

Patch release. No consensus or snarkVM changes; snarkVM stays at v4.11.0.

Fixes

  • Install the panic hook at module start for all contexts (#1418). console_error_panic_hook was only installed inside initThreadPool, so consumers that never start the thread pool (most notably MV3 extension service workers, which cannot spawn workers) saw every Rust panic as a bare RuntimeError: unreachable with the panicked at … message lost. A #[wasm_bindgen(start)] function now installs the hook at module instantiation, so every context gets readable panics on console.error. The call in initThreadPool stays; set_once is idempotent.

WASM build changes (#1418)

  • Panic detail is kept in release builds. The Rollup Rust plugin's default -Z location-detail=none and -Z fmt-debug=none flags are no longer applied, so a panic reads panicked at <file>:N:M: … Err value: "<detail>" instead of <redacted>:0:0, and {:?} output works everywhere. Cost: about +0.22 MB per network (~1.1%). LTO, codegen-units=1, panic=abort, strip, build-std and the wasm-opt arguments are unchanged.
  • Absolute source paths are remapped. --remap-path-prefix rewrites CARGO_HOME → cargo/, RUSTUP_HOME → rustup/ and the build directory → ./, so published binaries contain no builder home directory and are reproducible across machines.
  • Toolchain note: toolchains newer than nightly-2025-10-04 make the plugin enable -Z panic-immediate-abort, which would silently remove panic strings again. See the comment in wasm/build.js before bumping rust-toolchain.toml.

E2E

  • The testnet, mainnet and dynamic e2e scripts now verify at networkClient.getLatestHeight() instead of a fixed height of 9_000_000 (#1418). Mainnet activated consensus V21 (Varuna V3) at block 22,437,000 on 2026-10-01, so proving at the live height but verifying at the fixed height selected Varuna V2 and failed.

Documentation

  • Introduce Veil and clarify SDK positioning (#1430). The repository and package READMEs now describe the SDK as low-level Aleo protocol utilities and JavaScript/TypeScript helpers, and point developers who want viem-like APIs to the Veil packages, with a package table covering browser and server runtimes, Foundry-like test harnesses, and bridging assets into and out of Aleo.

Dependencies

  • Bump next from 15.5.24 to 15.5.27 (#1420). Affects the create-leo-app Next.js template only.
  • Lockfile-only bumps of transitive dev and website dependencies; no published package is affected: brace-expansion 1.1.18 → 1.1.21 (#1417), markdown-it 14.2.0 → 14.3.2 (#1416), fast-uri 3.1.7 → 3.1.8 (#1415), proxy-addr 2.0.7 → 2.0.8 (#1421), shell-quote 1.10.0 → 1.12.0 (#1422), source-map-js 1.2.1 → 1.2.2 (#1423), compression 1.8.1 → 1.8.2 (#1425), handlebars 4.7.9 → 4.7.10 (#1426), postcss-selector-parser 7.1.5 → 7.1.6 (#1427).

Release

  • Bump package versions to 0.12.1 (#1428). @provablehq/wasm, @provablehq/sdk and create-leo-app move to 0.12.1, along with every internal ^0.12.0 dependency range.

Known issues

  • wasm-opt still fails on every release build, so the published wasm remains unoptimized (#1419). This predates this release and will be fixed separately.

Full Changelog: v0.12.0...v0.12.1