v0.54.0
codewhale-hq/Codewhalev0.54.0Sep 27, 2026by github-actions[bot]
Upgrading?
AI Summary
This release adds detailed call timeline events to the protocol, allowing servers to visualize call flows like LiveKit, including bot turns, barge-ins, and recording events.
Key Highlights
- Introduction of `offset_ms` timeline events for all moment-marking events (mark, barge_in_resolved, hold, etc.).
- New `speech_started.bot_playing` flag indicates when a caller interrupts the bot.
- New `playout_started` and `playout_stopped` events provide detailed reasons for completion (e.g., barge_in, completed).
- Schema regenerated to include new fields for server SDKs and example servers.
New Features
- Call timeline events
- speech_started.bot_playing flag
- playout_started/stopped events
Full Release Notes
### Added
- **Call timeline events** (PROTOCOL.md §3.15, `docs/design/DESIGN_CALL_TIMELINE.md`).
Everything a server needs to draw a LiveKit-style call timeline — a waveform with caller
speech, bot turns and barge-ins mapped along it — now arrives on one `offset_ms` axis.
All additive within protocol v1.
- **`offset_ms` on every moment-marking event** that lacked it: `mark` (the estimated
playout completion it fired at), `barge_in_resolved`, `hold`/`resume`,
`held`/`resumed`, `recording_started`/`recording_stopped`/`recording_failed`, and
`stop`. Each is stamped where the moment happens, not when the event is sent.
- **`recording_started.offset_ms` anchors the WAV**: it is the timeline position of the
file's first sample, so `timeline_ms = recording_started.offset_ms + sample * 1000 / rate`
places the recording under every other event.
- **`speech_started.bot_playing: true`** when the caller started speaking over the bot,
in every barge-in mode. Absent otherwise.
- **`playout_started` / `playout_stopped`** bot-turn events, opt-in via
`[bridge].playout_events` (per-route override). A stop carries `duration_ms` and a
`reason`: `completed`, `barge_in`, `cleared`, `muted`, `held` or `parked`. New counter
`siphon_ai_playout_turns_total{reason}`.
- Schema regenerated; both server SDKs gain the fields and the `PlayoutStarted` /
`PlayoutStopped` types; the example echo servers log the bot turns.
---
**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.54.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