Skip to content

v0.8.0 — a wallet you can paste, hand over, and verify

Choose a tag to compare

@ericlovold ericlovold released this 19 Aug 14:24
· 44 commits to main since this release
82348ec

Where v0.7.0 made governance adoptable, v0.8.0 makes the wallet a thing you can paste, hand over, and verify.

Paste it

The wallet is a URL. https://getsanction.com/mcp speaks Streamable HTTP and authenticates with the agent key, so Cursor and Claude connectors take a URL and a header instead of a JSON blob — the same ten tools as npx sanction-mcp. A browser GET returns a paste page rather than a raw 401. sanction-mcp is conformant with the MCP 2026-07-28 revision and forwards W3C trace context, so a governed decision correlates with the agent run that requested it.

Boundary, stated plainly: stdio and the hosted URL are both cooperative — the host must ask before acting. Broker interception of tools/call is Next, and we don't claim it today.

Verify it

GET /.well-known/wallet-card.json is how a counterparty discovers what a wallet carries. POST /v1/mandate/verify lets them check a presented execution mandate with no Sanction API key — frozen, revoked, expired, or garbage, each named, and invalid answers HTTP 200 so agents fail closed on the body.

Hand it over

Wallets now have people: team membership with roles, a wallet switcher that reaches every membership, and a viewer role that genuinely cannot mutate. An org owner decides escalations anywhere in their subtree.

Approvals reach you where you already are — Add to Slack installs per workspace over OAuth and posts interactive Approve / Deny cards that run the same resolveApproval path as the dashboard, with the actor recorded.

See it

The console leads with a roster — the wallet tree as groups, agents as cards, a mandate stamp on each — and the rail is three items instead of thirteen. Month runway draws cumulative burn against the monthly cap with the projected exhaust date. Seat health flags the seats whose denial rate is hot or climbing, each with the decision code it keeps hitting. Providers are connected once: keys land in the vault and inject at the gateway.

One money fix worth naming

Gateway metering no longer fails open to $0 for a model missing from the price table — unknown models bill at the table-max fallback rate with a warning. Under-metering is a budget hole, so it now errs expensive.

Also in this release

Eleven policy packs ship installable, each previewable against your last 30 days before it applies.

@sanction/sdk publish is still pending the npm scope. The package builds, typechecks, and passes its 55 tests in-repo — install from sdk/ until it lands.


Full history: v0.7.0...v0.8.0