v0.48.1
thevoiceguy/siphon-aiv0.48.1Jul 31, 2026by github-actions[bot]
Upgrading?
AI Summary
Fixes outbound delayed-offer calls to actually carry media by activating the forge session.
Key Highlights
- Outbound delayed-offer calls now carry media (session activation fix)
- Fixes SRTP failure arms to roll back session
- Adds `result="media_activate"` label to metric
Full Release Notes
### Fixed - **Outbound delayed-offer calls now carry media** (issue #414). The path's forge session was never transitioned `Initializing → Active` — `DelayedOfferAnswerer::generate_answer` answers via `accept_inbound`, which allocates/negotiates/attaches but deliberately does not activate, and unlike the inbound early-offer path nothing downstream compensated with an explicit `start_session`. The call looked healthy at every other layer (200 OK → ACK with a valid answer, WS `start` delivered, `result="answered"` counted) while zero RTP flowed in either direction, since the forwarding task was never spawned. Present since the feature's introduction (0.9.0, #191), masked until 0.48.0 by the #406 SDP-negotiation failures that killed these calls earlier. The generator now activates the session after DTLS/SDES key install and before the answer rides out in the ACK — the peer only learns our RTP address from the ACK, so the session is Active before the first packet can arrive; a new `result="media_activate"` label on `siphon_ai_outbound_delayed_offer_total` counts the (previously impossible-to-see) activation failure, and a regression test pins `SessionState::Active` on this path, mirroring the one that already pinned it for `apply_answer`. Also fixed while there: the generator's post-`accept_inbound` SRTP failure arms (DTLS/SDES post-processing, `enable_dtls`) now roll the session back instead of leaking it and its port pair, and `apply_answer`'s activation comment no longer claims to cover this path — the mis-statement that kept the gap invisible. --- **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.48.1` (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
farion1231/cc-switch★ 147,649
A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io
rustdesk/rustdesk★ 126,616
An open-source remote desktop application designed for self-hosting, as an alternative to TeamViewer.
tauri-apps/tauri★ 112,118
Build smaller, faster, and more secure desktop and mobile applications with a web frontend.
ruvnet/RuView★ 99,162
π RuView turns commodity WiFi signals into real-time spatial intelligence, vital sign monitoring, and presence detection — all without a single pixel of video.
oven-sh/bun★ 96,346
Incredibly fast JavaScript runtime, bundler, test runner, and package manager – all in one