v0.32.0
thevoiceguy/siphon-aiv0.32.0Jul 14, 2026by github-actions[bot]
Upgrading?
AI Summary
Reversible server-arbitrated barge-in is introduced, allowing the server to reject false positive Voice Activity Detection (VAD) triggers and resume playback.
Key Highlights
- New `mode = "pause"` for reversible barge-in.
- New WebSocket events: `barge_in_confirm`, `barge_in_reject`, and `barge_in_resolved`.
- Updated Server SDKs for Python and TypeScript to handle arbitration.
New Features
- Reversible barge-in mode.
- Server SDKs for barge-in arbitration.
Full Release Notes
### Added
- **Reversible (server-arbitrated) barge-in** —
`[bridge.barge_in].mode = "pause"`
(`docs/design/DESIGN_REVERSIBLE_BARGE_IN.md`; #285/#286). Today a
cough, laugh, or backchannel ("uh-huh") that trips VAD irreversibly
kills the bot's playout. Pause mode reacts instantly but
*reversibly*: playout is flushed within one frame — exactly like
`auto_clear` — but the unplayed tail is retained, and the WS server
(the only layer with STT) rules on intent:
- `speech_started` carries `decision_pending: true` +
`decision_deadline_ms` when an arbitration arms;
- the server answers **`barge_in_confirm`** (real interruption —
tail dropped) or **`barge_in_reject`** (false positive — playout
resumes mid-utterance); a `clear` during the window acts as
confirm, and late verdicts are harmless no-ops;
- every resolution is acknowledged with
**`barge_in_resolved { outcome: confirmed | rejected | timeout }`**;
- no verdict within `decision_ms` (default 500) applies
`on_timeout` (default `confirm` — a server that never rules
degrades safely to "auto_clear delayed by the window");
- `resume_max_secs` (default 30) caps the retained audio;
- `start.barge_in_mode` announces the call's resolved policy;
- per-route overrides via `[route.bridge.barge_in]`, field-wise;
- the existing `debounce_ms` echo gate composes in front (acoustic
filter first, semantic arbitration second).
Arbitration only arms while the bot is playing, is suspended in
conference rooms, and resolves as confirm when preempted by
mute/hold/park/announce/room-join or a WS drop. Off by default;
protocol stays **v1** (all additions additive), CDR stays **v4**
(additive optional `quality` counters).
- **Server SDKs**: typed `BargeInResolved` / extended `SpeechStarted`
and `Start`, plus `barge_in_confirm()` / `barge_in_reject()` (Python)
and `bargeInConfirm()` / `bargeInReject()` (TypeScript). The echo
reference servers answer arbitration requests with a reject by
default (`SIPHON_ECHO_BARGE_IN_VERDICT=confirm` flips it).
- **Conformance**: new bundled `barge-in-pause` testkit scenario
(verdict within the deadline + timeout-outcome tolerance) and a
`session.barge_in_mode` scenario option.
- **Metrics**: `siphon_ai_barge_in_decisions_total{outcome}` and
`siphon_ai_barge_in_decision_seconds` (explicit 50 ms–5 s buckets).
- **SIPp harness**: `barge_in_pause` phase with *real caller media* —
a run-time-generated G.711 tone pcap (`gen_tone_pcap.py`, stdlib
only) replayed via `play_pcap_audio`, driving VAD → pause →
reject → resume end-to-end. The suite is now 36 scenarios.
### Fixed
- Route-level `[route.bridge.barge_in]` strings are now **validated at
config load** — previously a typo'd route `mode` was silently inert
(the runtime merge skipped unparseable values).
---
**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.32.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