diff --git a/public/llms.txt b/public/llms.txt index 774dc1a..f0e1ac3 100644 --- a/public/llms.txt +++ b/public/llms.txt @@ -1,6 +1,6 @@ # Traverse -> Traverse is a governed capability runtime for portable business logic. Value loop: **discover → execute → trace**. Usual authoring is skill-first plain English via `traverse-capability-author` (contract → WASM → human-reviewed PR); manual authoring still uses Rust→WASM — you do **not** need to write Rust for the usual path. One shared `runtime.wasm`; browser, native desktop, CLI, and MCP are clients/embedders, not different Traverse runtimes. Shipped consumers today: JS/TS (`traverse-embedder-web`), Rust (`traverse-embedder`), agents via `traverse-mcp`; Python shells out to `traverse-cli capability-package execute` (**no Python SDK**). v0.15.0 headline: governed model execution on every host — signed exact-ref on native Rust, the browser, Swift, Kotlin/Android, and .NET; every host enforces model rights (`model_usage` is required); Core ML is an opt-in Apple placement (macOS cargo-test evidence plus the Decision 113 iPhone spike; governed-path iPhone evidence is traverse#1630, still open). Swift (xcframework `swift-host-v0.15.0`; `Package.swift` on main pins the `swift-host-v0.15.0-1` rebuild, traverse#1695), Kotlin (Maven Central `com.traverse-framework:traverse-embedder` 0.15.0), and .NET (nuget.org `TraverseEmbedder` 0.15.0) are published, pre-1.0, and not Certified; edge is planned; cloud placement is an explicit non-goal for v0.1 — see /platforms.html and /what-is-real-today.html. Apache 2.0, pre-1.0 (v0.15.0). The agent proposes; the runtime decides. +> Traverse is a governed capability runtime for portable business logic. Value loop: **discover → execute → trace**. Usual authoring is skill-first plain English via `traverse-capability-author` (contract → WASM → human-reviewed PR); manual authoring still uses Rust→WASM — you do **not** need to write Rust for the usual path. One shared `runtime.wasm`; browser, native desktop, CLI, and MCP are clients/embedders, not different Traverse runtimes. Shipped consumers today: JS/TS (`traverse-embedder-web`), Rust (`traverse-embedder`), agents via `traverse-mcp`; Python shells out to `traverse-cli capability-package execute` (**no Python SDK**). v0.15.0 headline: governed model execution on every host — signed exact-ref on native Rust, the browser, Swift, Kotlin/Android, and .NET; every host enforces model rights (`model_usage` is required); Core ML is an opt-in Apple placement (macOS cargo-test evidence plus the Decision 113 iPhone spike; governed-path iPhone evidence for traverse#1630 landed on main after v0.15.0: BirdNET p95 141 ms per 3 s clip on one iPhone 14 Pro Max, unreleased schema 2.3.0). Swift (xcframework `swift-host-v0.15.0`; `Package.swift` on main pins the `swift-host-v0.15.0-1` rebuild, traverse#1695), Kotlin (Maven Central `com.traverse-framework:traverse-embedder` 0.15.0), and .NET (nuget.org `TraverseEmbedder` 0.15.0) are published, pre-1.0, and not Certified; edge is planned; cloud placement is an explicit non-goal for v0.1 — see /platforms.html and /what-is-real-today.html. Apache 2.0, pre-1.0 (v0.15.0). The agent proposes; the runtime decides. - Start here (narrative): https://traverse-framework.com/blog/what-is-real-today-start-here.html - How do I start with Traverse as an agent?: https://traverse-framework.com/questions/how-do-i-start-with-traverse-as-an-agent.html - What does Traverse not claim yet?: https://traverse-framework.com/questions/what-does-traverse-not-claim-yet.html @@ -75,15 +75,17 @@ Current packages: crates.io Traverse at 0.15.0; npm `traverse-embedder-web@0.15. - [Changelog](https://traverse-framework.com/changelog.html): release-by-release history. - [Security & Permanence Audit](https://traverse-framework.com/security-audit.html): every known finding, its GitHub ticket, and its real status — not a marketing page. - [FAQ](https://traverse-framework.com/faq.html) and [Questions](https://traverse-framework.com/questions.html): 70+ specific Q&A pages, mostly long-tail but accurate. -- [What is exact-ref model execution?](https://traverse-framework.com/questions/what-is-exact-ref-model-execution.html): discover → execute → trace; one shared `runtime.wasm`; signed schema `2.0.0` and later + `model.sig.json`; host-owned trust; **breaking** `model_usage` (`commercial` | `non_commercial`, else `usage_undeclared`); third-party ONNX via `traverse-cli model`; guest ABI v3 snapshot reuse; Core ML opt-in on Apple (macOS cargo test + Decision 113 spike; governed-path iPhone evidence traverse#1630 still open); `digits-mlp-1.0.0` (test-only key; custody #1567 still open); published exact-ref execute is native + web 0.15.0 + Swift ExactModelHost (`swift-host-v0.15.0`) + Kotlin and .NET ExactModelHost in Maven/NuGet 0.15.0 (#1651 closed; first landed in v0.12.0). No host is Certified. [Release](https://github.com/traverse-framework/traverse/releases/tag/v0.15.0) · historical embedder notes: [v0.14.0: what changed for embedders](https://traverse-framework.com/blog/traverse-0-14-0-what-changed-for-embedders.html). +- [What is exact-ref model execution?](https://traverse-framework.com/questions/what-is-exact-ref-model-execution.html): discover → execute → trace; one shared `runtime.wasm`; signed schema `2.0.0` and later + `model.sig.json`; host-owned trust; **breaking** `model_usage` (`commercial` | `non_commercial`, else `usage_undeclared`); third-party ONNX via `traverse-cli model`; guest ABI v3 snapshot reuse; Core ML opt-in on Apple (macOS cargo test + Decision 113 spike; governed-path iPhone evidence for traverse#1630 landed on main after v0.15.0, unreleased); `digits-mlp-1.0.0` (test-only key; custody #1567 still open); published exact-ref execute is native + web 0.15.0 + Swift ExactModelHost (`swift-host-v0.15.0`) + Kotlin and .NET ExactModelHost in Maven/NuGet 0.15.0 (#1651 closed; first landed in v0.12.0). No host is Certified. [Release](https://github.com/traverse-framework/traverse/releases/tag/v0.15.0) · historical embedder notes: [v0.14.0: what changed for embedders](https://traverse-framework.com/blog/traverse-0-14-0-what-changed-for-embedders.html). - [How do hosts trust signed models?](https://traverse-framework.com/questions/how-do-hosts-trust-signed-models.html): discover → execute → trace; one shared `runtime.wasm`; host-owned trust roots gate `register_package`; pin by digest + `model.sig.json`; `model_usage` required in v0.15.0; test-only digits-mlp key (custody #1567 still open); published exact-ref execute is native + web + Swift `swift-host-v0.15.0` + Kotlin and .NET 0.15.0; third-party ONNX can be packaged and signed with `traverse-cli model`. - [Which hosts run signed exact-ref models?](https://traverse-framework.com/questions/which-hosts-run-signed-exact-ref-models.html) · [Is production model signing ready?](https://traverse-framework.com/questions/is-production-model-signing-ready.html) · [Can Kotlin or .NET run exact-ref yet?](https://traverse-framework.com/questions/can-kotlin-or-dotnet-embedders-run-exact-ref-yet.html): discover → execute → trace; one shared `runtime.wasm`; published exact-ref is native + web 0.15.0 + Swift `swift-host-v0.15.0` + Kotlin and .NET 0.15.0 (#1651 closed); production signing custody is not finished (#1567 still open; v0.15.0 shipped key-generation tooling). - [What is ExactModelHost?](https://traverse-framework.com/questions/what-is-exact-model-host.html): host-side connector for governed exact-ref model packages (Spec 138). Register a signed package under host-owned trust roots, then execute under discover → execute → trace. Not a second runtime. Published in 0.15.0: native connector, web `ExactModelBrowserHost`, Swift `ExactModelHost` on `swift-host-v0.15.0`, Kotlin and .NET `ExactModelHost` in Maven/NuGet 0.15.0 (#1651 closed). Test-only digits-mlp key; custody #1567 still open. Not catalog `model.execute`. Not Hugging Face. -- [Signed models on every host. The rights travel with them.](https://traverse-framework.com/blog/signed-models-on-every-host.html): Oct 15 v0.15.0 narrative — discover → execute → trace; signed exact-ref on native Rust, web, Swift `swift-host-v0.15.0`, Kotlin and .NET 0.15.0 via small audited native boundaries sharing `traverse-model-host-frame`, byte-identical conformance vectors, one 21-case rights suite; **breaking** `model_usage`; `traverse-cli model` + `package-onnx` (install `traverse-cli-rs`, runner from `onnx-runner-v0.15.0`); ABI v3 prepare-once; Core ML opt-in on Apple (iPhone governed evidence traverse#1630 open). Caveats: web `modelUsage` not validated in 0.15.0 (traverse#1685; fix #1698 on main, unreleased), CLI verify usage (traverse#1686, main only), test-only key (custody #1567), registry capability revocation #1598 not shipped. No host Certified. +- [Signed models on every host. The rights travel with them.](https://traverse-framework.com/blog/signed-models-on-every-host.html): Oct 15 v0.15.0 narrative — discover → execute → trace; signed exact-ref on native Rust, web, Swift `swift-host-v0.15.0`, Kotlin and .NET 0.15.0 via small audited native boundaries sharing `traverse-model-host-frame`, byte-identical conformance vectors, one 21-case rights suite; **breaking** `model_usage`; `traverse-cli model` + `package-onnx` (install `traverse-cli-rs`, runner from `onnx-runner-v0.15.0`); ABI v3 prepare-once; Core ML opt-in on Apple (iPhone governed evidence traverse#1630 landed on main after the release, unreleased). Caveats: web `modelUsage` not validated in 0.15.0 (traverse#1685; fix #1698 on main, unreleased), CLI verify usage (traverse#1686, main only), test-only key (custody #1567), registry capability revocation #1598 not shipped. No host Certified. - [What is model_usage?](https://traverse-framework.com/questions/what-is-model-usage-in-traverse.html): since v0.15.0 apps with `exact_model_dependencies` must declare `model_usage: commercial | non_commercial` or fail closed with `usage_undeclared`; `commercial` rejects `prohibited` packages (`rights_policy_denied`); results carry `model_evidence`; Rust `ExactModelHostConnector::model_usage`, web `modelUsage`, Swift `modelUsage:` (no default), Kotlin/.NET `modelUsage`. Gaps: published web 0.15.0 accepts any string (traverse#1685; fix #1698 merged on main, rejects with `usage_invalid`, unreleased); `traverse-cli-rs` 0.15.0 `model verify` has no usage flag (traverse#1686, fixed on main after release). -- [How do I package my own ONNX model?](https://traverse-framework.com/questions/how-do-i-package-an-onnx-model-for-traverse.html): `cargo install traverse-cli-rs --version =0.15.0 --locked` (Rust ≥ 1.94; crates.io `traverse-cli` is unrelated); `runner.wasm` from GitHub release `onnx-runner-v0.15.0` (sha256 `f3902703fe79cc161c13b87cf507dcb25cb53ea3c2a68bed6cc753f9df100966`); `model package-onnx` → sign → verify → conformance → pin; one input + one output tensor only (traverse#1661); post-processing belongs in capabilities, hosts stay UI + I/O. Not catalog `model.execute`, not Hugging Face. +- [How do I package my own ONNX model?](https://traverse-framework.com/questions/how-do-i-package-an-onnx-model-for-traverse.html): `cargo install traverse-cli-rs --version =0.15.0 --locked` (Rust ≥ 1.94; crates.io `traverse-cli` is unrelated); `runner.wasm` from GitHub release `onnx-runner-v0.15.0` (sha256 `f3902703fe79cc161c13b87cf507dcb25cb53ea3c2a68bed6cc753f9df100966`); `model package-onnx` → sign → verify → conformance → pin; 0.15.0 packager is one input + one output tensor; named multi-input/multi-output packaging for HF-style text encoders merged on main after the release (traverse#1661, PR #1704), not released, rebuilt audited runner + signed reference encoder pending; post-processing belongs in capabilities, hosts stay UI + I/O. This is the host connector path, not Hugging Face. - [What happens when a host marks a model package revoked?](https://traverse-framework.com/questions/what-happens-when-a-host-marks-a-model-package-revoked.html): v0.15.0 hosts own a package-status map for signed model packages — `revoked` blocks (`package_revoked`), `deprecated` runs and is flagged; `model_evidence` on every result. Not registry capability revocation (runtime refusal is traverse#1598, not shipped). -- [Can Traverse run models on a GPU or the Apple Neural Engine?](https://traverse-framework.com/questions/can-traverse-run-models-on-a-gpu-or-neural-engine.html): Core ML is an opt-in Apple placement in v0.15.0. Default stays `wasm-cpu`. Ordered placements, on-device self-check, fail-closed `placement_unavailable`, placement evidence (Decision 112). Evidence so far is macOS cargo test plus the Decision 113 iPhone spike. Governed-path iPhone evidence is traverse#1630, still open. No web, Android, or desktop GPU adapter. No host is Certified. +- [Can Traverse run models on a GPU or the Apple Neural Engine?](https://traverse-framework.com/questions/can-traverse-run-models-on-a-gpu-or-neural-engine.html): Core ML is an opt-in Apple placement in v0.15.0. Default stays `wasm-cpu`. Ordered placements, on-device self-check, fail-closed `placement_unavailable`, placement evidence (Decision 112). Published-release evidence is macOS cargo test plus the Decision 113 iPhone spike. Governed-path iPhone evidence landed on main after v0.15.0 (traverse#1630): BirdNET on one iPhone 14 Pro Max, p95 141 ms per 3 s clip under `[coreml, wasm-cpu]`; needs unreleased schema 2.3.0 `score_transform`; `cpu_and_neural_engine` failed self-check and fell back to `wasm-cpu`. No web, Android, or desktop GPU adapter. No host is Certified. +- [How fast does a model run on iPhone with Traverse?](https://traverse-framework.com/questions/how-fast-does-a-model-run-on-iphone-with-traverse.html): one measured case on unreleased main (traverse#1630, PR #1709): iPhone 14 Pro Max, iOS 26.6, Release build, Swift `ExactModelHost`, BirdNET v2.4 int8, policy `[coreml, wasm-cpu]` — Core ML `all` p95 141.3 ms per 3 s clip vs `wasm-cpu` p95 10.0 s; top-5 21/21 vs wasm-cpu; timing is the whole governed call. Not reproducible on v0.15.0 (needs schema 2.3.0 `score_transform`). One device, one model, test-only key, non-commercial weights. Follow-ups #1706, #1707, #1708. No host is Certified. +- [What is the model.execute catalog capability?](https://traverse-framework.com/questions/what-is-the-model-execute-catalog-capability.html): `model.execute@1.0.0` in the registry catalog (registry#639, index-v407, Oct 15 2026) — a shim over host connector `traverse.model-runtime`: exact pin + `input_ref` + `model_usage` + non-empty `trust_root` in; `model_evidence` or unchanged fail-closed Spec 138 reason out. Does not fetch models, hold keys, or choose a model. Pins connector 2.3.0 (on Traverse main; v0.15.0 hosts carry 2.2.0). Registry spec 027 is draft. No published-release demo yet. - [What is digits-mlp?](https://traverse-framework.com/questions/what-is-digits-mlp.html): first trained exact-ref package in v0.14.0 (UCI digits MLP, 96.10% held-out, bit-identical); test-only signing; not a general LLM. - [Does the website use the latest traverse-embedder-web?](https://traverse-framework.com/questions/does-the-website-use-the-latest-traverse-embedder.html): site pins `^0.15.0` (matching npm) and `/discover` admits its signed demo fixture through `registerPackage` with `modelUsage: non_commercial`; the site can lag future releases, so product apps pin published packages, not the website demo. - [How does Traverse complement Hugging Face?](https://traverse-framework.com/questions/how-does-traverse-complement-hugging-face.html): Hub = provenance; Traverse = pinned signed client-first capability; not Transformers.js/Hub replacement; no defer promise until a second executor exists. diff --git a/src/pages/blog/signed-models-on-every-host.astro b/src/pages/blog/signed-models-on-every-host.astro index 83959ed..b39af00 100644 --- a/src/pages/blog/signed-models-on-every-host.astro +++ b/src/pages/blog/signed-models-on-every-host.astro @@ -56,7 +56,7 @@ const _body = `

