Skip to content

chore: 2026 Q4 stack upgrade - #2550

Draft
lionellbriones wants to merge 6 commits into
masterfrom
feat/embed-597-stack-upgrade
Draft

lionellbriones wants to merge 6 commits into
masterfrom
feat/embed-597-stack-upgrade

Conversation

@lionellbriones

@lionellbriones lionellbriones commented Nov 12, 2026 •

Copy link
Copy Markdown
Contributor

Motivation and Context

Apply the 2026 Q4 stack policy to @web3auth/modal and @web3auth/no-modal. Engines are Node >=24.22.0 and npm >=12. Both packages publish the Vite+ build from dist/lib.esm and dist/lib.cjs, with types at dist/lib.cjs/index.d.ts.

This stays a draft. @web3auth/auth and the controllers stack releases are not published yet, and lint, typecheck, and the browser tests do not pass on this branch.

Jira Link

Description

Majors taken: @toruslabs/http-helpers 10, eccrypto 8, loglevel-sentry 10, metadata-helpers 9, session-manager 6, secure-pub-sub 5, @toruslabs/torus-scripts 9.0.1, @toruslabs/config 5, TypeScript 7.0.2, @types/node 26, vite-plus 1.5.0.

Majors not taken:

  • @web3auth/auth stays ^11.8.1 until EMBED-595 publishes a stack release.
  • @toruslabs/base-controllers and @toruslabs/ethereum-controllers stay on 9 until EMBED-596.
  • fetch-node-details is not a direct dependency.
  • @x402/evm, @x402/fetch, and @x402/svm stay on 2.28 because 2.29 requires @solana/kit 8.

The packages no longer declare an @babel/runtime peer.

Scanners: .github/workflows/security-code-scanner.yml runs the MetaMask scanner at becb242930b3cc271c26da0280050db9c157e291 (v2.1.1). CodeQL stays on the default setup. KICS and Trivy are not added. The Wiz sensor stays. The Vue demo deploy still uses AWS access keys, not a role.

