5.9.0 (2026-08-28)
Listen v2 (Flux) force-end-turn, listen v1 diarization metadata, the Flux TTS GA voice catalog, and a passthrough-auth fix.
Features
- Listen v2 (Flux) force-end-turn:
socket.sendForceEndTurn()sends the newListenV2ForceEndTurncontrol message, ending the current turn on demand; Flux flushes buffered audio and emits a standardEndOfTurn.ListenV2TurnInfogainstrigger(model|manual|timeout, open enum) identifying what ended each turn.eot_thresholdnow accepts up to1.0(previously capped at0.9) to suppress Flux's confidence-based end-of-turn detection and own turn endings yourself — noteeot_timeout_msis an independent mechanism that still ends a turn after a pause, so set both whenForceEndTurnshould be the only way a turn ends. Enablement is per deployment server-side (live in Deepgram-hosted US data centers at release). (#537) (03e7062) - Listen v1 diarization detail:
metadata.diarize_info(model_uuid,arch) identifies which diarizer ran, and words gain per-wordspeaker_confidence. (#537) (03e7062) - Flux TTS GA voice catalog: the agent's Deepgram speak provider grows from 12 to 36 voices, and
flux-kit-enis now the default voice whenagent.speakis omitted. See Compatibility forflux-renee-en. (#537) (03e7062) - Speak v2: dedicated numeric
SpeakV2SpeedValuetype for the mid-streamConfigure.speedfield, plus expandedspeed/expressivitydocumentation including theSPEED_NOT_SUPPORTEDandEXPRESSIVITY_*warning codes. (#537) (03e7062) - REST clients: new per-request
additionalBodyParametersoption, spread onto the request body; debug logging of passthrough requests now scrubs credentials from URLs. (#537) (03e7062)
Bug Fixes
- core:
client.fetch()now authenticates passthrough requests to all Deepgram hosts — an absolute URL toagent.deepgram.compreviously lost the auth header and failed with an unexplained 401. Part of the origin-scoping change described under Compatibility. (#537) (03e7062) - websocket: default binaryType to arraybuffer for Bun compatibility (cc4293c), closes #525
- websocket: default binaryType to arraybuffer for Bun compatibility (#535) (1913abc)
Compatibility
- Passthrough
client.fetch()credentials are now origin-scoped. Previously the SDK attached your Deepgram auth headers to every URL passed toclient.fetch(), including third-party hosts — a credential leak. Credentials are now sent only to Deepgram first-party origins (api.deepgram.com,agent.deepgram.com) and your configuredbaseUrl; requests to any other absolute URL are sent without auth. If you were routing passthrough calls through a proxy or other non-Deepgram host and relying on the key being auto-attached, attach it explicitly via request headers. Self-hosted and custom-baseUrldeployments are unaffected. flux-renee-enwas dropped from the GA voice catalog spec. TheDeepgram.Model.FluxReneeEnconstant remains, marked@deprecated, and the voice still synthesizes (verified 2026-08-19) — the GA cutover was a docs/spec change with no server-side removal.SpeakV2Speedstays numeric. The generator retyped it as a string enum; it is widened back to admitnumber, sospeak.v2.connect({ speed: 1.0 })keeps compiling. Numbers and their string equivalents serialize identically on the wire.DeepgramTimeoutErrorstill extendsError, notDeepgramError. The generator's re-parenting is deferred to the next major (it would silently change the behavior of orderedinstanceofcatch chains) and will be documented in the migration guide.- No modules were removed and no
optional → requiredfield changes on request types — verified by diffing the clean-built.d.tssurface (575 shared declaration files) against 5.8.0.