@cloudflare/voice@0.4.0

cloudflare/agents@cloudflare/voice@0.4.0Aug 27, 2026by ben-reitz

AI Summary

Improves voice lifecycle accuracy, diagnostics, and per-turn timing visibility. Updates voice providers to propagate lifecycle failures consistently.

Key Highlights

  • Clears stale interim transcripts during call lifecycle events (start, end, disconnect).
  • Emitting `speaking` status only when the first server audio chunk is sent.
  • Structured, content-free browser diagnostics and Worker error logging.
  • Preserves model finish reasons (no-output, output-limit, content-filtered, model-error).
  • Stable typed per-turn timing summaries for speech, text, and streaming work.

New Features

  • Improved transcriber startup and runtime failure reporting via `onFatalError`.
  • Consistent error logging and lifecycle failure propagation across voice providers.
  • Overlapping TTS work accounting consistency.

Full Release Notes


### Minor Changes

- [#2157](https://github.com/cloudflare/agents/pull/2157) [`f08ee06`](https://github.com/cloudflare/agents/commit/f08ee06fd610756de0d8abf539dfe9b746bdd7c5) Thanks [@cjol](https://github.com/cjol)! - Improve voice lifecycle accuracy, diagnostics, and per-turn timing visibility.

  - Clear stale interim transcripts when calls start, end, disconnect, close, or fail during startup.
  - Emit `speaking` only when the first server audio chunk is sent.
  - Add structured, content-free browser diagnostics and structured Worker error logging without reading arbitrary provider response bodies.
  - Report transcriber startup and runtime failures through `onFatalError`, structured client errors, and reliable call cleanup.
  - Preserve model finish reasons and distinguish no-output, output-limit, content-filtered, and model-error completions.
  - Add stable typed per-turn timing summaries for speech, text, terminal outcomes, model streaming, reasoning exposed by the model stream, and overlapping TTS work through `VoiceClient` and the React hooks.
  - Keep the existing four-field metrics wire shape compatible while making no-audio and streamed TTS accounting consistent.
  - Update the bundled voice providers to propagate lifecycle failures and log errors consistently.