account for non self proof width in wrap domain selection - #2888
Open
Trivo25 wants to merge 19 commits into
Open
account for non self proof width in wrap domain selection#2888Trivo25 wants to merge 19 commits into
Trivo25 wants to merge 19 commits into
Conversation
Trivo25
marked this pull request as ready for review
June 16, 2026 11:40
The manual release workflow runs npm ci before the prerelease @o1js/native packages exist on npm. The branch version bump updated package.json but left the lockfile pointing at the previous native package, so npm rejected the clean install during Release-Native. Constraint: Native packages are built and published after the Release-Native npm ci bootstrap Rejected: Publish using the existing native package lock entries | npm ci requires the lockfile root optional dependency to match package.json Confidence: high Scope-risk: narrow Tested: node scripts/check-version-sync.mjs Tested: clean temp npm ci --dry-run --ignore-scripts Not-tested: Full GitHub Manual Release rerun
npm 11 validates optional dependency package entries before the native release job can build and publish the prerelease @o1js/native packages. Keeping version-only lock entries for the prerelease native meta and platform packages satisfies npm ci without carrying stale resolved tarball metadata from the previous release. Constraint: Release-Native runs npm ci before @o1js/native prerelease packages exist on npm Rejected: Remove native lock entries entirely | npm 11 reports Missing: @o1js/native@ from lock file Confidence: high Scope-risk: narrow Tested: node scripts/check-version-sync.mjs Tested: npx npm@11 ci --dry-run --ignore-scripts in clean temp metadata copy Tested: npx npm@11 ci --ignore-scripts in clean temp metadata copy Not-tested: Full GitHub Manual Release rerun
The release version sync script updated package.json but left package-lock.json to npm behavior, which allowed prerelease native package drift to reach Manual Release. The sync script now rewrites the native lockfile graph for the root optional dependency, @o1js/native, and the four platform packages. The check script validates the same graph so release CI fails in Validate instead of later in npm ci. Constraint: Release-Native runs npm ci under npm 11 before prerelease native packages exist on npm Rejected: Keep manually editing package-lock.json per release | easy to miss and only discovered after starting the native matrix Confidence: high Scope-risk: narrow Tested: npm run sync:native-version Tested: npm run check:version-sync Tested: temp broken lockfile is rejected by check-version-sync, repaired by sync-native-version, and accepted by npx npm@11 ci --dry-run --ignore-scripts Not-tested: Full GitHub Manual Release rerun
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
updates the default wrap domain choice to consider non self proof arguments local maxProofsVerified, avoiding too small wrap domains when compiling contracts that depend on recursively verified circuits
why?
the vk upgrade path recompiles contracts that depend on non self recursive circuits. o1js was choosing the wrap domain from the current methods proof count only, which can be too small when an input proof’s own circuit has a larger local proof width
MinaProtocol/mina#18944