Skip to content

Dependency refresh (wasmtime 48, polymorph-test 0.3.1, node-datachannel 0.33) + conformance node_modules fix; 0.6.1 - #170

Merged
lannbot merged 3 commits into
mainfrom
deps-update
Sep 7, 2026
Merged

Dependency refresh (wasmtime 48, polymorph-test 0.3.1, node-datachannel 0.33) + conformance node_modules fix; 0.6.1#170
lannbot merged 3 commits into
mainfrom
deps-update

Conversation

@lannbot

@lannbot lannbot commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

Three commits:

1. Dependency refresh

Rust: wasmtime/-wasi/-wasi-http 47 → 48, wit-bindgen 0.57/0.59 → 0.61, wasip3 0.7 → 0.8, axum 0.7 → 0.8, reqwest 0.12 → 0.13, base64 0.22 → 0.23, cargo update for the rest; polymorph-test → v0.3.1 (which is itself on wasmtime 48 / wit-bindgen 0.61, so they travel together); toolchain 1.98.1.

Source follow-through worth a reviewer's eye:

  • wasmtime-wasi 48 turned UDP/TCP off by default (AllowedNetworkUses now derives Default; 47 had udp: true, tcp: true). inherit_network() only lifts the address check, so the composed conformance target failed every peer-connection with create UDP socket: AccessDenied. The driver now sets allow_udp(true) for composed stores. Only WasiCtxBuilder site in the repo.
  • wasmtime-wasi-http 48: WasiHttpCtxView/WasiHttpView/default_hooks from the crate root.
  • axum 0.8: {param} route syntax.

Held back: libwebrtc pinned =0.3.42 — 0.3.43+'s webrtc-sys build script demands clang 21 for its bundled libc++ (CI image and stock distros are on 18–20). The pin replaces a caret range whose lock hold a bare cargo update would silently undo.

JS: node-datachannel 0.32.3 → 0.33.2 (libdatachannel 0.24.3), werift 0.22.2 → 0.24.4 (0.24.4 changes close-time Event cleanup and 0.24.2 reworks ICE consent freshness — the fallback backend, not the default; suite green), @jsr/polymorph__test 0.3.1 (matches the cargo rev; check-runner-js-pin.sh passes), playwright-core ^1.63. @polyengine/* pins unchanged.

Tooling: setup.sh pins (wasm-tools 1.258.0, just 1.58.0, nextest 0.9.143, wasmtime 48.0.1); actions checkout@v7, upload-artifact@v7 + download-artifact@v8 (release notes checked: compatible pair, node24), setup-node@v7; Deno 2.9.6.

2. just conformance node_modules clobber

npm ci (browser driver prep) empties the node_modules the Deno install populated; just runs polyengine-deps once per invocation so it never came back, and every polyengine-deno interop direction trapped. CI was immune (one just process per recipe). The npm recipe now re-runs the Deno install right after npm ci. Verified by running the whole suite as one invocation with node_modules removed first.

3. @polymorph/webrtc-datachannels 0.6.1

API and @polyengine/protocol constraint unchanged → patch under the caret-honest rule. jsr-publish to be dispatched after merge.

Verification

just gha::rust-checks; just polyengine-check; examples::test-webrtc-composed; examples::test-echo-remote-composed; full just conformance in a single invocation: 148 loopback + 156 interop results, 0 failing, both committed matrices byte-identical. Shadow lab left to CI (local binary is x86_64 on an arm64 host).

Automerge armed.

…3.1, and the rest

Rust: wasmtime / wasmtime-wasi / wasmtime-wasi-http 47 -> 48, wit-bindgen
0.57/0.59 -> 0.61, wasip3 0.7 -> 0.8, axum 0.7 -> 0.8, reqwest 0.12 ->
0.13, base64 0.22 -> 0.23, plus every compatible bump from `cargo update`.
polymorph-test moves to the v0.3.1 release (3631d4a1), which itself sits
on wasmtime 48 + wit-bindgen 0.61 — the two bumps travel together.
Toolchain 1.97.0 -> 1.98.1.

Source follow-through:
- wasmtime-wasi 48 defaults `AllowedNetworkUses` to all-off, where 47
  allowed UDP/TCP by default; `inherit_network()` only lifts the address
  check. The conformance driver's composed stores grant `allow_udp` so the
  in-guest provider can open its socket.
- wasmtime-wasi-http 48 exports `WasiHttpCtxView`/`WasiHttpView`/
  `default_hooks` from the crate root (no public `p3` module).
- axum 0.8 path parameters are `{param}`, not `:param`.

Held back: libwebrtc stays at 0.3.42 with an exact pin — from 0.3.43 the
webrtc-sys build script requires clang 21 for its bundled libc++, which
neither the CI image nor a stock distro toolchain provides.

JS: node-datachannel 0.32.3 -> 0.33.2 (libdatachannel 0.24.3), werift
0.22.2 -> 0.24.4, @jsr/polymorph__test 0.2.1 -> 0.3.1 (matching the cargo
rev), playwright-core ^1.63. The @polyengine/* pins are unchanged.

Tooling: setup.sh pins wasm-tools 1.258.0, just 1.58.0, cargo-nextest
0.9.143, wasmtime 48.0.1; workflows on actions/checkout@v7,
upload-artifact@v7 + download-artifact@v8, setup-node@v7, Deno 2.9.6.

Verified: just gha::rust-checks, just polyengine-check,
examples::test-webrtc-composed, examples::test-echo-remote-composed, and
the full `just conformance` (148 loopback + 156 interop results, 0
failing, both committed matrices unchanged).
The polyengine leg's Deno tree (`polyengine-deps`) and the browser
driver's npm tree share one node_modules, and `npm ci` empties the
directory before installing. Inside a single `just conformance`
invocation that wiped the Deno tree — and the node-datachannel addon —
after `polyengine-deps` had already run, and just runs each dependency at
most once per invocation, so nothing restored it: every polyengine-deno
interop direction then trapped on "PeerConnection constructed before the
RTCPeerConnection backend resolved". CI never saw it because gha::_step
runs each recipe as its own just process.

`_polyengine-browser-prepared` now runs the Deno install itself right
after `npm ci`, only when `npm ci` actually ran.
The host module API and its @polyengine/protocol constraint (^0.3.1) are
unchanged, so this is a patch under the caret-honest scheme; it carries
the dependency refresh (node-datachannel 0.33.2 on libdatachannel 0.24.3,
werift 0.24.4) and the rtc 0.21.0-rc.2 unwind on the Rust side.
@lannbot
lannbot enabled auto-merge September 7, 2026 00:40
@lannbot
lannbot merged commit d845b79 into main Sep 7, 2026
6 checks passed
@lannbot
lannbot deleted the deps-update branch September 7, 2026 01:01
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