Skip to content

Tracking PR for v0.22.0 release#2702

Draft
bobbinth wants to merge 69 commits intomainfrom
next
Draft

Tracking PR for v0.22.0 release#2702
bobbinth wants to merge 69 commits intomainfrom
next

Conversation

@bobbinth
Copy link
Contributor

This is a tracking PR for v0.22.0 release.

bobbinth and others added 30 commits February 14, 2026 16:14
The publish and dry-run workflows have been failing because cargo-msrv v0.18.4
depends on AWS SDK crates that require Rust 1.91 or later. The repository was
pinned to Rust 1.90 via rust-toolchain.toml, which caused cargo install to fail
with:

    rustc 1.90.0 is not supported by the following packages:
        [email protected] requires rustc 1.91
        [email protected] requires rustc 1.91
        ...

Updating to Rust 1.91 resolves this. Note: rust-toolchain.toml specifies the
version used by CI workflows, not the package MSRV (which is set separately in
Cargo.toml files).
…urn a Result

Note: this is reverted in the next commit.
… now return a Result"

This reverts the previous commit, as converting from `Result` to `ControlFlow` in stable Rust
is currently clunky, and the `result_to_control_flow()` method decreases readability. The
previous is explicitly reverted here as a form of documentation - to remember why the Processor
API is designed as it is.
* doc: update docs, including uniformizing chiplets' bus messages, both docs and code

* address comments

---------

Co-authored-by: Bobbin Threadbare <[email protected]>
Co-authored-by: Philippe Laferrière <[email protected]>
* refactor(processor): consolidate error variants

* Update CHANGELOG.md

Entries need to be under 0.22 now

---------

Co-authored-by: Philippe Laferrière <[email protected]>
…-exec

Decorator execution is now immutable
Remove tests that check for multiple writes in same clock cycle
… is called per clock cycle (except start/finalize clock cycle)
plafer and others added 30 commits March 4, 2026 12:07
Operation now only encodes basic block operations
Rationale: prevent changelog checks from running on PRs targeting non-release branches, reducing unnecessary failures.
`build_trace()` no longer assumes valid user input
* ci: add one-shot workflow to redirect gh-pages to docs.miden.xyz

* ci: drop 404.html catch-all, add docs placeholder

---------

Co-authored-by: Philippe Laferrière <[email protected]>
…pand fuzz/tests (#2777)

* Add core deserializer fuzz targets and seeds

* fix: add bounds checks to deserialization to prevent capacity overflow

Use read_many_iter where possible, and add explicit max_alloc checks
before Vec::with_capacity for types not implementing Deserializable.

This hardens deserialization against malicious inputs that claim huge
lengths to trigger capacity overflow panics.

* docs: clarify why manual bounds checks are needed

Improve comments to explain that manual max_alloc checks are required
because read_string and DebugTypeIdx use local helpers rather than the
Deserializable trait, so read_many_iter cannot be used.

* test: add Vec and Option fuzzing to advice_inputs and stack_io targets

For consistency with other fuzz targets, also test collection type
deserialization paths.

* test: cover debug info bounds checks

* fuzz: add library/package deserialization targets

* test: harden and cover deserialization budgets

* fix: enforce nested type depth in function types

* test: cover type nesting boundaries

* Add budgeted deserialization tests for execution proofs

* Enforce budget in basic block batch decoding

* Clarify batch budget bounds in basic block decoding

* Use serde helpers for debug info and deps
Fix minor grammar and wording issues in README.md.

Changes:
- "unrelease version" -> "unreleased version"
- removed duplicated word "ensure"
- improved sentence readability in the concurrent proof generation section
- fixed subject-verb agreement ("provide" -> "provides")

Documentation-only change. No functional behavior is affected.

Co-authored-by: Philippe Laferrière <[email protected]>
…2792)

* Add recursion guards for assembly inputs

* Add recursion guard tests

* Remove TODO recursion notes

* changelog: add recursion guard entry
* Preserve dyn callness during mast remaps

* changelog: note dyn callness preservation
* Apply code quality fixes and tests

- simplify package section deserialization via Vec::read_from
- use MastForest register_node_decorators directly in LoopNodeBuilder
- keep non-mergeable basic blocks standalone; add/strengthen test
- fix stack_write_word debug bound and add max-index test
- remove redundant indptr prefix/bounds checks in batch validation
- rename trace buffer fields to *cols for clarity
- update Ext2Mul polynomial comment

* Tidy merge diagnostics and word sizing
…s the permutation state (audit issue 54) (#2801)

Co-authored-by: Bobbin Threadbare <[email protected]>
…s, push slices) (#2803)

* Fix lexer invalid-token spans

* Validate repeat counts and document limits

* Enforce constant range in folding and eval

* Implement field division in constant folding

* Validate push word slice indices

* chore: CHANGELOG

* Use Visit for repeat count verification
* chore(processor): add failing test for cryptostream bus messages missing

* chore(processor): add cryptostream bus messages
* chore(processor): failing test for stack buffer out of bounds access

* chore(processor): Processor stack access methods guaranteed to be only accessing top 16 elements
…ies (#2804)

* Reject empty kernel libraries

* Harden path handling and tests

* Resolve error message constant aliases

* Fix enum variant constants and discriminant handling

* Harden syscall validation for kernel digests

* Add changelog entry for syscall validation fixes

* Simplify enum repr integer checks
…ws (#2809)

* chore(processor): build_trace() makes sure that it doesn't exceed trace length

* Fix core procedure stack contracts and add repro tests

Strengthen AEAD stack-contract test coverage

Fix AEAD stack-contract test to verify caller inputs

Preserve caller stack in SHA512 and Keccak wrappers

test(aead): strengthen encrypt stack contract sentinel coverage

Fix AEAD stack cleanup and strengthen stack-contract tests

* Enforce trace length limits with HALT-aware overflow checks

* Add trace-length limit coverage for parallel trace builder

Harden parallel trace max-length branch tests

Fix parallel trace max-length checks and default-fragment boundary test

Guard parallel trace allocation and add oversized-fragment regression test

processor: make trace allocation guard errors explicit

Add ExecutionError::TraceAllocationLenExceeded and use it for the fragment pre-allocation guard in parallel trace building. Strengthen the regression test to verify the baseline path does not hit the allocation guard and that oversized fragment sizing fails through the new allocation-specific error path.

* Document hard trace cutoff and TraceLenExceeded semantics

---------

Co-authored-by: François Garillot <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants