release: @parity/truapi 0.15.0, @parity/truapi-host 0.12.0 - #732
Merged
Conversation
Ship wire codec version 2: every frame is addressed by a (trait, method, message_type) envelope (#357), and the client retries iframe readiness until the host transfers a channel and rejects unanswered requests after a bounded deadline (#665). A codec version 1 peer cannot exchange frames with a codec version 2 peer in either direction, since the handshake itself rides the changed envelope, so hosts and products move together. The 0.14.0 / 0.11.0 release commit (#722) never reached npm: its Release run stopped at the changeset #665 had merged minutes earlier, so no tag or registry version exists for it. Both pending changesets are consumed here, and the generated root CHANGELOG folds the 0.14.0 entries into 0.15.0 because no 0.14.0 tag was ever cut. @parity/truapi-debugger is absent from the subject; changesets bumped its manifest to 0.1.2 as an internal-dependency side effect only, and it stays unpublished.
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
|
CI Status: 14 required jobs green, 13 passed and 1 skipped by path filter. All job results
Commit |
pgherveou
approved these changes
Sep 11, 2026
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.
Release: @parity/truapi 0.15.0, @parity/truapi-host 0.12.0
Important
The PR title must start with
release:for the publish workflow to fire.Don't rewrite the squash commit subject in the merge dialog — the
release:prefix has to land onmain.Summary
Ships wire codec version 2 to the protocol package and the WASM host:
-> feat(wire): split the frame discriminant into trait and method bytes #357
-> fix(truapi): bound iframe bootstrap and requests #665
Every frame is addressed by a two-byte
(trait, method)discriminant plus amessage_typebyte naming which leg ofthe exchange the frame carries; the payload is the plain SCALE encoding of that leg's type.
TrUApiTransport.codecVersion,CreateTransportOptions.codecVersionandGeneratedClientTransportare gone, and generated handshake calls readTRUAPI_CODEC_VERSIONdirectly. The client retries iframe readiness until the host transfers a channel and rejectsunanswered requests after a configurable bounded deadline.
Why minor. A codec version 1 peer cannot exchange frames with a codec version 2 peer in either direction: the
handshake itself rides the changed envelope, so the mismatch cannot be negotiated in band. Hosts and products must move
together, which is breaking in the way 0.x signals with a minor.
About 0.14.0 / 0.11.0. The previous release commit (#722) never reached npm: its
Releaserun failed atVerify release manifestsbecause.changeset/reliable-iframe-bootstrap.mdfrom #665 had merged minutes before therelease branch was cut and was never consumed. The registry stops at
@parity/truapi@0.13.1and@parity/truapi-host@0.10.1, and no 0.14.0 / 0.11.0 tags exist. This PR consumes both pending changesets, so thepackage changelogs carry a 0.15.0 / 0.12.0 entry above the unpublished 0.14.0 / 0.11.0 ones, and the generated root
CHANGELOG.mdfolds the 0.14.0 entries into 0.15.0 because it keys sections off tags. Therelease-clijob publishesthe prebuilt
truapi-hostbinaries under 0.15.0 for the same reason.Not in this subject.
@parity/ios-host 0.14.0and@parity/android-host 0.1.0were also named in #722 and werenever published either. They are left out here because this release covers the npm packages only; a follow-up
release:PR naming them is the way to cut them.@parity/truapi-debuggeris deliberately absent: changesets bumpedits manifest to 0.1.2 as an internal-dependency side effect, and it stays unpublished.
Verified locally:
npm run check-release-versions, no files left under.changeset/,cargo check -p truapi -p truapi-host-cli --locked --offlineafter./scripts/codegen.sh, and acut-version.shsnapshot under0.15.0.Checklist
npm run changesetand selected the package + bump type (patch / minor / major) — both changesets were already onmain(wire-trait-method-split.md,reliable-iframe-bootstrap.md)npm run version-packagesto consume the changesetjs/packages/truapi/package.jsonversion is bumpedjs/packages/truapi-host/package.jsonversion is bumped when releasing the host@parity/ios-host <version>when publishing the iOS host — n/a, npm packages onlyPackage.swift— n/a@parity/android-host <version>when publishing the Android host AAR; nothing in the tree records that version, so there is no manifest to bump — n/a@parity/truapi-hostdepends on^<current @parity/truapi version>js/packages/truapi/CHANGELOG.mdhas the new entryjs/packages/truapi-host/CHANGELOG.mdhas the new entry when releasing the hostrust/crates/truapi/Cargo.tomlandrust/crates/truapi-host-cli/Cargo.tomlversions matchjs/packages/truapi/package.json(npm run check-release-versions), andCargo.lockrecords them@parity/truapialso publishes the prebuilttruapi-hostbinaries; no extra title entry is needed.changeset/(other thanconfig.json)