v0.31.0
thevoiceguy/siphon-aiv0.31.0Jul 14, 2026by github-actions[bot]
Upgrading?
AI Summary
Per-call quality telemetry history is added, including live stats endpoints and webhook sink support for monitoring call quality over time.
Key Highlights
- New `[quality]` per-call quality history records.
- New `GET /admin/v1/calls/{id}/stats` endpoint for live quality snapshots.
- Quality history webhook sink support for external monitoring tools.
New Features
- Per-call quality history records.
- Live quality stats endpoint.
- Quality history webhook sink.
Full Release Notes
### Added
- **`[quality]` per-call quality history records** (P1 "Per-call
quality telemetry", release 2 of 2 — the theme is complete). One JSON
record per call per `interval_secs` (default 30) plus a **final
end-of-call summary**, in exactly the CDR `quality` block's shape
flattened with framing (`version`/`kind`/`call_id`/`ts`/`seq`) — one
shape feeds the CDR, the records, and the live endpoint, so they can
never drift. Ships to an append-only JSONL file and/or an HMAC-signed
webhook over the shared delivery transport (signing,
`X-SiphonAI-Event-Id` idempotency, and durable spool exactly as
`[cdr.webhook]`; delivery metrics under `sink="quality"`). Off by
default; restart-required; fail-loud when enabled with no sink.
Records with nothing measured are skipped.
- **`GET /admin/v1/calls/{id}/stats`** (readonly role): live quality
snapshot for one active call — the "what is this call doing *right
now*" probe, same field shape as the CDR block. `404` when no active
call has that bridge `call_id`.
- **Quality-history ingestion pipeline** in `examples/observability`:
Loki + Vector services (webhook intake or JSONL file tailing; only
`kind` becomes a Loki label — `call_id` stays a JSON field per the
cardinality rule) and a **Per-Call Quality History** Grafana
dashboard (MOS, RX loss, RR loss ratio, first-audio latency,
end-of-call summary table). End-to-end ingestion guide in
`docs/OPERATIONS.md` (live / history / CDR — three layers, one
shape).
- **Metric**: `siphon_ai_quality_records_total{kind=interval|final}`.
The WS protocol stays **v1** and the CDR stays **v4** — this release
adds delivery surfaces, not wire changes.
---
**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.31.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
A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io
An open-source remote desktop application designed for self-hosting, as an alternative to TeamViewer.
Build smaller, faster, and more secure desktop and mobile applications with a web frontend.
π RuView turns commodity WiFi signals into real-time spatial intelligence, vital sign monitoring, and presence detection — all without a single pixel of video.
Incredibly fast JavaScript runtime, bundler, test runner, and package manager – all in one