0.2.0 - 2026-07-13
Release Notes
Agents, edge controls, and a safety-critical rewrite of the whole binary. riz
is now an agent2agent-protocol server in its own right, gates the data plane
per caller, and every line compiled into the binary is held to NASA's Power of
10 rules.
Added
- A2A built-in agent — set
[agent]and this instance becomes an
agent2agent-protocol server: an Agent Card at
/.well-known/agent-card.jsonand a JSON-RPC endpoint at/_riz/a2awhere
peers delegate tasks. It reasons through the LLM gateway with this instance's
own functions as tools, streams live task events over SSE
(SendStreamingMessage), and forms a mesh via[agent.peers]with
hop-capped delegation (riz a2a send). - Per-caller API keys + token-bucket rate limiting —
[api_keys.<name>]
maps a caller to a secret + rate ceiling. Non-/_riz/*requests (function
invocations, WebSocket handshakes, colocated static) must present a matching
X-Api-Key; unknown/absent keys fail closed (401) and each caller has its
own bucket (429 +Retry-After). No keys → open, unchanged. - Structured audit log — deploy, config-reload, and auth-denial events on
theriz.audittracing target, scrubbed of secret material; route them with
RUST_LOG=riz.audit=info. - Production metrics — the four golden signals plus worker supervision and
cache efficiency at/_riz/metrics, including saturation
(riz_concurrency_in_use/_limit,riz_admission_rejected_total) and a
cross-instance-aggregatableriz_request_duration_secondshistogram. A
/_riz/readyreadiness probe;[metrics] enabledoff switch. See
docs/METRICS.md. - LLM gateway upgrades — OpenAI function-calling across every provider,
token-level streaming passthrough for OpenAI-compatible upstreams, and
Anthropic-native streaming translated to OpenAI chunks on the fly. - MCP — resources (a live instance describes itself to agents) and
WebSocket functions exposed as tools via ephemeral sessions. --devTUI — live log search (/) + severity filter (l), a?help
overlay, an Enter-to-open invocation inspector (recent calls per function),
and a saturation column in the Processes tab.- Runtimes & scaffolding — per-function environment variables
([function.<name>.env]); awasm-httpinittemplate (awasm32-wasip1
handler in the WASI sandbox); the full-stackai-chattemplate (React chat
UI + a server-side agent loop through the gateway). - Per-worker seccomp-BPF — a deny-EPERM blocklist of 22 escape/tamper
syscalls inpre_exec, stacked on rlimits +prctl+ Landlock. - Actionable startup errors — bad
riz.toml(points at the field), missing
runtime binary (names it + install hint), and port-in-use (names the port +
how to change it) now say how to fix themselves. - CI throughput floor — a conservative, non-flaky regression tripwire for
HTTP dispatch (the 91k req/s headline stays awrkbench recipe).
Changed
- Safety-critical posture — NASA's Power of 10, adapted to Rust
(docs/SAFETY.md), is now binding for everything compiled into the binary:
nounwrap/expect/panic/indexing/unchecked-arithmetic on runtime data,
bounded channels, supervised loops. 253 flagged sites were driven to zero and
the lints promoted to a three-tier enforced gate (workspace deny + a
--lib --binsCI gate + a ratchet that only decreases). - Supply chain — a
cargo-denyCI gate, a CycloneDX SBOM, and keyless
GitHub build-provenance attestations (SLSA via Actions OIDC) on every release
artifact. - Static serving streams file bodies (flat per-connection memory, no HEAD
reads). - Production hardening (Phase 1) — JWKS authorizer cache, reflected-origin
credentialed-CORS rejection, and a hot-swap pool rebuild that resizes
admission.
Fixed
- WebSocket function routes now pass the per-caller API-key gate (they
previously bypassed it via explicit route mounting); keyed requests bypass
the response cache (no cross-caller serving); a startup warning fires when
[api_keys]is set but[auth] bearer_tokenis unset (the/_riz/*plane,
including MCP tool-calls, stays open otherwise). - MCP no longer advertises WebSocket functions as directly callable tools.
Install riz 0.2.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/24X7/riz/releases/download/v0.2.0/riz-installer.sh | shDownload riz 0.2.0
| File | Platform | Checksum |
|---|---|---|
| riz-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| riz-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| riz-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
Verifying GitHub Artifact Attestations
The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:
gh attestation verify <file-path of downloaded artifact> --repo 24X7/rizYou can also download the attestation from GitHub and verify against that directly:
gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>