Writing
TypeScript SDK
Treeship and TypeScript SDK.
Treeship 0.25: revocation, and the wasm saga
Grant revocation works end to end and Linux arm64 binaries ship. It took four point releases to get a working verifier back onto npm, and the lesson is worth the telling.
Treeship 0.10.4: the audit hardening release
A keystore that claimed AES-GCM but was not, verifiers that trusted embedded keys, and a Merkle downgrade path. 0.10.3 and 0.10.4 close the audit findings and publish TS-2026-001.
Treeship 0.9: verify a receipt anywhere it lands
treeship verify takes a URL, a package, or an id and cross-checks against an Agent Certificate. The same checks ship as WASM for Node, Deno, edge runtimes, and browsers.
Treeship 0.1: signed, content-addressed, verifiable offline
The first release put a DSSE signature on every agent action, named each artifact by its bytes, and let anyone check the result without a server.
From Subprocess to WASM: Eliminating the Subprocess Attack Surface
When your TypeScript SDK spawns a Rust binary, you've introduced a $PATH dependency, a binary substitution attack surface, and an IPC channel. All three go away when you compile to WASM.