Skip to content

v0.8.0-alpha.1

Pre-release
Pre-release

Choose a tag to compare

@ojongerius ojongerius released this 09 May 02:18
· 420 commits to main since this release
c51d845

v0.8.0-alpha.1 — Daemon-backed cutover (alpha)

⚠️ Pre-release alpha. Expect breaks. The agent-receipts stack is moving from in-process signing to a separate agent-receipts-daemon per ADR-0010 and #236. This release lets operators soak the new architecture before the stable cut.

What's changing

An agent process auditing itself is not a meaningful audit. v0.8 splits signing and storage into a separate agent-receipts-daemon running as its own OS user. Every emitter (Go, TS, Py SDKs, mcp-proxy, OpenClaw plugin) becomes a thin fire-and-forget AF_UNIX client. The daemon is sole owner of Ed25519 keys, the SQLite chain database, and RFC 8785 canonicalization.

This fixes two concrete bugs that no smaller intervention can:

  • Concurrent mcp-proxy instances racing on chain tail allocation (UNIQUE index conflict at seq=N+1)
  • Per-session listener collisions (bind: address already in use)

Why a minor bump

The project is pre-1.0, so a breaking change lands as a minor bump. v1.0 is a stability commitment we're not ready to make yet. Lower-versioned packages skipped minors deliberately to align all six packages at one number.

Components

Package Tag Install
agent-receipts-daemon daemon/v0.8.0-alpha.1 go install github.com/agent-receipts/ar/daemon/cmd/agent-receipts-daemon@v0.8.0-alpha.1 (or brew install --HEAD agent-receipts/tap/agent-receipts-daemon)
sdk/go sdk/go/v0.8.0-alpha.1 go get github.com/agent-receipts/ar/sdk/go@v0.8.0-alpha.1
mcp-proxy mcp-proxy/v0.8.0-alpha.1 Download tarball from the mcp-proxy release page (Homebrew tap stays on stable)
@agnt-rcpt/sdk-ts sdk-ts-v0.8.0-alpha.1 pnpm add @agnt-rcpt/sdk-ts@alpha
agent-receipts (PyPI) sdk-py-v0.8.0a1 pip install --pre agent-receipts
@agnt-rcpt/openclaw v0.8.0-alpha.1 (own repo) npm install @agnt-rcpt/openclaw@alpha

Migration

  1. Install and start agent-receipts-daemon. On macOS run it as a long-lived process for soak; launchd/systemd integration ships in a future release (#346).
  2. Update each emitter package to v0.8.0-alpha.1 (PyPI: 0.8.0a1).
  3. Existing chains are abandoned per ADR-0010 OQ2: the daemon starts fresh at seq=1 using new default DB and key paths. If you need long-term verification of pre-cutover receipts, preserve the old SQLite databases and public keys offline.
  4. The legacy in-process API is still present in this alpha. The daemon path is the supported path; in-process signing is removed at the stable cut.
  5. OpenClaw daemon forwarding is opt-in via daemonForwarding: true config. Off by default because the wire path crosses a process boundary — stricter trust contract than the in-process parameterDisclosure setting.

Soak

Help us soak this. Open issues for anything surprising. Particular interest:

  • Drop counter / events_dropped synthesis: not yet implemented; emitters silently drop on connect or write timeout. We want to hear about real drops in real workloads.
  • Cross-platform peer-credential capture: macOS uses LOCAL_PEERCRED + LOCAL_PEEREPID; Linux uses SO_PEERCRED. CI exercises both, but real-world processes (sandboxed Codex, short-lived hooks) find edge cases.
  • OpenClaw daemonForwarding opt-in: feedback on the operator-facing language welcome.

Resolved open questions (ADR-0010)

  • OQ1 — socket path on macOS: $TMPDIR/agentreceipts/events.sock (Linux: $XDG_RUNTIME_DIR/agentreceipts/events.sock or /run/agentreceipts/events.sock)
  • OQ2 — chain migration: abandon old chains; daemon starts fresh
  • OQ3 — cutover sequencing: single-shot release (this one)
  • OQ4session_id allocation: stable per emitter, host-supplied or UUID v4 at construction; persistent across daemon reconnects

Known follow-ups (filed)

  • #345 — sdk/py: derive _version.py from importlib.metadata
  • #346 — daemon: add release-daemon.yml binary release pipeline before -beta.1
  • agent-receipts/openclaw#128 — openclaw release.sh pre-release support

Per-package changelogs