v0.55.1

astral-sh/ruffv0.55.1Oct 2, 2026by github-actions[bot]

Upgrading?

AI Summary

Ruff 0.16.10 introduces a migration guide for categories, adds a new rule for context manager iterator annotations, reduces memory usage for diagnostics, and avoids running `uv format` in untrusted workspaces.

Key Highlights

  • Added migration guide for categories
  • Added rule UP052 for context manager iterator annotations
  • Reduced memory used by diagnostics
  • Avoid running `uv format` in untrusted workspaces
  • Updated Rust toolchain to 1.99

New Features

  • Migration guide for categories
  • Context manager iterator annotation rule (UP052)
  • Reduced diagnostics memory usage

Full Release Notes

### Changed

- **`examples/pipecat-bot-py` now speaks with Deepgram Aura TTS by default**
  (`BOT_TTS_PROVIDER=deepgram`), reusing the `DEEPGRAM_API_KEY` its speech-to-text
  already needs, and synthesizing directly at the call's 8/16 kHz. Measured on 12
  requests each: time to first audio was a median of 0.52 s (worst 0.59 s), against
  0.94 s with a 12.7 s worst case for OpenAI `gpt-4o-mini-tts`. On PSTN calls the
  median gap between the caller's last word and bot audio went from 1.95 s to
  1.01 s, and a goodbye that had waited 23 s started in 0.13 s.
  `BOT_TTS_PROVIDER=openai` remains available, now with a `BOT_TTS_MODEL` setting
  that defaults to `tts-1` (median 1.64 s, worst 2.3 s) rather than the
  occasionally stalling `gpt-4o-mini-tts`.

### Fixed

- **Pause-mode barge-in no longer drops bot audio after a resolution**
  ([#620](https://github.com/thevoiceguy/siphon-ai/issues/620)). Resolving a
  pause arbitration (reject, confirm, or either timeout) re-pushes the retained tail and
  the post-pause audio straight into the media engine. A WS server still streaming at
  real time, which is what a correctly paced server does (including `sdks/python`'s
  `AudioSender` and `sdks/typescript`), then accumulated behind that backlog, and the
  200 ms window (PROTOCOL.md §5.5) evicted about the pause length minus 200 ms of bot
  speech per resolution: 158 frames over 5 rejects on a live PSTN call. The window now
  tolerates the backlog the daemon itself created, shrinking as it drains and resetting
  on every flush, so PROTOCOL.md §4.11's "playout resumes where it stopped, then any
  audio streamed during the pause plays behind it" holds. Over-rate servers are still
  bounded. No configuration or protocol change.

---

**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.55.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