Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions experiments/iroh-relay-ws/host/deno.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,14 @@
"lib": ["dom", "dom.iterable", "dom.asynciterable", "deno.ns"]
},
"imports": {
"@polyengine/runtime/embedder": "jsr:@polyengine/runtime@0.5.1/embedder",
"@polyengine/runtime/shim": "jsr:@polyengine/runtime@0.5.1/shim",
"@polyengine/protocol": "jsr:@polyengine/protocol@0.2.3",
"@polyengine/translator": "jsr:@polyengine/translator@0.5.1",
"@polyengine/wasi": "jsr:@polyengine/wasi@0.5.1",
"@polyengine/wasi/io": "jsr:@polyengine/wasi@0.5.1/io",
"@polymorph/webrtc-datachannels": "jsr:@polymorph/webrtc-datachannels@0.5.0",
"@polymorph/websocket": "jsr:@polymorph/websocket@0.5.0"
"@polyengine/runtime/embedder": "jsr:@polyengine/runtime@0.6.3/embedder",
"@polyengine/runtime/shim": "jsr:@polyengine/runtime@0.6.3/shim",
"@polyengine/protocol": "jsr:@polyengine/protocol@0.3.1",
"@polyengine/translator": "jsr:@polyengine/translator@0.6.3",
"@polyengine/wasi": "jsr:@polyengine/wasi@0.6.3",
"@polyengine/wasi/io": "jsr:@polyengine/wasi@0.6.3/io",
"@polymorph/webrtc-datachannels": "jsr:@polymorph/webrtc-datachannels@0.6.0",
"@polymorph/websocket": "jsr:@polymorph/websocket@0.6.0"
},
"tasks": {
"check": "deno check ."
Expand Down
63 changes: 31 additions & 32 deletions experiments/iroh-relay-ws/host/deno.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

13 changes: 7 additions & 6 deletions host-polyengine/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,13 +47,14 @@ 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: the `@polyengine/{runtime,translator,wasi}@^0.5.1`
lockstep family (0.5.1 is a floor, not a convenience: the endpoint's
dial timeouts drop in-flight import futures, which polyengine handles as
a prompt discard only from 0.5.1 — A23; under 0.5.0 the drop wedges the
store, polyengine#239), plus `@polyengine/protocol@^0.2.2` (versioned independently
constraints on one minor line: the `@polyengine/{runtime,translator,wasi}@^0.6.3`
lockstep family (the line's floor has been ≥0.5.1 since A23, not a
convenience: the endpoint's dial timeouts drop in-flight import futures,
which polyengine handles as a prompt discard only from 0.5.1 — A23; under
0.5.0 the drop wedges the store, polyengine#239), plus
`@polyengine/protocol@^0.3.1` (versioned independently
of the lockstep family — the A22 host-ABI vocabulary line) and
`jsr:@polymorph/*@^0.5.0`. `deno.lock` pins the resolved versions and
`jsr:@polymorph/*@^0.6.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
Expand Down
16 changes: 8 additions & 8 deletions host-polyengine/deno.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@polymorph/iroh",
"version": "0.5.1",
"version": "0.6.0",
"license": "Apache-2.0",
"exports": { ".": "./src/mod.ts" },
"//": "MODULE-IDENTITY CONSTRAINT: this package instantiates the packaged endpoint component, so it still loads @polyengine/runtime/embedder — every consumer's resolver must still resolve exactly ONE @polyengine/runtime version for stateful-handle interop (a component instantiated under one embedder copy is refused by another). @polyengine/wasi@0.5.0 is protocol-only internally (A22) and the sibling @polymorph host modules (@polymorph/{webcrypto,websocket,webrtc-datachannels}@0.5.0) depend only on @polyengine/protocol — neither couples to @polyengine/runtime at all, so they no longer contribute to that constraint; @polyengine/protocol copies are harmless by construction (A22, contracts/embedder-api.md). Every dependency constraint here is a caret range on one minor line (published-package convention, polyengine's own precedent); 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/runtime version and one @polyengine/protocol 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.",
Expand All @@ -10,13 +10,13 @@
"exclude": ["jsr:@polyengine/*", "jsr:@polymorph/*"]
},
"imports": {
"@polyengine/runtime/embedder": "jsr:@polyengine/runtime@^0.5.1/embedder",
"@polyengine/protocol": "jsr:@polyengine/protocol@^0.2.2",
"@polyengine/translator": "jsr:@polyengine/translator@^0.5.1",
"@polyengine/wasi": "jsr:@polyengine/wasi@^0.5.1",
"@polymorph/webcrypto": "jsr:@polymorph/webcrypto@^0.5.0",
"@polymorph/websocket": "jsr:@polymorph/websocket@^0.5.0",
"@polymorph/webrtc-datachannels": "jsr:@polymorph/webrtc-datachannels@^0.5.0"
"@polyengine/runtime/embedder": "jsr:@polyengine/runtime@^0.6.3/embedder",
"@polyengine/protocol": "jsr:@polyengine/protocol@^0.3.1",
"@polyengine/translator": "jsr:@polyengine/translator@^0.6.3",
"@polyengine/wasi": "jsr:@polyengine/wasi@^0.6.3",
"@polymorph/webcrypto": "jsr:@polymorph/webcrypto@^0.6.0",
"@polymorph/websocket": "jsr:@polymorph/websocket@^0.6.0",
"@polymorph/webrtc-datachannels": "jsr:@polymorph/webrtc-datachannels@^0.6.0"
},
"publish": {
"exclude": ["src/run-endpoint.ts", "src/scenario.ts", "src/repo.ts", "!src/endpoint_component.ts"]
Expand Down
67 changes: 33 additions & 34 deletions host-polyengine/deno.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 0 additions & 6 deletions host-polyengine/src/harness.ts
Original file line number Diff line number Diff line change
Expand Up @@ -95,11 +95,6 @@ export interface EndpointInstanceOptions {
readonly env?: Record<string, string>;
/** Component bytes to run instead of the packaged endpoint build. */
readonly componentBytes?: Uint8Array;
/**
* Mirror the guest's stdout/stderr to the console as it runs. The
* captured text is available either way via `stdout()`/`stderr()`.
*/
readonly guestLogPassthrough?: boolean;
}

export interface EndpointInstance {
Expand Down Expand Up @@ -127,7 +122,6 @@ export async function newEndpointInstance(
cli: {
args: [`iroh-endpoint-${options.label}`],
env: { ...options.env },
passthrough: options.guestLogPassthrough ?? false,
},
});
const imports = {
Expand Down
4 changes: 1 addition & 3 deletions host-polyengine/src/run-endpoint.ts
Original file line number Diff line number Diff line change
Expand Up @@ -63,14 +63,12 @@ import {
} from "./repo.ts";

// The exam always runs THIS TREE's freshly built component (repo.ts reads
// it from target/), never the packaged embed, and forwards the
// EXAM_GUEST_LOGS env knob the harness no longer reads ambiently.
// it from target/), never the packaged embed.
async function newEndpointInstance(
options: EndpointInstanceOptions,
): Promise<EndpointInstance> {
return await packageEndpointInstance({
componentBytes: await endpointComponentBytes(),
guestLogPassthrough: Deno.env.get("EXAM_GUEST_LOGS") === "1",
...options,
});
}
Expand Down
Loading