Skip to content

conformance: consume deltic from JSR; retire the release-asset fetch - #43

Merged
lann merged 1 commit into
mainfrom
jsr-deltic-packages
Aug 11, 2026
Merged

conformance: consume deltic from JSR; retire the release-asset fetch#43
lann merged 1 commit into
mainfrom
jsr-deltic-packages

Conversation

@lann

@lann lann commented Aug 11, 2026

Copy link
Copy Markdown
Collaborator

Follow-up to the ecosystem ruling in polymorph-iroh#45: the deltic conformance leg moves from raw.githubusercontent URLs + the sha-pinned release-asset fetch to the JSR prereleases deltic publishes per green commit (0.1.0-pre.g<shorthash>, same hash as the GitHub release). Pin bump rides along: pre-83fff30ga67ee83 (~75 upstream commits; the leg's deltic surface — runSuite, Translator.translate — is API-stable across it).

What this buys

  • fetch-translator.ts (TAG + per-asset sha256 manifest + assertPinConsistency) retires. The deltic-deno legs' translator is @deltic/translator's packaged asset through the module graph — permission-free, so run-deltic/run-deltic-delegated drop the release-asset net grants; --translator survives as an optional dev override.
  • The browser legs' two assets are repo-built from the same pinned graph (_deltic-browser-build): the embedder bundle from browser-bundle-entry.ts (upstream tools/release-bundle/entry.ts's exact surface) via deno bundle --frozen --platform browser, and the translator wasm copied out of the lock-pinned module cache. Serve path goes version-free (target/deltic-browser/; the lock owns versioning, not a path segment). The upstream worker protocol ({bundleUrl, translatorUrl, …}) and the pinned @polymorph/component-test-js are untouched.
  • The pin story collapses to deno.json + deno.lock (--frozen), with _deltic-pin-check (a dependency of every deltic recipe) asserting one jsr:@deltic/* version repo-wide — the successor to assertPinConsistency.
  • minimumDependencyAge exempts jsr:@deltic/* per deltic's consumption README; everything else keeps Deno's default 24-hour supply-chain gate.

Discovered en route: Deno stores remote modules as body + a // denoCacheMetadata={…} trailer; copying a cached wasm asset wholesale yields a module that fails WebAssembly.compile in the page (the Deno legs never see this — ESM wasm imports read through the cache API). extract-translator-wasm.py truncates to the graph-reported size and asserts wasm magic + trailer shape.

Not changed: worker protocol, @polymorph/component-test-js pin, Rust (incl. tls-virt pollables), jco history, matrix baseline.

Gates (all green): CONFORMANCE_BROWSER=1 just conformance — deltic-deno 5 pass/2 n/a, deltic-deno-delegated 6 pass/1 n/a, deltic-browser + deltic-browser-delegated green, aggregate 7 targets/42 results/0 failing, matrix-check empty diff; deno task check; leftover-reference grep clean.

@lann
lann merged commit a1a40aa into main Aug 11, 2026
4 checks passed
@lann
lann deleted the jsr-deltic-packages branch August 11, 2026 03:22
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.

1 participant