From e6dcda0c363356ee8629b846425fa8ac8d1b4482 Mon Sep 17 00:00:00 2001 From: Lann Martin Date: Sat, 22 Aug 2026 19:53:38 -0400 Subject: [PATCH] polyengine 0.4.0 and the 0.4.0 sibling line; @polymorph/iroh 0.4.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bump host-polyengine's published caret family to the ^0.4.0 line — @polyengine/{runtime,translator,wasi} plus the sibling hosts @polymorph/{webcrypto,websocket,webrtc-datachannels}, all released today against polyengine v0.4.0 — and the relay-ws spike's exact pins to match. Upstream's one breaking change (A19 err-result brand-key rename) is internal to the engine; the stale WitError class name in exam-polyengine's comment becomes ComponentException (renamed upstream at 0.3.0). Package version 0.4.0: the published ranges move minor lines, a resolution-level break for consumers holding 0.3.0 pins. Gates: exam-polyengine (7/7 scenarios; one runtime 0.4.0, no raw URLs), just check, just ci — green. --- experiments/iroh-relay-ws/host/deno.json | 14 +++--- experiments/iroh-relay-ws/host/deno.lock | 60 ++++++++++++------------ host-polyengine/README.md | 4 +- host-polyengine/deno.json | 14 +++--- host-polyengine/deno.lock | 58 +++++++++++------------ justfile | 4 +- 6 files changed, 77 insertions(+), 77 deletions(-) diff --git a/experiments/iroh-relay-ws/host/deno.json b/experiments/iroh-relay-ws/host/deno.json index e628518..61e5c2e 100644 --- a/experiments/iroh-relay-ws/host/deno.json +++ b/experiments/iroh-relay-ws/host/deno.json @@ -9,13 +9,13 @@ "lib": ["dom", "dom.iterable", "dom.asynciterable", "deno.ns"] }, "imports": { - "@polyengine/runtime/embedder": "jsr:@polyengine/runtime@0.3.0/embedder", - "@polyengine/runtime/shim": "jsr:@polyengine/runtime@0.3.0/shim", - "@polyengine/translator": "jsr:@polyengine/translator@0.3.0", - "@polyengine/wasi": "jsr:@polyengine/wasi@0.3.0", - "@polyengine/wasi/io": "jsr:@polyengine/wasi@0.3.0/io", - "@polymorph/webrtc-datachannels": "jsr:@polymorph/webrtc-datachannels@0.3.0", - "@polymorph/websocket": "jsr:@polymorph/websocket@0.3.0" + "@polyengine/runtime/embedder": "jsr:@polyengine/runtime@0.4.0/embedder", + "@polyengine/runtime/shim": "jsr:@polyengine/runtime@0.4.0/shim", + "@polyengine/translator": "jsr:@polyengine/translator@0.4.0", + "@polyengine/wasi": "jsr:@polyengine/wasi@0.4.0", + "@polyengine/wasi/io": "jsr:@polyengine/wasi@0.4.0/io", + "@polymorph/webrtc-datachannels": "jsr:@polymorph/webrtc-datachannels@0.4.0", + "@polymorph/websocket": "jsr:@polymorph/websocket@0.4.0" }, "tasks": { "check": "deno check ." diff --git a/experiments/iroh-relay-ws/host/deno.lock b/experiments/iroh-relay-ws/host/deno.lock index 7677c73..a3aceaa 100644 --- a/experiments/iroh-relay-ws/host/deno.lock +++ b/experiments/iroh-relay-ws/host/deno.lock @@ -1,52 +1,52 @@ { "version": "5", "specifiers": { - "jsr:@polyengine/protocol@0.1": "0.1.0", - "jsr:@polyengine/runtime@0.3": "0.3.0", - "jsr:@polyengine/runtime@0.3.0": "0.3.0", - "jsr:@polyengine/translator@0.3.0": "0.3.0", - "jsr:@polyengine/wasi@0.3.0": "0.3.0", - "jsr:@polymorph/webrtc-datachannels@0.3.0": "0.3.0", - "jsr:@polymorph/websocket@0.3.0": "0.3.0", + "jsr:@polyengine/protocol@~0.2.1": "0.2.1", + "jsr:@polyengine/runtime@0.4": "0.4.0", + "jsr:@polyengine/runtime@0.4.0": "0.4.0", + "jsr:@polyengine/translator@0.4.0": "0.4.0", + "jsr:@polyengine/wasi@0.4.0": "0.4.0", + "jsr:@polymorph/webrtc-datachannels@0.4.0": "0.4.0", + "jsr:@polymorph/websocket@0.4.0": "0.4.0", "npm:node-datachannel@0.32.3": "0.32.3", "npm:playwright@^1.62.1": "1.62.1", "npm:werift@0.22.2": "0.22.2" }, "jsr": { - "@polyengine/protocol@0.1.0": { - "integrity": "0c97f34166f22ba55e7b084148df96e47aebe47cd9dd13930057759c9161bb1c" + "@polyengine/protocol@0.2.1": { + "integrity": "857bef84afedc414d47daedf203448f72e8803cf96301afb783b1ac975f3dcec" }, - "@polyengine/runtime@0.3.0": { - "integrity": "97d7648c104dd0f08b4d10e1ed0117ab0cb5243db68c139f1f3df25755ed4e60", + "@polyengine/runtime@0.4.0": { + "integrity": "d34a59d9df58bd48541483619d1987319d8aad4d2e0f3775890177ffb0878a5a", "dependencies": [ "jsr:@polyengine/protocol" ] }, - "@polyengine/translator@0.3.0": { - "integrity": "1d9fcd09d360850bc08927ed1cf8124d50a0fed09ed8c80f354a6d3aedfcad25", + "@polyengine/translator@0.4.0": { + "integrity": "227cf2f92a5b11bce6155742b2a42cf14a642a89d3867ffd1789d6e6e8d49fdc", "dependencies": [ - "jsr:@polyengine/runtime@0.3" + "jsr:@polyengine/runtime@0.4" ] }, - "@polyengine/wasi@0.3.0": { - "integrity": "991adfdd39f795f94bba91a523322b88d45ff42800669b5b472356676e3c97e7", + "@polyengine/wasi@0.4.0": { + "integrity": "b946443255e98cb6156237de90f051af7e483d2afdc0d721bdba64392cdbd896", "dependencies": [ "jsr:@polyengine/protocol", - "jsr:@polyengine/runtime@0.3" + "jsr:@polyengine/runtime@0.4" ] }, - "@polymorph/webrtc-datachannels@0.3.0": { - "integrity": "576bcbe4b1053e7d27ac9f8b2d2f61e979987a749b226cc09db328f837b32675", + "@polymorph/webrtc-datachannels@0.4.0": { + "integrity": "98022ce52d150532ac422faf86fba50d9ae55676d3cf803888bae79255ed35b1", "dependencies": [ - "jsr:@polyengine/runtime@0.3", + "jsr:@polyengine/runtime@0.4", "npm:node-datachannel", "npm:werift" ] }, - "@polymorph/websocket@0.3.0": { - "integrity": "23c92ed2ccda31ca66cad1ac9cbcf87473ccac7ae9a2b82fcb3486d5af97bbcd", + "@polymorph/websocket@0.4.0": { + "integrity": "f2b77720ca02ba95d405a51abd4ca930074a22188ce23a5731c0a6b40f9c4bf2", "dependencies": [ - "jsr:@polyengine/runtime@0.3" + "jsr:@polyengine/runtime@0.4" ] } }, @@ -341,8 +341,8 @@ "lodash@4.18.1": { "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==" }, - "mediabunny@1.55.1": { - "integrity": "sha512-JDdTEUOw9g6Ey8eWc2Ei63GmRGtGTJoE56SE7CHikwzS8i9xpsWcve4bEiUw47d4j49L3r7MXDFsH/5oZIhjBw==", + "mediabunny@1.55.2": { + "integrity": "sha512-EEx4O6qYddAdCyWPMZNDwI7uc5hewNHrPAf9jLcVhIbXoPsiqNQ+D9i1pfadmGkjN2V318jSrZljkpoziYm6Lg==", "dependencies": [ "@types/dom-mediacapture-transform", "@types/dom-webcodecs" @@ -624,11 +624,11 @@ }, "workspace": { "dependencies": [ - "jsr:@polyengine/runtime@0.3.0", - "jsr:@polyengine/translator@0.3.0", - "jsr:@polyengine/wasi@0.3.0", - "jsr:@polymorph/webrtc-datachannels@0.3.0", - "jsr:@polymorph/websocket@0.3.0" + "jsr:@polyengine/runtime@0.4.0", + "jsr:@polyengine/translator@0.4.0", + "jsr:@polyengine/wasi@0.4.0", + "jsr:@polymorph/webrtc-datachannels@0.4.0", + "jsr:@polymorph/websocket@0.4.0" ], "packageJson": { "dependencies": [ diff --git a/host-polyengine/README.md b/host-polyengine/README.md index 8abd97c..f91df20 100644 --- a/host-polyengine/README.md +++ b/host-polyengine/README.md @@ -54,8 +54,8 @@ guest's and is latent on every host. ## The pin polyengine and the sibling host modules arrive from JSR under caret -constraints on one minor line (`jsr:@polyengine/*@^0.3.0`, -`jsr:@polymorph/*@^0.3.0`); `deno.lock` pins the resolved versions and +constraints on one minor line (`jsr:@polyengine/*@^0.4.0`, +`jsr:@polymorph/*@^0.4.0`); `deno.lock` pins the resolved versions and carries integrity, enforced with `--frozen`. `@polyengine/translator` ships the translator wasm for the same commit as the runtime, so the plan-format coupling between runtime and translator is self-consistent diff --git a/host-polyengine/deno.json b/host-polyengine/deno.json index e059fda..2ea8526 100644 --- a/host-polyengine/deno.json +++ b/host-polyengine/deno.json @@ -1,6 +1,6 @@ { "name": "@polymorph/iroh", - "version": "0.3.0", + "version": "0.4.0", "license": "Apache-2.0", "exports": { ".": "./src/mod.ts" }, "//": "MODULE-IDENTITY CONSTRAINT: polyengine's wasi package and the sibling @polymorph host modules import @polyengine/runtime/embedder by bare specifier internally. Every dependency constraint here is a caret range on one minor line (published-package convention, polyengine's own precedent), so a consumer's resolver dedupes the whole family onto ONE @polyengine/runtime module instance and `instanceof ComponentException` holds across every boundary; deno.lock carries integrity, --frozen enforced in the repo. The exam gate (justfile: exam-polyengine) asserts the repo's deno.locks resolve to one @polyengine version and pipes the resolved graph through scripts/polyengine-identity-gate.ts (one runtime module, no raw URLs). src/endpoint_component.ts is GENERATED by `just build-components` (gitignored; the publish workflow regenerates it) — the packaged endpoint component, base64 in the module graph. minimumDependencyAge keeps Deno's default supply-chain gate for everything else while letting same-day @polyengine/@polymorph publishes resolve.", @@ -10,12 +10,12 @@ "exclude": ["jsr:@polyengine/*", "jsr:@polymorph/*"] }, "imports": { - "@polyengine/runtime/embedder": "jsr:@polyengine/runtime@^0.3.0/embedder", - "@polyengine/translator": "jsr:@polyengine/translator@^0.3.0", - "@polyengine/wasi": "jsr:@polyengine/wasi@^0.3.0", - "@polymorph/webcrypto": "jsr:@polymorph/webcrypto@^0.3.0", - "@polymorph/websocket": "jsr:@polymorph/websocket@^0.3.0", - "@polymorph/webrtc-datachannels": "jsr:@polymorph/webrtc-datachannels@^0.3.0" + "@polyengine/runtime/embedder": "jsr:@polyengine/runtime@^0.4.0/embedder", + "@polyengine/translator": "jsr:@polyengine/translator@^0.4.0", + "@polyengine/wasi": "jsr:@polyengine/wasi@^0.4.0", + "@polymorph/webcrypto": "jsr:@polymorph/webcrypto@^0.4.0", + "@polymorph/websocket": "jsr:@polymorph/websocket@^0.4.0", + "@polymorph/webrtc-datachannels": "jsr:@polymorph/webrtc-datachannels@^0.4.0" }, "publish": { "exclude": ["src/run-endpoint.ts", "src/scenario.ts", "src/repo.ts", "!src/endpoint_component.ts"] diff --git a/host-polyengine/deno.lock b/host-polyengine/deno.lock index c14c9e7..b0140cf 100644 --- a/host-polyengine/deno.lock +++ b/host-polyengine/deno.lock @@ -1,55 +1,55 @@ { "version": "5", "specifiers": { - "jsr:@polyengine/protocol@0.1": "0.1.0", - "jsr:@polyengine/runtime@0.3": "0.3.0", - "jsr:@polyengine/translator@0.3": "0.3.0", - "jsr:@polyengine/wasi@0.3": "0.3.0", - "jsr:@polymorph/webcrypto@0.3": "0.3.0", - "jsr:@polymorph/webrtc-datachannels@0.3": "0.3.0", - "jsr:@polymorph/websocket@0.3": "0.3.0", + "jsr:@polyengine/protocol@~0.2.1": "0.2.1", + "jsr:@polyengine/runtime@0.4": "0.4.0", + "jsr:@polyengine/translator@0.4": "0.4.0", + "jsr:@polyengine/wasi@0.4": "0.4.0", + "jsr:@polymorph/webcrypto@0.4": "0.4.0", + "jsr:@polymorph/webrtc-datachannels@0.4": "0.4.0", + "jsr:@polymorph/websocket@0.4": "0.4.0", "npm:node-datachannel@0.32.3": "0.32.3", "npm:werift@0.22.2": "0.22.2" }, "jsr": { - "@polyengine/protocol@0.1.0": { - "integrity": "0c97f34166f22ba55e7b084148df96e47aebe47cd9dd13930057759c9161bb1c" + "@polyengine/protocol@0.2.1": { + "integrity": "857bef84afedc414d47daedf203448f72e8803cf96301afb783b1ac975f3dcec" }, - "@polyengine/runtime@0.3.0": { - "integrity": "97d7648c104dd0f08b4d10e1ed0117ab0cb5243db68c139f1f3df25755ed4e60", + "@polyengine/runtime@0.4.0": { + "integrity": "d34a59d9df58bd48541483619d1987319d8aad4d2e0f3775890177ffb0878a5a", "dependencies": [ "jsr:@polyengine/protocol" ] }, - "@polyengine/translator@0.3.0": { - "integrity": "1d9fcd09d360850bc08927ed1cf8124d50a0fed09ed8c80f354a6d3aedfcad25", + "@polyengine/translator@0.4.0": { + "integrity": "227cf2f92a5b11bce6155742b2a42cf14a642a89d3867ffd1789d6e6e8d49fdc", "dependencies": [ "jsr:@polyengine/runtime" ] }, - "@polyengine/wasi@0.3.0": { - "integrity": "991adfdd39f795f94bba91a523322b88d45ff42800669b5b472356676e3c97e7", + "@polyengine/wasi@0.4.0": { + "integrity": "b946443255e98cb6156237de90f051af7e483d2afdc0d721bdba64392cdbd896", "dependencies": [ "jsr:@polyengine/protocol", "jsr:@polyengine/runtime" ] }, - "@polymorph/webcrypto@0.3.0": { - "integrity": "0708409c1f36c091da7c60ee62db6416f8968c92acc92f8a192e9e9ee55f2569", + "@polymorph/webcrypto@0.4.0": { + "integrity": "ffedef7d0141571a81aa55c47d892d3ff95e3ca6796815e231729f81f0286d3d", "dependencies": [ "jsr:@polyengine/runtime" ] }, - "@polymorph/webrtc-datachannels@0.3.0": { - "integrity": "576bcbe4b1053e7d27ac9f8b2d2f61e979987a749b226cc09db328f837b32675", + "@polymorph/webrtc-datachannels@0.4.0": { + "integrity": "98022ce52d150532ac422faf86fba50d9ae55676d3cf803888bae79255ed35b1", "dependencies": [ "jsr:@polyengine/runtime", "npm:node-datachannel", "npm:werift" ] }, - "@polymorph/websocket@0.3.0": { - "integrity": "23c92ed2ccda31ca66cad1ac9cbcf87473ccac7ae9a2b82fcb3486d5af97bbcd", + "@polymorph/websocket@0.4.0": { + "integrity": "f2b77720ca02ba95d405a51abd4ca930074a22188ce23a5731c0a6b40f9c4bf2", "dependencies": [ "jsr:@polyengine/runtime" ] @@ -341,8 +341,8 @@ "lodash@4.18.1": { "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==" }, - "mediabunny@1.55.1": { - "integrity": "sha512-JDdTEUOw9g6Ey8eWc2Ei63GmRGtGTJoE56SE7CHikwzS8i9xpsWcve4bEiUw47d4j49L3r7MXDFsH/5oZIhjBw==", + "mediabunny@1.55.2": { + "integrity": "sha512-EEx4O6qYddAdCyWPMZNDwI7uc5hewNHrPAf9jLcVhIbXoPsiqNQ+D9i1pfadmGkjN2V318jSrZljkpoziYm6Lg==", "dependencies": [ "@types/dom-mediacapture-transform", "@types/dom-webcodecs" @@ -610,12 +610,12 @@ }, "workspace": { "dependencies": [ - "jsr:@polyengine/runtime@0.3", - "jsr:@polyengine/translator@0.3", - "jsr:@polyengine/wasi@0.3", - "jsr:@polymorph/webcrypto@0.3", - "jsr:@polymorph/webrtc-datachannels@0.3", - "jsr:@polymorph/websocket@0.3" + "jsr:@polyengine/runtime@0.4", + "jsr:@polyengine/translator@0.4", + "jsr:@polyengine/wasi@0.4", + "jsr:@polymorph/webcrypto@0.4", + "jsr:@polymorph/webrtc-datachannels@0.4", + "jsr:@polymorph/websocket@0.4" ] } } diff --git a/justfile b/justfile index 84edb7f..5ac0e0c 100644 --- a/justfile +++ b/justfile @@ -95,8 +95,8 @@ exam-polyengine: build-components polyengine-setup # what module identity needs is that every @polyengine/* package (except # @polyengine/protocol, versioned independently) RESOLVES to the same # version across both deno.locks — a translator/runtime split is - # exactly the plan-format skew (or double-runtime WitError identity - # break) the packaged translator exists to rule out. + # exactly the plan-format skew (or double-runtime ComponentException + # identity break) the packaged translator exists to rule out. v=$(jq -r '.jsr | keys[]' host-polyengine/deno.lock \ experiments/iroh-relay-ws/host/deno.lock \ | grep '^@polyengine/' | grep -v '^@polyengine/protocol@' \