Traverse v0.14.0 is the signed exact-ref model cut. One shared runtime.wasm. Hosts stay UI + WASI/WIT I/O. Capabilities still discover → execute → trace. The agent proposes; the runtime decides.
Breaking for Spec 138 consumers
+ +-
+
- Manifests move to schema 2.0.0. Every package ships a detached Ed25519
model.sig.jsonover the exactmodel.manifest.jsonbytes.
+ - Host-owned trust roots:
TrustedModelKeys(Rust) /trustedPublicKeysHex(web). Apps never add trust.
+ register_package/registerPackagereplacesinsertVerified— signature, trusted key, digest, schema, rights, target, and limits are checked before the package enters the cache. Every execute re-hashes cached bytes.
+ - Pins bind the SHA-256 of those manifest bytes and declare
target, expectedrights, and an optional signerkey_id.
+
First trained model
+ +digits-mlp-1.0.0 — a 64→32→10 MLP on UCI Optical Recognition of Handwritten Digits (CC BY 4.0). 96.10% held-out. Bit-identical trainer / native / browser. Signed with the test-only key; production model signing is traverse#1567.
Honest host matrix
+ +-
+
- Rust native + web — exact-ref execute ships in this cut. +
- Swift / Kotlin / .NET — in-tree embedders continue; they do not execute exact-ref models yet. +
SDKs, MCP, and CLI are embedders and clients of the same orchestrator — not different Traverse runtimes.
+ +Pins
+ +crates.io lockstep at 0.14.0 with traverse-embedder-web@0.14.0. Pin traverse-registry =0.25.0 if you consume the registry crate directly.
Upgrade
+ +Re-sign and re-pin every Spec 138 model package. Schema 1.0.0 manifests no longer verify. Constructors now require trust roots. Switch callers from insertVerified to registerPackage.
Step-by-step: upgrade-to-v0.14.0.md.
+ +Full notes: GitHub Release · Announcement #1576 · Q&A What is exact-ref model execution?.
+ +