npm audit after the dependency cleanup: 45 issues, 0 critical, 8 high, 20 moderate, 17 low. The 8 high issues are @x402/* (held at 2.28) and @base-org/account with @coinbase/cdp-sdk, zod, and abitype. Demo lockfile alerts were left open on purpose.

release-pr.yml can open a pull request only after the repository setting that lets GitHub Actions create pull requests is turned on. This token cannot change that setting. Publish stays manual from master after that release pull request merges. release-packages is not run.

How has this been tested?

Checked on Node 24.22.1 (npm 12.2.0) and Node 26.13.0 (npm 12.2.0), each from npm ci.

  • Clean install: exit 0 on both. npm warns that install scripts for vue-demi, protobufjs, tiny-secp256k1, and fsevents are blocked. No allowScripts field was added.
  • harden check: exit 1 on both. Only n_scripts fails. Moderate is 3 of 3.
  • npm run lint: exit 2 on both. Formatting fails, then demo/vue-app-new/eslint.config.mjs:5 has a syntax error that is already on master. Not formatted in this pull request.
  • npm run build: exit 0 on both.
  • Typecheck: 304 errors in packages/no-modal and 125 in packages/modal on both Node versions. npm run typecheck stops at no-modal. The fixes are on draft pull request 2551 and are not merged here.
  • npm run test: exit 1 on both. @web3auth/modal fails to load test/loginModal.ui.test.tsx and test/modalManager.test.ts in Chrome, Firefox, and Safari because Buffer is undefined (buffer is externalized for the browser). vp run reports 0 of 2 packages successful. The no-modal suite does not print a finished summary.

Packed tarballs from npm pack --workspaces --dry-run include dist/lib.cjs and dist/lib.esm for both packages, including dist/lib.cjs/index.js, dist/lib.esm/index.js, and dist/lib.cjs/index.d.ts. require of the CommonJS entry and import of the ESM entry succeed for ., ./react, and ./vue on both packages. Loading the ESM file by path prints Node's MODULE_TYPELESS_PACKAGE_JSON warning because these packages do not set "type": "module". The modal ESM bundle has .w3a-parent-container, no @layer, the injected style element, and "use client".

demo/vue-app-new: npm ci exits 0. npm run build exits 2 during vue-tsc (28 errors, including Ref values used as plain values and baseAccountConnector used as a value). Vite did not run. demo/nextjs-ssr-app: npm ci fails because package-lock.json is out of sync (viem@2.57.19 and related packages are missing). next build did not run.

Not done: the Create React App demo was not migrated, and the other Vite demos were not rebuilt.

Screenshots (if appropriate)

None. This change does not touch UI.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)

Checklist

  • My code follows the code style of this project. (run lint)
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have added tests to cover my changes.
  • All new and existing tests passed.

Product review stays on package source, tests, and demos, and Dependabot waits three days before opening npm and Actions updates.

Co-authored-by: Cursor <cursoragent@cursor.com>
@vercel

vercel Bot commented Nov 12, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
web3auth-web Error Error Nov 12, 2026 5:35pm UTC

Request Review

Auth and the controller packages stay on their current releases until those stack upgrades publish.

Co-authored-by: Cursor <cursoragent@cursor.com>
@socket-security

socket-security Bot commented Nov 12, 2026 •

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Updated@​tailwindcss/​oxide-linux-x64-gnu@​4.3.3 ⏵ 4.3.51001003998100
Updated@​rollup/​rollup-linux-x64-gnu@​4.63.5 ⏵ 4.68.11001004099100
Updated@​metamask/​connect-solana@​2.0.0 ⏵ 2.1.174 -2210010097 +850
Added@​toruslabs/​oxlint-config-node@​1.0.0661005691100
Updated@​toruslabs/​config@​4.0.1 ⏵ 5.0.071 +110060 -284 -6100
Added@​toruslabs/​oxlint-config-react@​1.0.0691006191100
Added@​toruslabs/​oxlint-config-vue@​1.0.0701006391100
Added@​toruslabs/​oxlint-config-typescript@​1.1.0741006592100
Added@​solana/​wallet-standard-features@​1.5.01001007083100
Added@​wallet-standard/​app@​1.1.11001007183100
Updated@​walletconnect/​types@​2.23.9 ⏵ 2.26.0100 +110071 +197 +480
Added@​wallet-standard/​base@​1.1.11001007282100
Added@​wallet-standard/​features@​1.1.11001007283100
Updated@​walletconnect/​utils@​2.23.9 ⏵ 2.26.098 +110072 +197 +480
Added@​changesets/​cli@​3.0.3991007491100
Added@​types/​react-dom@​19.3.01001007583100
Updated@​toruslabs/​torus-scripts@​8.1.0 ⏵ 9.0.176 +310093 -793 +2100
Added@​wagmi/​vue@​0.5.34931007697100
Updated@​walletconnect/​sign-client@​2.23.9 ⏵ 2.26.0100 +110077 +197 +480
Added@​voidzero-dev/​vite-plus-core@​1.5.0981007798100
Added@​lavamoat/​harden@​0.8.17810010095100
Updated@​types/​react@​19.2.16 ⏵ 19.3.0100 +110079 +188 -4100
Updated@​vitest/​coverage-istanbul@​4.1.8 ⏵ 5.1.09910079 -298 -1100
Updated@​babel/​runtime@​7.29.7 ⏵ 7.29.131001007997100
Updatedwagmi@​3.6.16 ⏵ 3.7.11100 +110079 +197 +2100
Updatedvitest@​4.1.8 ⏵ 5.1.098100 +279 +198100
Updated@​wagmi/​core@​3.5.0 ⏵ 3.6.91001008097 +3100
Updated@​segment/​analytics-next@​1.84.0 ⏵ 1.84.393 +13100100 +194 +780
Updatedplaywright@​1.60.0 ⏵ 1.65.0100 +1100100 +19980
Updated@​types/​node@​24.12.4 ⏵ 26.6.6100 +110081 +194100
Added@​toruslabs/​http-helpers@​10.0.0991008190100
Addedpostcss@​8.5.321001008294100
See 33 more rows in the dashboard

View full report

Co-authored-by: Cursor <cursoragent@cursor.com>
- ci.yml: validate on Node 24.22.0 and 26 (harden, lint, build, typecheck, tests, pack dry run), changeset status on pull requests, and a master-only deploy job that needs validate. Deploy actions are pinned to commit SHAs.
- release-pr.yml: workflow_dispatch changesets release pull request on master. It does not publish.
- security-code-scanner.yml: MetaMask security code scanner at v2.1.1.

Co-authored-by: Cursor <cursoragent@cursor.com>
@github-advanced-security

Copy link
Copy Markdown

You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool.

What Enabling Code Scanning Means:

  • The 'Security' tab will display more code scanning analysis results (e.g., for the default branch).
  • Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results.
  • You will be able to see the analysis results for the pull request's branch on this overview once the scans have completed and the checks have passed.

For more information about GitHub Code Scanning, check out the documentation.

Comment thread .github/workflows/ci.yml
if: github.ref == 'refs/heads/master'
uses: jakejarvis/s3-sync-action@master
- name: Sync vue app new to S3
uses: jakejarvis/s3-sync-action@7ed8b112447abb09f1da74f3466e4194fc7a6311 # master
- Raise direct ranges in the root and both packages to the newest same-major release older than the 3-day window, including peer floors.
- Hold @x402/evm, @x402/fetch, and @x402/svm at 2.28, the last line that accepts @solana/kit 6.
- Refresh package-lock.json on npm 12. Apply in-range audit fixes to transitive packages. Remaining alerts are recorded in the PR.
- Annotate defaultWagmiConfig as Config in the React and Vue wagmi constants so the declaration build passes with the newer wagmi types.

Co-authored-by: Cursor <cursoragent@cursor.com>
- Drop root devDependencies no source or script uses: @solana/kit, cross-env, dotenv, ox, vite, and vitest. vite-plus already pins the vite and vitest versions.
- Drop the Linux optionalDependencies block. The packages that need those binaries still declare them.
- Drop modal dependencies the Vite+ build no longer loads: copy-to-clipboard, the Rollup, Babel, and webpack loaders, live-server, and the duplicate vite and vitest entries.
- Drop the @babel/runtime peer from both packages and note it in the changeset.
- Delete the Rollup configs and packages/modal/babel.config.js.
- Remove the react and react-dom overrides. The lockfile resolves 19.3.1 without them.

Co-authored-by: Cursor <cursoragent@cursor.com>

This branch had an error being deployed

1 failed deployment
Preview — eeb68a56 Deployed Nov 12, 2026 by vercel[bot]
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.

2 participants