Skip to content

chore: refresh all dependencies and fix wasm32-wasi build#134

Merged
Brooooooklyn merged 2 commits into
mainfrom
chore/refresh-all-deps
Jul 13, 2026
Merged

chore: refresh all dependencies and fix wasm32-wasi build#134
Brooooooklyn merged 2 commits into
mainfrom
chore/refresh-all-deps

Conversation

@Brooooooklyn

Copy link
Copy Markdown
Member

Summary

Refreshes npm, Cargo and GitHub Actions dependencies, and fixes the WASI CI build that has been failing on every open PR.

Root cause of the WASI failure

@napi-rs/cli 3.1.3  ──emits──►  --export=emnapi_thread_crashed
                                          │
emnapi 1.4.5 (pinned) ──► libemnapi-basic-mt.a  ✗ symbol NOT defined
                                          │
                                    wasm-ld: error → build fails

The CLI told wasm-ld to export emnapi_thread_crashed, but the pinned emnapi 1.4.5 static lib never defined it. Bumping the napi-rs toolchain (@napi-rs/cli 3.1.3 → 3.7.3, emnapi 1.4.5 → 1.11.2, which defines the symbol) resolves it. The newer CLI also require()s @emnapi/core at build time, so @emnapi/core + @emnapi/runtime are now declared as devDependencies.

Changes

npm devDependencies

  • @napi-rs/cli ^3.1.3^3.7.3
  • @napi-rs/lzma ^1.4.4^1.4.5
  • @napi-rs/wasm-runtime ^1.0.3^1.1.6
  • add @emnapi/core ^1.11.2, @emnapi/runtime ^1.11.2 (required by the CLI wasi build)
  • @types/node ^24^26, @types/tar ^7.0.0^7.0.87
  • ava ^8.0.0^8.0.1, chalk ^5.5.0^5.6.2
  • lint-staged ^17.0.0^17.0.8, npm-run-all2 ^8.0.4^9.0.2
  • oxlint ^1.11.1^1.73.0, prettier ^3.6.2^3.9.5
  • tar ^7.4.3^7.5.20 (security), tinybench ^6.0.0^6.0.2
  • typescript ^6.0.0^6.0.3stays on 6.x on purpose: TypeScript 7 (native/Go port) breaks Yarn's built-in typescript compat patch (ENOENT … lib/_tsc.js), which would break yarn install on every CI job. tsc is not in this repo's build/lint/test path.

GitHub Actions

  • actions/checkout v6 → v7
  • actions/cache v5 → v6
  • cross-platform-actions/action v1.1.0 → v1.3.0
  • wasi-sdk 27 → 33

Cargo — already floats to latest via bare-major ranges (napi 3.10.5, tar 0.4.46, flate2 1.1.9, …) and no Cargo.lock is tracked, so nothing to bump in the manifest.

Generated filesindex.js, tar.wasi.cjs, tar.wasi-browser.js, wasi-worker-browser.mjs regenerated by @napi-rs/cli 3.7.3 (native-binding version checks now read 1.1.0; tar.wasi.cjs uses require.resolve() for the sub-package wasm).

Verification (local)

Check Result
wasm32-wasip1-threads build (wasi-sdk 32 and 33) ✅ links
NAPI_RS_FORCE_WASI=1 yarn test ✅ 22/22
native build + yarn test ✅ 22/22
cargo fmt --check / cargo clippy ✅ clean
yarn lint (oxlint) ✅ clean

Note (not changed here): the lint-staged config still references eslint -c .eslintrc.yml, but the repo migrated to oxlint and neither eslint nor that config exists — the husky pre-commit hook is effectively a no-op/failure. Worth a follow-up.

🤖 Generated with Claude Code

Brooooooklyn and others added 2 commits July 13, 2026 23:24
Refresh npm, Cargo (via floating ranges) and GitHub Actions versions,
and fix the WASI CI build which was failing on every PR with:

    wasm-ld: error: symbol exported via --export not found: emnapi_thread_crashed

Root cause: @napi-rs/cli emitted `--export=emnapi_thread_crashed` while the
pinned emnapi 1.4.5 static lib did not define that symbol. Bumping the napi-rs
toolchain (cli 3.1.3 -> 3.7.3, emnapi 1.4.5 -> 1.11.2) restores the symbol.

npm devDependencies:
- @napi-rs/cli ^3.1.3 -> ^3.7.3
- @napi-rs/lzma ^1.4.4 -> ^1.4.5
- @napi-rs/wasm-runtime ^1.0.3 -> ^1.1.6
- add @emnapi/core ^1.11.2 and @emnapi/runtime ^1.11.2 (now required by the CLI wasi build)
- @types/node ^24 -> ^26, @types/tar ^7.0.0 -> ^7.0.87
- ava ^8.0.0 -> ^8.0.1, chalk ^5.5.0 -> ^5.6.2
- lint-staged ^17.0.0 -> ^17.0.8, npm-run-all2 ^8.0.4 -> ^9.0.2
- oxlint ^1.11.1 -> ^1.73.0, prettier ^3.6.2 -> ^3.9.5
- tar ^7.4.3 -> ^7.5.20 (security), tinybench ^6.0.0 -> ^6.0.2
- typescript ^6.0.0 -> ^6.0.3 (staying on 6.x: TS7 native port breaks yarn's builtin tsserver patch)

GitHub Actions:
- actions/checkout v6 -> v7
- actions/cache v5 -> v6
- cross-platform-actions/action v1.1.0 -> v1.3.0
- wasi-sdk 27 -> 33

index.js / tar.wasi*.js / wasi-worker-browser.mjs regenerated by @napi-rs/cli 3.7.3.

Cargo deps already float to latest (napi 3.10.5, tar 0.4.46, etc.); no Cargo.lock is tracked.

Verified locally: wasm32-wasip1-threads build links and all 22 ava tests pass
under NAPI_RS_FORCE_WASI=1 (with both wasi-sdk 32 and 33), native build + tests
pass, cargo fmt/clippy and oxlint clean.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The build matrix already installs node-version 24 (and the lint/publish
jobs run on 24); only the job display name still said node@22. Align the
label so build and release both advertise Node.js 24.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 62151b540d

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread index.js
Comment thread index.js
@Brooooooklyn
Brooooooklyn merged commit 3e2a740 into main Jul 13, 2026
43 checks passed
@Brooooooklyn
Brooooooklyn deleted the chore/refresh-all-deps branch July 13, 2026 15:44
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