Skip to content

account for non self proof width in wrap domain selection - #2888

Open
Trivo25 wants to merge 19 commits into
develop-3.0from
florian/mesa-final-rc
Open

account for non self proof width in wrap domain selection#2888
Trivo25 wants to merge 19 commits into
develop-3.0from
florian/mesa-final-rc

Conversation

@Trivo25

@Trivo25 Trivo25 commented Jun 16, 2026

Copy link
Copy Markdown
Member

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

@Trivo25
Trivo25 marked this pull request as ready for review June 16, 2026 11:40
Trivo25 and others added 16 commits June 16, 2026 20:12
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
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.

1 participant