The runner guest is not inside the crate. Download runner.wasm from the onnx-runner-v0.15.0 release, check its sha256 (f3902703fe79cc161c13b87cf507dcb25cb53ea3c2a68bed6cc753f9df100966), and pass it as the first argument to package-onnx. Then sign with a key you keep outside the repo, verify, generate a conformance vector, and pin. The walk-through is how do I package an ONNX model?

-

Two limits to know before you start. The packager handles one input tensor and one output tensor, so most Hugging Face text encoders, which take input_ids and attention_mask, do not fit yet (#1661). And model verify in traverse-cli-rs 0.15.0 cannot take a model usage; it always verifies as non_commercial. That is #1686, fixed on main after the release and not in 0.15.0.

+

Two limits to know before you start. The packager handles one input tensor and one output tensor, so most Hugging Face text encoders, which take input_ids and attention_mask, do not fit yet (#1661; update, Oct 16: multi-input packaging merged on main in #1704, not released yet). And model verify in traverse-cli-rs 0.15.0 cannot take a model usage; it always verifies as non_commercial. That is #1686, fixed on main after the release and not in 0.15.0.

Prepare once, run many

@@ -66,7 +66,7 @@ const _body = `

A package can carry a signed Core ML variant. It runs only if the execution policy lists that placement and the variant passes an on-device self-check against its signed conformance vector, within tolerance. If it does not qualify, the call falls back down the ordered placements and the trace says so. If nothing qualifies, the call fails with placement_unavailable. Every result carries placement_evidence. The default placement is still wasm-cpu. The accelerator is a host detail. The package, the contract, and the trace stay the same.

-

Evidence so far is macOS test runs, where the signed digits-onnx-coreml package matches wasm-cpu within tolerance on every compute-unit setting, plus an earlier iPhone spike. Governed-path iPhone evidence is #1630, still open, so this post quotes no iPhone timings. There is no GPU adapter for web, Android, or desktop. More detail: can Traverse run models on a GPU or the Neural Engine?

+

Evidence so far is macOS test runs, where the signed digits-onnx-coreml package matches wasm-cpu within tolerance on every compute-unit setting, plus an earlier iPhone spike. Governed-path iPhone evidence was #1630, still open when this post went out. Update, Oct 16: it landed on main. BirdNET on one iPhone 14 Pro Max ran at p95 141 ms per 3 s clip on Core ML through the governed path, using an unreleased schema change. See how fast does a model run on iPhone with Traverse? There is no GPU adapter for web, Android, or desktop. More detail: can Traverse run models on a GPU or the Neural Engine?

What this release does not say

@@ -74,7 +74,7 @@ const _body = `
  • No host is Certified under Spec 529. Swift, Kotlin, and .NET are published and pre-1.0.
  • digits-mlp-1.0.0 is signed with a test-only key. v0.15.0 adds signing-key tooling (key generation, opt-in TRAVERSE_MODEL_SIGNING_KEYS, a dispatch-only signing workflow). Custody, rotation, and revocation of a production key are #1567, still open. See is production model signing ready?
  • The host package-status map is not registry revocation. Runtime refusal of a revoked registry capability is #1598, not shipped. See what happens when a host marks a model package revoked?
  • -
  • This is the host connector path. It is not a catalog model.execute capability, and it is not a Hugging Face integration.
  • +
  • This is the host connector path. It is not a catalog model.execute capability (update, Oct 16: the registry has since published model.execute@1.0.0, a catalog shim over this connector), and it is not a Hugging Face integration.
  • Python is still CLI-only. There is no Python SDK.
  • diff --git a/src/pages/changelog.astro b/src/pages/changelog.astro index 7b15cab..65c6509 100644 --- a/src/pages/changelog.astro +++ b/src/pages/changelog.astro @@ -7,7 +7,7 @@ import SubpageLayout from '@layouts/SubpageLayout.astro';
    Changelog

    Release history

    What shipped in Traverse. Each release is backed by versioned, reviewable work.

    View all releases on GitHub →

    -

    Governed model execution on every host

    v0.15.0 is a minor lockstep crate + npm release with breaking Spec 138 exact-ref changes (this repo's 0.x convention uses a minor bump). Signed exact-ref packages now run on the Swift, Kotlin/Android, and .NET embedders, in addition to native Rust and the browser. Every host enforces model rights. Discover → execute → trace, on one shared runtime.wasm. No host is Certified under Spec 529.

    Pins: crates.io, npm, Maven Central, and nuget.org at 0.15.0. This release pins traverse-registry at =0.28.0 (registry#636). digits-mlp-1.0.0 remains a test-only key; production custody, rotation, and revocation are still #1567. The web embedder reports its real package version (#1654).

    Product Release: Traverse v0.15.0 · Release notes · Upgrade guide.

    +

    Governed model execution on every host

    v0.15.0 is a minor lockstep crate + npm release with breaking Spec 138 exact-ref changes (this repo's 0.x convention uses a minor bump). Signed exact-ref packages now run on the Swift, Kotlin/Android, and .NET embedders, in addition to native Rust and the browser. Every host enforces model rights. Discover → execute → trace, on one shared runtime.wasm. No host is Certified under Spec 529.

    Pins: crates.io, npm, Maven Central, and nuget.org at 0.15.0. This release pins traverse-registry at =0.28.0 (registry#636). digits-mlp-1.0.0 remains a test-only key; production custody, rotation, and revocation are still #1567. The web embedder reports its real package version (#1654).

    Product Release: Traverse v0.15.0 · Release notes · Upgrade guide.

    Signed exact-ref models + digits-mlp

    v0.14.0 is a minor lockstep crate + npm release with breaking Spec 138 exact-ref surface changes (0.x minor convention). Model manifests move to schema 2.0.0 with detached Ed25519 model.sig.json; host-owned trust roots; first trained digits-mlp-1.0.0 (test-only key; production signing tracked separately). Discover → execute → trace, on one shared runtime.wasm. Published exact-ref execute is native Rust and the web embedder in this cut, plus Swift ExactModelHost on xcframework swift-host-v0.14.0-4 (Package.swift pin; first on swift-host-v0.14.0-1, #1579 closed 2026-09-30). Kotlin ExactModelHost is on main (#1580) and is not in Maven Central 0.14.0. .NET ExactModelHost is on main (#1602) and is not in nuget.org TraverseEmbedder 0.14.0. Next package cuts: #1651. Pin the Traverse crates and npm at 0.14.0. That release pins traverse-registry at =0.25.0; crates.io has since published traverse-registry 0.27.0. Product Release: Traverse v0.14.0.

    App state machine and target-neutral host authorities

    v0.13.0 is a minor lockstep crate + npm release. Its throughline is the discover → execute → trace loop for governed, standalone embedder apps: Spec 139-embedder-app-state-machine-execution lands the app command state machine that drives that loop end to end, and Spec 140-host-authority-wit-adapters gives it target-neutral host authorities — including a real audio-input capability. crates.io and npm packages are at 0.13.0.

    Upgrade note: pin traverse-embedder-web@0.13.0 with crates at 0.13.0 (lockstep). Apps using invoke.input_from with host_connector_result.<field> need Spec 139 0.2.0 / Spec 138 0.3.0 or later. Swift consumers: TraverseSwiftHost now resolves from the swift-host-v0.13.0 release — there is no GitHub Release object for v0.13.0 (immutable-releases policy). The certified runtime.wasm digest changes in this cut (sha256:a254c161…).

    Read the v0.13.0 release notes → · Announcement

    Exact-ref governed model.execute

    v0.12.0 is a minor lockstep crate + npm release. Spec 138-governed-exact-model-execution / ADR-0074 lands host-staged traverse.model-runtime / model.execute for exact pinned WASM model packages on native and browser wasm-cpu. crates.io and npm packages are at 0.12.0.

    Upgrade note: apps that want local exact-ref models must declare exact_model_dependencies and use matching model_ref digests — provider authority fields on model.execute payloads fail closed. Pin traverse-embedder-web@0.12.0 with crates at 0.12.0. Pin traverse-registry =0.22.0 if you consume it directly. Certified runtime.wasm digest is unchanged from 0.11.0.

    Read the v0.12.0 release notes →
    diff --git a/src/pages/platforms.astro b/src/pages/platforms.astro index 844c705..84553e7 100644 --- a/src/pages/platforms.astro +++ b/src/pages/platforms.astro @@ -63,7 +63,7 @@ const _body = `

    Swift / iOS

    In progress -

    The engine blocker recorded here as of July 19, 2026 is resolved. The wasmi feasibility spike below was adopted the next day: ADR-0014 selected the wasmi Apple runtime profile, ADR-0015 governed a production Swift wasmi C ABI, and Spec 074 (Approved) now defines the resource-control certification conditions. packages/swift/TraverseEmbedder ships a production WasmiHostBridgeClient backed by TraverseSwiftHost — a released XCFramework wrapping the wasmi interpreter behind a narrow C ABI — that enforces host-owned artifact-size, memory, fuel-per-invocation, and I/O limits on every call. The earlier WasmKit path, which never exposed those controls, has been removed from the package entirely (Decision 96, #1469); WasmKit is not supported. The xcframework ships as versioned swift-host-v* GitHub release assets. The v0.15.0 asset is swift-host-v0.15.0. The current asset is its rebuild swift-host-v0.15.0-1 (same v0.15.0 workspace, plus the Spec 138 guest reject codes, #1692), and Package.swift on main pins that zip (#1695). The v0.15.0 tag's Package.swift still pointed at swift-host-v0.14.0-4. That published xcframework includes ExactModelHost for signed exact-ref execute (GitHub Release + SPM binary target). Apple hosts can opt in to a package's signed Core ML variant under the same policy, tolerance, and evidence rules; the default placement stays wasm-cpu. Evidence so far is macOS cargo test plus the Decision 113 iPhone spike. Governed-path iPhone evidence is still open (traverse#1630).

    +

    The engine blocker recorded here as of July 19, 2026 is resolved. The wasmi feasibility spike below was adopted the next day: ADR-0014 selected the wasmi Apple runtime profile, ADR-0015 governed a production Swift wasmi C ABI, and Spec 074 (Approved) now defines the resource-control certification conditions. packages/swift/TraverseEmbedder ships a production WasmiHostBridgeClient backed by TraverseSwiftHost — a released XCFramework wrapping the wasmi interpreter behind a narrow C ABI — that enforces host-owned artifact-size, memory, fuel-per-invocation, and I/O limits on every call. The earlier WasmKit path, which never exposed those controls, has been removed from the package entirely (Decision 96, #1469); WasmKit is not supported. The xcframework ships as versioned swift-host-v* GitHub release assets. The v0.15.0 asset is swift-host-v0.15.0. The current asset is its rebuild swift-host-v0.15.0-1 (same v0.15.0 workspace, plus the Spec 138 guest reject codes, #1692), and Package.swift on main pins that zip (#1695). The v0.15.0 tag's Package.swift still pointed at swift-host-v0.14.0-4. That published xcframework includes ExactModelHost for signed exact-ref execute (GitHub Release + SPM binary target). Apple hosts can opt in to a package's signed Core ML variant under the same policy, tolerance, and evidence rules; the default placement stays wasm-cpu. Evidence so far is macOS cargo test plus the Decision 113 iPhone spike. Governed-path iPhone evidence landed on main after v0.15.0 (traverse#1630): BirdNET on one iPhone 14 Pro Max at p95 141 ms per 3 s clip under [coreml, wasm-cpu], relying on the unreleased schema 2.3.0 score_transform (details).

    The iOS and macOS clients in reference-apps run embedded: in-process TraverseEmbedder loading a digest-pinned runtime.wasm, with no traverse-cli serve sidecar. What's still open: Spec 529 (approved September 13, 2026) defines one host-neutral Certified/Preview classification across Web, Linux/Rust, Apple, Android, and Windows/.NET, but the five-platform conformance runner it calls for is later work, so no host is Certified today. Treat this as real, resource-bounded, pre-1.0 execution, not a certified release.