Dependency refresh (wasmtime 48, polymorph-test 0.3.1, node-datachannel 0.33) + conformance node_modules fix; 0.6.1 - #170
Merged
Merged
Conversation
…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.
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.
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 updatefor 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:
AllowedNetworkUsesnow derivesDefault; 47 hadudp: true, tcp: true).inherit_network()only lifts the address check, so the composed conformance target failed every peer-connection withcreate UDP socket: AccessDenied. The driver now setsallow_udp(true)for composed stores. OnlyWasiCtxBuildersite in the repo.WasiHttpCtxView/WasiHttpView/default_hooksfrom the crate root.{param}route syntax.Held back:
libwebrtcpinned=0.3.42— 0.3.43+'swebrtc-sysbuild 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 barecargo updatewould 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
Eventcleanup and 0.24.2 reworks ICE consent freshness — the fallback backend, not the default; suite green),@jsr/polymorph__test0.3.1 (matches the cargo rev;check-runner-js-pin.shpasses), 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 conformancenode_modules clobbernpm ci(browser driver prep) empties thenode_modulesthe Deno install populated;justrunspolyengine-depsonce per invocation so it never came back, and every polyengine-deno interop direction trapped. CI was immune (onejustprocess per recipe). The npm recipe now re-runs the Deno install right afternpm ci. Verified by running the whole suite as one invocation withnode_modulesremoved first.3.
@polymorph/webrtc-datachannels0.6.1API and
@polyengine/protocolconstraint unchanged → patch under the caret-honest rule.jsr-publishto be dispatched after merge.Verification
just gha::rust-checks;just polyengine-check;examples::test-webrtc-composed;examples::test-echo-remote-composed; fulljust conformancein 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.