v0.20.0

thevoiceguy/siphon-aiv0.20.0Jul 1, 2026by github-actions[bot]

Upgrading?

AI Summary

The release adds a comprehensive signed audit trail for admin and security decisions, supporting both file-based logging and HMAC-signed webhooks for SIEM ingestion.

Key Highlights

  • Signed audit-event stream (`[audit]`)
  • HMAC-signed webhook support for SIEM collectors
  • Append-only JSONL file output for log shipping
  • 6 event types tracked (admin_request, sip_auth, invite_rejected, etc.)

New Features

  • Audit event file output
  • Audit event webhook delivery
  • Tamper-evident HMAC signatures

Full Release Notes

### Added

- **Signed audit-event stream — `[audit]`** (P1 "Security & abuse
  hardening"; the last sub-item of the theme). A tamper-evident trail of
  admin and security decisions for SIEM ingestion — *who did what* on the
  `[admin]` surface and *what the daemon refused* on the SIP surface —
  distinct from `[webhooks]` (ops automation) and `[cdr]` (billing).
  Ships to an append-only JSONL **file** (`[audit.file]`, for a log
  shipper) and/or an HMAC-signed **webhook** (`[audit.webhook]`, for a
  SIEM collector); enable either or both. The webhook reuses the 0.11.0
  delivery transport, so the `X-SiphonAI-Signature` HMAC (the
  tamper-evidence), `X-SiphonAI-Event-Id` idempotency, durable spool, and
  the `siphon_ai_webhook_*` delivery metrics (label `sink="audit"`) all
  behave identically. Six event types — `admin_request`, `sip_auth`,
  `invite_rejected`, `attestation_rejected`, `config_reload`,
  `cert_reload` — with an `events` allowlist. Emission is deliberately
  signal-first: `invite_rejected` records admission `rate_limited` /
  `no_trunk` / `draining` but **not** the per-packet silent flood-drop
  (auditing that DoS-shedding fast path would amplify the attack), and
  `sip_auth` records `failed` / `stale` but **not** the normal per-call
  `challenged` / `ok`. Off by default; hot-reloadable on `SIGHUP` when
  enabled at startup (enabling from off is restart-required). Best-effort
  and off the call path — a slow SIEM never blocks an admin request or a
  SIP transaction. New `docs/AUDIT.md`; see also `docs/CONFIG.md` →
  `[audit]`. Completes the P1 security & abuse hardening theme.

---

**Artifacts**

- Static musl binaries for `x86_64` and `aarch64` (`.tar.gz`).
- Debian packages (`.deb`) for `amd64` and `arm64` — `apt install ./siphon-ai_*_amd64.deb`.
- `SHA256SUMS` — verify with `sha256sum -c SHA256SUMS`.
- `*-sbom.cdx.json` — CycloneDX SBOM.
- `SHA256SUMS.cosign.bundle` — cosign keyless signature over the checksums.
- Container: `ghcr.io/thevoiceguy/siphon-ai:v0.20.0` (multi-arch, cosign-signed).

Verify the checksums signature:
```
cosign verify-blob --bundle SHA256SUMS.cosign.bundle \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com \
  --certificate-identity-regexp 'release.yml@' SHA256SUMS
```

Related Repositories