Skip to content

jsr: publish @polymorph/iroh — the endpoint packaged under deltic - #81

Merged
lannbot merged 1 commit into
mainfrom
jsr-publish
Aug 17, 2026
Merged

jsr: publish @polymorph/iroh — the endpoint packaged under deltic#81
lannbot merged 1 commit into
mainfrom
jsr-publish

Conversation

@lannbot

@lannbot lannbot commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

Publishes @polymorph/iroh: the iroh endpoint component + the deltic harness, consumable out of the box (newEndpointInstance()bindEndpoint()), completing the family's JSR set (webcrypto, websocket, webrtc-datachannels are live at 0.1.0).

  • Sibling modules from JSR by caret (@polymorph/*@^0.1.0) instead of .deps paths; @deltic/* constraints widen to ^0.1.0. Published constraints are ranges so one @deltic/runtime instance serves the whole graph — module identity (instanceof ComponentException) now rests on range-intersection, gated by the reworked lock-based pin check + the unchanged resolved-graph identity gate.
  • Packaged endpoint component: build-components embeds the wasm32-wasip2 release build as a generated, gitignored base64 module in the graph (package integrity, no read permission, no unstable raw-import flag), lazily loaded; componentBytes overrides. The exam keeps running this tree's fresh build via the publish-excluded src/repo.ts (repo paths, local relay, env-knob forwarding — the published module reads no ambient configuration).
  • LICENSE: Apache-2.0. jsr-publish workflow builds against the .deps pins and publishes via OIDC.

Gates: exam-deltic 7/7 with the siblings resolved from JSR at 0.1.0; deno publish --dry-run clean (2.6 MiB asset + 4 modules); deno task check green.

After merge: dispatch jsr-publish to put @polymorph/iroh 0.1.0 live.

The deltic harness becomes the @polymorph/iroh package: exports ".

" (src/mod.ts) carries newEndpointInstance/bindEndpoint/loadArtifacts,
the sockets browser-profile provider, and the endpoint types. The
sibling host modules arrive from JSR by caret constraint
(@polymorph/{webcrypto,websocket,webrtc-datachannels}@^0.1.0) instead
of .deps paths, and @deltic/* constraints widen to ^0.1.0 — published
dependency constraints are ranges so a consumer's resolver dedupes the
family onto one @deltic/runtime module instance (module identity for
instanceof ComponentException).

The packaged endpoint component: build-components embeds the wasm32-
wasip2 release build as src/endpoint_component.ts (gitignored,
generated; base64 in the module graph — package integrity, no read
permission, no unstable raw-import flag), reached through
loadArtifacts()'s string-literal dynamic import so it evaluates only
when the packaged default is used. Explicit componentBytes overrides
it; the exam always passes this tree's fresh build (src/repo.ts, the
publish-excluded repo machinery: target/ paths, the local relay,
EXAM_GUEST_LOGS forwarding — the published module reads no ambient
configuration and references no repo paths).

The exam-deltic pin gate compares RESOLVED @deltic versions across the
two deno.locks (host-deltic's manifest carries ranges, so specifier
strings no longer pin identity); the resolved-graph identity gate is
unchanged. LICENSE: Apache-2.0, the family's license. jsr-publish.yml
builds the endpoint against the .deps pins and publishes via GitHub
Actions OIDC.

Gates: exam-deltic 7/7 with the siblings resolved from JSR at 0.1.0;
deno publish --dry-run clean (mod/harness/sockets/types + the 2.6 MiB
asset module); deno task check green.
@lannbot
lannbot enabled auto-merge August 17, 2026 18:26
@lannbot
lannbot merged commit 761120b into main Aug 17, 2026
1 check passed
@lannbot
lannbot deleted the jsr-publish branch August 17, 2026 18:31
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