diff --git a/public/llms.txt b/public/llms.txt index da92796..bf04178 100644 --- a/public/llms.txt +++ b/public/llms.txt @@ -10,7 +10,7 @@ Traverse is not a web framework, an agent-orchestration framework, or a general microservices platform. It governs one thing well: a single piece of business logic that must behave identically and auditably on every host where it actually ships. Specs and registry catalog size are governance hygiene, not the pitch. -Current packages (Traverse v0.16.2, Nov 4, 2026, additive patch on v0.16.0): npm `traverse-embedder-web@0.16.2`; Maven Central `com.traverse-framework:traverse-embedder` 0.16.2; nuget.org `TraverseEmbedder` 0.16.2; Swift xcframework `swift-host-v0.16.2`; `traverse-mcp` prebuilt binaries on GitHub release `traverse-mcp-v0.16.2` (Linux x64/arm64, macOS arm64, Windows x64; `SHA256SUMS` + provenance); ONNX runner `onnx-runner-v0.16.2` (same sha256 `ac5591fa…` as v0.16.0 and v0.16.1). crates.io: all six crates (`traverse-runtime`, `traverse-embedder`, `traverse-contracts`, `traverse-mcp`, `traverse-cli-rs`, `traverse-expedition-wasm`) at 0.16.2, published Nov 4; Rust ≥ 1.95. v0.16.2 adds host-connector invokes in CLI workspace application manifests (#1772, Spec 1773) and consumes `traverse-registry` 0.31.0. `runtime.wasm` ships on artifact-only GitHub releases again: `runtime-wasm-v0.16.2` (sha256 `b313b5c5c11291d9e9669125a0a9a77aa42a911b15d431a73e86b17c874e298c`) and `runtime-wasm-v0.16.1` (`7a322a17…`), each with `runtime.wasm`, `runtime.wasm.sha256` and `runtime-release.json` (traverse#1784 closed by #1797; npm still doesn't ship it). Known issue on 0.16.2 and earlier: Swift, Kotlin and .NET `RuntimeTraverseEmbedder` hand guests the whole `{target_id, input}` envelope instead of just `input`; fixed on main by #1800 (breaking for a guest that reads the envelope), not released. The CLI crate is `traverse-cli-rs` (binary `traverse-cli`). v0.16.0 moves `traverse-registry` to `0.29.0`. Since v0.16.0 the runtime rejects revoked Registry versions and conditional model rights need an explicit host opt-in (#1728; traverse#1598 closed). Host-side exact-ref `model_usage` enforcement shipped in v0.15.0. +Current packages (Traverse v0.16.2, Nov 4, 2026, additive patch on v0.16.0): npm `traverse-embedder-web@0.16.2`; Maven Central `com.traverse-framework:traverse-embedder` 0.16.2; nuget.org `TraverseEmbedder` 0.16.2; Swift xcframework `swift-host-v0.16.2`; `traverse-mcp` prebuilt binaries on GitHub release `traverse-mcp-v0.16.2` (Linux x64/arm64, macOS arm64, Windows x64; `SHA256SUMS` + provenance); ONNX runner `onnx-runner-v0.16.2` (same sha256 `ac5591fa…` as v0.16.0 and v0.16.1). crates.io: all six crates (`traverse-runtime`, `traverse-embedder`, `traverse-contracts`, `traverse-mcp`, `traverse-cli-rs`, `traverse-expedition-wasm`) at 0.16.2, published Nov 4; Rust ≥ 1.95. v0.16.2 adds host-connector invokes in CLI workspace application manifests (#1772, Spec 1773) and consumes `traverse-registry` 0.31.0. `runtime.wasm` ships on artifact-only GitHub releases again: `runtime-wasm-v0.16.2` (sha256 `b313b5c5c11291d9e9669125a0a9a77aa42a911b15d431a73e86b17c874e298c`) and `runtime-wasm-v0.16.1` (`7a322a17…`), each with `runtime.wasm`, `runtime.wasm.sha256` and `runtime-release.json` (traverse#1784 closed by #1797; npm still doesn't ship it). Known issue on 0.16.2 and earlier: Swift, Kotlin and .NET `RuntimeTraverseEmbedder` hand guests the whole `{target_id, input}` envelope instead of just `input`; fixed on main by #1800 (breaking for a guest that reads the envelope), not released (Q&A: what-input-does-a-runtime-wasm-guest-receive). Related web raw-submit `kind:app_command` routing (#1802) also fixed on main (#1806), not released. The CLI crate is `traverse-cli-rs` (binary `traverse-cli`). v0.16.0 moves `traverse-registry` to `0.29.0`. Since v0.16.0 the runtime rejects revoked Registry versions and conditional model rights need an explicit host opt-in (#1728; traverse#1598 closed). Host-side exact-ref `model_usage` enforcement shipped in v0.15.0. ## Required reading (agents) @@ -25,7 +25,7 @@ Current packages (Traverse v0.16.2, Nov 4, 2026, additive patch on v0.16.0): npm - [What is one shared runtime.wasm?](https://traverse-framework.com/questions/what-is-one-shared-runtime-wasm.html): embedders are clients; honest consumer list. - [Does the Rust embedder use the same runtime.wasm?](https://traverse-framework.com/questions/does-the-rust-embedder-use-the-same-runtime-wasm.html): discover → execute → trace on one shared runtime contract/ABI; web `traverse-embedder-web@0.15.0` loads the bundle's digest-checked `runtime/runtime.wasm`; Rust `traverse-embedder@0.15.0` links `traverse-runtime` natively and ships no separate runtime-WASM artifact; capability WASM still targets that host ABI; hosts are clients (UI + I/O); JS/TS + Rust + MCP published; Python via CLI only (no Python SDK); Swift/Kotlin/.NET published pre-1.0, not Certified under Spec 529; published 0.15.0 Maven/NuGet include ExactModelHost. Narrative: [One shared runtime. Not one shared .wasm file on every host.](https://traverse-framework.com/blog/one-shared-runtime-two-loading-paths.html) (that post is a v0.14.0 snapshot). - [The agent freestyled a $2.4M wire. The runtime said no.](https://traverse-framework.com/blog/agent-freestyle-blocked.html): project direction in one scene. Agent proposes, runtime decides (deny + trace). -- [One model capability, three published hosts, same answer](https://traverse-framework.com/blog/model-execute-on-published-packages.html): Nov 5 write-up of the v0.16.1 published-package proof. Published catalog `model/model.execute@1.0.0` guest (`5ccfa372…`), unchanged, over signed `traverse.digits-onnx@1.0.0` (test-only key, #1567) on native (crates.io `traverse-runtime` 0.16.1, wasmtime), Node 24.16.0 and Chromium 152 (npm `traverse-embedder-web@0.16.1`, `activateMediatedConnector` + `exactModelMediatedConnector`, `submitAsync`) → identical success output with `model_evidence`, identical 56-byte frame, identical `connector_unavailable`, `usage_undeclared`, `key_untrusted`, `pin_mismatch`, `digest_mismatch`, `package_revoked`; native adds `placement_evidence` (Spec 1719 FR-014). Evidence traverse#1782 (`docs/evidence/model-execute-published-2026-11-03`); clean GitHub-hosted runner rerun from published packages only, weekly Mondays, pinned to v0.16.1 (#1783, closed #1776). Gaps: `runtime.wasm` (`7a322a17…`) and the model package come from the v0.16.1 tag, not a package (#1784); native `activate_exact_model_runtime` frame readback (#1785); no Swift/Android/.NET activation API; live-Registry rights #1786; no Spec 529 certification. Update Nov 5: host-connector invokes in CLI workspace application manifests (#1772 via #1788, `traverse-registry` 0.31.0) shipped in v0.16.2 (Nov 4), and `runtime.wasm` is now also on the `runtime-wasm-v0.16.1` release (#1784 closed by #1797). +- [One model capability, three published hosts, same answer](https://traverse-framework.com/blog/model-execute-on-published-packages.html): Nov 5 write-up of the v0.16.1 published-package proof. Published catalog `model/model.execute@1.0.0` guest (`5ccfa372…`), unchanged, over signed `traverse.digits-onnx@1.0.0` (test-only key, #1567) on native (crates.io `traverse-runtime` 0.16.1, wasmtime), Node 24.16.0 and Chromium 152 (npm `traverse-embedder-web@0.16.1`, `activateMediatedConnector` + `exactModelMediatedConnector`, `submitAsync`) → identical success output with `model_evidence`, identical 56-byte frame, identical `connector_unavailable`, `usage_undeclared`, `key_untrusted`, `pin_mismatch`, `digest_mismatch`, `package_revoked`; native adds `placement_evidence` (Spec 1719 FR-014). Evidence traverse#1782 (`docs/evidence/model-execute-published-2026-11-03`); clean GitHub-hosted runner rerun from published packages only, weekly Mondays, pinned to v0.16.1 (#1783, closed #1776). Gaps: `runtime.wasm` (`7a322a17…`) and the model package come from the v0.16.1 tag, not a package (#1784); native `activate_exact_model_runtime` frame readback (#1785, fixed on main by #1809, not released); no Swift/Android/.NET activation API; live-Registry rights #1786 (closed on main by #1808, not released); no Spec 529 certification. Update Nov 5: host-connector invokes in CLI workspace application manifests (#1772 via #1788, `traverse-registry` 0.31.0) shipped in v0.16.2 (Nov 4), and `runtime.wasm` is now also on the `runtime-wasm-v0.16.1` release (#1784 closed by #1797). - [Traverse v0.16.0: same input, same output, on every host](https://traverse-framework.com/blog/traverse-0-16-0-same-input-same-output.html): Nov 3 release story for v0.16.0 (Nov 2, tag `f104b83`). Every host feeds guests RFC 8785 canonical JSON input (#1722, Decision 118). Rerun Nov 3 on released bits only: catalog `core.authorize@1.2.0` (`0c318fff…`) on Node (npm `traverse-embedder-web@0.16.0` + `runtime.wasm` `5ab8057f…`) and the `traverse-mcp-v0.16.0` Linux x64 binary (Mode A, `gh attestation verify` OK) → full output byte-identical, `policy_hash` `fnv1a64:51a64653…` on both; browser, other binaries, Swift/Kotlin/.NET not rerun. Mode A without Rust: `curl … | tar -xz` → `traverse-mcp sync` (index-v412, 232 records) → `prepare-cache`; five freestyle moves still refused; line-delimited command protocol, not JSON-RPC `tools/list`. Four breaking changes (#1706 placement at registration, #1722 canonical input, #1658 host input-schema enforcement, #1728 Registry rights fail closed). wasmtime 48.0.7 (GHSA-mghf-wjfp-p5xm), Rust ≥ 1.95. crates.io, npm, Maven, NuGet at 0.16.0; Swift `swift-host-v0.16.0` (tag `Package.swift` still pins the 0.15.0 xcframework, fixed on main #1769). Not claimed: live Registry coverage, production compliance, Spec 529 certification, guest `connector_invoke` on Swift/Android/.NET/web (#1719). - [One audit fingerprint, every host](https://traverse-framework.com/blog/hash-converges.html): Oct 30 weekly demo. Demo proof of the traverse#1722 fix. Same catalog `core.authorize@1.2.0` WASM (`0c318fff…`) on four columns: Browser with the v0.15.0-era `runtime.wasm` (`a254c161…`) → `policy_hash` `fnv1a64:2a126b86…`; Browser, Node (npm `traverse-embedder-web@0.15.0` JS + main `runtime.wasm` `ec49cb76…`) and the agent (`traverse-mcp` built from traverse `main` 70f3ee7, Mode A stdio) → `fnv1a64:51a64653…` on all three, full output byte-identical from unsorted caller input (RFC 8785 canonical guest input, #1739 / Decision 118). traverse#1720 closed by #1725 (binary runs from an empty directory, no staged fixtures). `traverse-mcp sync` (#1758) synced live `index-v412` (232 records). Five freestyle moves → `not_found`, `registry_cache_entry_missing`, `invalid_request`, `not_found`, `registry_artifact_digest_mismatch`. Honest gaps (as of Oct 30): unreleased `main`, not a tag. The fix has since shipped in v0.16.0 (Nov 2), and on Nov 3 the Node + agent columns were rerun on released bits (npm `traverse-embedder-web@0.16.0` + `runtime.wasm` `5ab8057f…`, `traverse-mcp-v0.16.0` Linux x64 binary) → still `51a64653…`, byte-identical ([v0.16.0 post](https://traverse-framework.com/blog/traverse-0-16-0-same-input-same-output.html)); browser not rerun on released bits; #1721 (prebuilt binary) since shipped in v0.16.0; building needs Rust 1.95.0; Mode A digest-only, no signature; #1719 waits on PR #1755; no Swift/.NET/Android runs. - [Same WASM, two hashes. The bug wasn't in the WASM.](https://traverse-framework.com/blog/same-wasm-two-hashes.html): Oct 30. Why catalog `core.authorize@1.2.0` gave a different `policy_hash` on `traverse-mcp` (sorted-key re-serialization) than on the embedders (caller bytes) in the Oct 23 demo (traverse#1722), and the rule now on `main`: Decision 118 / Spec `1722-canonical-guest-input-bytes`. Every host feeds guests RFC 8785 (JCS) canonical JSON input, refuses unrepresentable input with `input_not_canonicalizable`, never rewrites outputs; conformance fixture on native, `runtime.wasm`, Node (traverse#1739). Ships in v0.16.0, not released as of Oct 30. Rerun on `main` (not a release): [One audit fingerprint, every host](https://traverse-framework.com/blog/hash-converges.html). @@ -95,9 +95,10 @@ Current packages (Traverse v0.16.2, Nov 4, 2026, additive patch on v0.16.0): npm - [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). v0.15.0 evidence was macOS cargo test plus the Decision 113 iPhone spike. Governed-path iPhone evidence shipped in v0.16.0 (traverse#1630): BirdNET on one iPhone 14 Pro Max, p95 141 ms per 3 s clip under `[coreml, wasm-cpu]`; needs schema 2.3.0 `score_transform` (new in v0.16.0); `cpu_and_neural_engine` failed self-check and fell back to `wasm-cpu`; a Nov 3 rerun on main (#1778, docs only) shows `cpu_only` fails identically (5.067×10⁻³ vs 5×10⁻³ on 1 of 21 clips), so it is not Neural-Engine-specific. 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, shipped in v0.16.0 (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`, new in v0.16.0). One device, one model, test-only key, non-commercial weights. Code for #1706 (placement prep at registration, Decision 120, #1764) and #1708 (self-check worst case, #1766) shipped in v0.16.0. Nov 3 rerun on main (#1778 docs, #1779 host tests; harness built from main `9a3cd84`): `cpu_only` registers 4.47 s, first call 4.29 s, no timeout, but runs on `wasm-cpu` (Core ML variant fails self-check); `all` p95 149.0 ms; different clips, not a before/after. #1706 and #1708 closed; #1707 open. 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 (shipped in Traverse v0.16.0; v0.15.0 hosts carry 2.2.0). Registry spec 027 is draft. Since Traverse v0.16.1 (Nov 3) it runs on published native, Node and browser packages: traverse#1770 shipped web `activateMediatedConnector` + `submitAsync`, and a published-package run (traverse#1782, clean-runner CI #1783) gave identical output and six identical fail-closed reasons on native, Node and Chromium; Swift/Android/.NET activation not shipped; the Oct 16 weekly demo runs it on v0.15.0 via a native bridge and labelled Browser/Node glue. -- [Does catalog model.execute run on published Traverse packages?](https://traverse-framework.com/questions/does-catalog-model-execute-run-on-published-traverse-packages.html): yes on native, Node and browser since v0.16.1 (Nov 3, 2026). Published `model.execute@1.0.0` guest, unchanged, over signed `traverse.digits-onnx@1.0.0` (test-only key): crates.io `traverse-runtime` 0.16.1 (wasmtime), npm `traverse-embedder-web@0.16.1` in Node 24 and Chromium. `all_identical: true`: success output, 56-byte frame, and `connector_unavailable`/`usage_undeclared`/`key_untrusted`/`pin_mismatch`/`digest_mismatch`/`package_revoked` (native adds `placement_evidence`). Evidence traverse#1782; clean GitHub-hosted runner CI #1783 (pinned to v0.16.1). Limits: `runtime.wasm` came from the tag at run time (now also on `runtime-wasm-v0.16.1`; #1784 closed), native frame read-back needs a workaround (#1785), no Swift/Android/.NET activation, registry spec 027 draft, no host Certified. +- [Does catalog model.execute run on published Traverse packages?](https://traverse-framework.com/questions/does-catalog-model-execute-run-on-published-traverse-packages.html): yes on native, Node and browser since v0.16.1 (Nov 3, 2026). Published `model.execute@1.0.0` guest, unchanged, over signed `traverse.digits-onnx@1.0.0` (test-only key): crates.io `traverse-runtime` 0.16.1 (wasmtime), npm `traverse-embedder-web@0.16.1` in Node 24 and Chromium. `all_identical: true`: success output, 56-byte frame, and `connector_unavailable`/`usage_undeclared`/`key_untrusted`/`pin_mismatch`/`digest_mismatch`/`package_revoked` (native adds `placement_evidence`). Evidence traverse#1782; clean GitHub-hosted runner CI #1783 (pinned to v0.16.1). Limits: `runtime.wasm` came from the tag at run time (now also on `runtime-wasm-v0.16.1`; #1784 closed), native frame read-back needs a workaround on v0.16.2 (#1785, fixed on main by #1809, not released), no Swift/Android/.NET activation, registry spec 027 draft, no host Certified. - [Where does BundleEmbedder get runtime.wasm?](https://traverse-framework.com/questions/where-does-bundleembedder-get-runtime-wasm.html): from the app bundle (`runtime/runtime.wasm` + `.sha256`, digest-checked, fail closed if missing). npm does not ship it. Since Nov 4, 2026 it is on artifact-only GitHub releases `runtime-wasm-v0.16.2` (sha256 `b313b5c5…`) and `runtime-wasm-v0.16.1` (`7a322a17…`), with `runtime.wasm.sha256` and `runtime-release.json`; take the one matching your `traverse-embedder-web` version and check the digest. traverse#1784 closed by #1797; on main, every future `vX.Y.Z` tag publishes `runtime-wasm-vX.Y.Z` before the product release. -- [Can a Traverse application manifest invoke a host connector?](https://traverse-framework.com/questions/can-a-traverse-application-manifest-invoke-a-host-connector.html): yes since v0.16.2 (Nov 4, 2026). A state invokes exactly one of `{"capability_id", "input_from"}` or `{"host_connector": "audio.permission.request"}`; `traverse-cli app validate`, activation and registration accept both (Spec 1773, #1772). Neither, both, empty or unknown fields fail closed; host-connector states must route `host_connector_succeeded`/`failed`/`timeout`/`cancelled`; the command must be declared and resolve through Specs 104/137. Limit: `traverse-cli app activate` registers only its built-in reference connector catalog, and `traverse.audio-input` isn't in it yet (#1791). +- [Can a Traverse application manifest invoke a host connector?](https://traverse-framework.com/questions/can-a-traverse-application-manifest-invoke-a-host-connector.html): yes since v0.16.2 (Nov 4, 2026). A state invokes exactly one of `{"capability_id", "input_from"}` or `{"host_connector": "audio.permission.request"}`; `traverse-cli app validate`, activation and registration accept both (Spec 1773, #1772). Neither, both, empty or unknown fields fail closed; host-connector states must route `host_connector_succeeded`/`failed`/`timeout`/`cancelled`; the command must be declared and resolve through Specs 104/137. Limit on v0.16.2: `traverse-cli app activate` registered only its built-in reference connector catalog without `traverse.audio-input` (#1791); registration landed on main via #1796 (Nov 5), not released. +- [What input does a runtime.wasm guest receive?](https://traverse-framework.com/questions/what-input-does-a-runtime-wasm-guest-receive.html): on published v0.16.2 and earlier, Swift/Kotlin/.NET guests see the whole `{target_id, input}` envelope; on main (#1800, Nov 5, closing #1794) `runtime.wasm` unwraps it and gives the guest only canonical `input` (Spec 1722), rejecting wrong `target_id` (`target_not_found`), bad input, and extra members (`ambiguous_submit`). Raw web submits unchanged unless both keys are present. Breaking for envelope-reading guests; none in-repo. Related web raw-submit `kind:app_command` routing fixed on main (#1802 via #1806). Not in a tagged release yet. - [Why does BundleEmbedder fail with "cannot find definition for import (traverse_host, connector_invoke)"?](https://traverse-framework.com/questions/why-does-bundleembedder-fail-with-cannot-find-definition-for-import-connector-invoke.html): published browser/Node `runtime.wasm` (traverse-embedder-web 0.15.0) doesn't link the Spec 104 `connector_invoke` import; only native wasmtime does, with a host-written `MediatedConnector` bridge. Partly fixed in v0.16.0 (Nov 2): traverse#1755 links `connector_invoke` in `runtime.wasm` with native-parity fail-closed mediation (without host activation, invokes get `unbound`/`undeclared` with evidence) and ships native `ExactModelMediatedConnector` / `activate_exact_model_runtime` (no hand-written bridge); in published packages web/Swift/Android/.NET still have no activation API. Shipped in v0.16.1 (Nov 3, traverse-embedder-web@0.16.1): traverse#1770 adds web `BundleEmbedder.activateMediatedConnector` + `exactModelMediatedConnector`, guest suspend/resume at `connector_invoke`, `submitAsync` (sync `submit` -> `async_submit_required`), and a host-private filter fix for rights-record URLs in `model_evidence`; run on published packages in Node and Chromium (traverse#1782). traverse#1719 closed; Swift/Android/.NET activation still open. - [Why does model.execute return unauthorized_output?](https://traverse-framework.com/questions/why-does-model-execute-return-unauthorized-output.html): the Spec 104 host-private filter rejects strings starting with `/` or containing `://`; the full `ModelRightsRecord` carries `source_url`, so don't forward it. `model.execute@1.1.0` (registry#641 closed via #645, 2026-10-29; same WASM digest as 1.0.0) defines the normative flat `model_evidence` (`license_id`, `commercial_use`, `status`, `effective_usage`, optional URL-free `derivation`); full nested record is non-conformant. Shipped host binding still open (traverse#1719). - [Does the same Traverse WASM give byte-identical output on every host?](https://traverse-framework.com/questions/does-the-same-wasm-give-byte-identical-output-on-every-host.html): same WASM + same input bytes → same output bytes, but on v0.15.0 hosts don't always pass the same bytes: `traverse-mcp` re-serializes request JSON with sorted keys, embedders pass caller bytes through, so catalog `core.authorize@1.2.0` gives the same decision/reason/obligations/trace but a different `policy_hash` (`2a126b86…` vs `51a64653…`). Sorted-key input → byte-identical on all three. Fixed in v0.16.0 (Nov 2, breaking): Decision 118 + Spec `1722-canonical-guest-input-bytes`. Every host feeds guests RFC 8785 (JCS) canonical JSON input; unrepresentable input → `input_not_canonicalizable`; outputs never rewritten; conformance fixture `fixtures/cross-host/canonical-input-v1` on native, `runtime.wasm`, Node (traverse#1739, merged Oct 28). v0.15.0 keeps the old behavior. Write-up: [Same WASM, two hashes](https://traverse-framework.com/blog/same-wasm-two-hashes.html). Demo rerun on `main` before the tag (Browser + Node + traverse-mcp all `51a64653…`): [One audit fingerprint, every host](https://traverse-framework.com/blog/hash-converges.html). Rerun Nov 3 on released bits, Node (npm 0.16.0) + `traverse-mcp-v0.16.0` binary → both `51a64653…`, full output byte-identical; browser not rerun: [Traverse v0.16.0: same input, same output](https://traverse-framework.com/blog/traverse-0-16-0-same-input-same-output.html). diff --git a/src/pages/questions/can-a-traverse-application-manifest-invoke-a-host-connector.astro b/src/pages/questions/can-a-traverse-application-manifest-invoke-a-host-connector.astro index 51c2531..50d61e6 100644 --- a/src/pages/questions/can-a-traverse-application-manifest-invoke-a-host-connector.astro +++ b/src/pages/questions/can-a-traverse-application-manifest-invoke-a-host-connector.astro @@ -9,7 +9,7 @@ const jsonLd = JSON.stringify({ name: 'Can a Traverse application manifest invoke a host connector?', acceptedAnswer: { '@type': 'Answer', - text: 'Yes, since Traverse v0.16.2 (November 4, 2026). A state in an application state machine invokes exactly one of two things: a capability ({"capability_id": "...", "input_from": "..."}) or a host connector ({"host_connector": "audio.permission.request"}). traverse-cli app validate, activation and registration accept both (Spec 1773, traverse#1772). Neither, both, an empty value or an unknown invoke field fails closed with a stable diagnostic. The connector command must be declared by the app and resolves through Specs 104 and 137. A host-connector state must route all four terminal events: host_connector_succeeded, host_connector_failed, host_connector_timeout and host_connector_cancelled. Existing capability-only manifests behave as before. Limit: traverse-cli app activate only registers its built-in reference connector catalog, and traverse.audio-input is not in it yet (traverse#1791).', + text: 'Yes, since Traverse v0.16.2 (November 4, 2026). A state in an application state machine invokes exactly one of two things: a capability ({"capability_id": "...", "input_from": "..."}) or a host connector ({"host_connector": "audio.permission.request"}). traverse-cli app validate, activation and registration accept both (Spec 1773, traverse#1772). Neither, both, an empty value or an unknown invoke field fails closed with a stable diagnostic. The connector command must be declared by the app and resolves through Specs 104 and 137. A host-connector state must route all four terminal events: host_connector_succeeded, host_connector_failed, host_connector_timeout and host_connector_cancelled. Existing capability-only manifests behave as before. Limit on v0.16.2: traverse-cli app activate only registered its built-in reference connector catalog without traverse.audio-input (traverse#1791). That registration landed on main via #1796 (November 5, 2026) and is not yet in a tagged release.', }, }], }); @@ -71,7 +71,7 @@ traverse-cli app validate path/to/app.manifest.json

What isn't there yet

diff --git a/src/pages/questions/does-catalog-model-execute-run-on-published-traverse-packages.astro b/src/pages/questions/does-catalog-model-execute-run-on-published-traverse-packages.astro index b2b2c4e..bac4b48 100644 --- a/src/pages/questions/does-catalog-model-execute-run-on-published-traverse-packages.astro +++ b/src/pages/questions/does-catalog-model-execute-run-on-published-traverse-packages.astro @@ -9,7 +9,7 @@ const jsonLd = JSON.stringify({ name: 'Does catalog model.execute run on published Traverse packages?', acceptedAnswer: { '@type': 'Answer', - text: 'Yes on native Rust, Node and the browser, since Traverse v0.16.1 (November 3, 2026). The published model.execute@1.0.0 guest ran unchanged over the signed traverse.digits-onnx@1.0.0 package on native (crates.io traverse-runtime 0.16.1, wasmtime), Node and Chromium (npm traverse-embedder-web@0.16.1). The success output, the 56-byte output frame and six fail-closed cases (connector_unavailable, usage_undeclared, key_untrusted, pin_mismatch, digest_mismatch, package_revoked) matched on all three; native also adds placement_evidence. A CI job on a fresh GitHub-hosted runner reinstalls only published packages and gets the same result. Limits: the test-signed package comes from the v0.16.1 git tag, and runtime.wasm came from the tag too (since November 4 it is also on the runtime-wasm-v0.16.1 release; traverse#1784 closed); on native, activate_exact_model_runtime does not let you read the output frame back (traverse#1785); Swift, Android and .NET cannot activate the connector yet; registry spec 027 is still a draft; no host is Certified under Spec 529.', + text: 'Yes on native Rust, Node and the browser, since Traverse v0.16.1 (November 3, 2026). The published model.execute@1.0.0 guest ran unchanged over the signed traverse.digits-onnx@1.0.0 package on native (crates.io traverse-runtime 0.16.1, wasmtime), Node and Chromium (npm traverse-embedder-web@0.16.1). The success output, the 56-byte output frame and six fail-closed cases (connector_unavailable, usage_undeclared, key_untrusted, pin_mismatch, digest_mismatch, package_revoked) matched on all three; native also adds placement_evidence. A CI job on a fresh GitHub-hosted runner reinstalls only published packages and gets the same result. Limits: the test-signed package comes from the v0.16.1 git tag, and runtime.wasm came from the tag too (since November 4 it is also on the runtime-wasm-v0.16.1 release; traverse#1784 closed); on native through v0.16.2, activate_exact_model_runtime does not let you read the output frame back (traverse#1785, fixed on main by #1809, not released); Swift, Android and .NET cannot activate the connector yet; registry spec 027 is still a draft; no host is Certified under Spec 529.', }, }], }); @@ -57,7 +57,7 @@ const relatedLinks = [

What isn't true yet